From c7f4ee07085170341d0fe3d8c96af6c6d77e923b Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Thu, 18 May 2023 00:42:50 -0500 Subject: [PATCH] idk what this progress was but here's progress --- src/2023-05-14-biinv-equiv.agda | 19 ++++++++++++++----- src/2023-05-15-equiv-try-again.agda | 17 ++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/2023-05-14-biinv-equiv.agda b/src/2023-05-14-biinv-equiv.agda index d43218d..6ed5f78 100644 --- a/src/2023-05-14-biinv-equiv.agda +++ b/src/2023-05-14-biinv-equiv.agda @@ -13,11 +13,20 @@ open import Data.Product.Base id : ∀ {ℓ} {A : Type ℓ} → A → A id x = x +linv′ : {A B : Type} (f : A → B) → Type +linv′ {A} {B} f = Σ[ g ∈ (B → A) ] (g ∘ f ≡ id) + +rinv′ : {A B : Type} (f : A → B) → Type +rinv′ {A} {B} f = Σ[ g ∈ (B → A) ] (f ∘ g ≡ id) + +-- Using this definition will need funExt everywhere +-- Use this: + linv : {A B : Type} (f : A → B) → Type -linv {A} {B} f = Σ[ g ∈ (B → A) ] (g ∘ f ≡ id) +linv {A} {B} f = Σ[ g ∈ (B → A) ] ((x : A) → g (f x) ≡ x) rinv : {A B : Type} (f : A → B) → Type -rinv {A} {B} f = Σ[ g ∈ (B → A) ] (f ∘ g ≡ id) +rinv {A} {B} f = Σ[ g ∈ (B → A) ] ((y : B) → f (g y) ≡ y) biinv : {A B : Type} (f : A → B) → Type biinv f = linv f × rinv f @@ -32,12 +41,12 @@ Bool-id-pointwise : (b : Bool) → Bool-id (Bool-id b) ≡ b Bool-id-pointwise true = refl Bool-id-pointwise false = refl -Bool-id-equiv : Bool-id ∘ Bool-id ≡ id -Bool-id-equiv = funExt Bool-id-pointwise +-- Bool-id-equiv : Bool-id ∘ Bool-id ≡ id +-- Bool-id-equiv = funExt Bool-id-pointwise Bool-linv : linv Bool-id Bool-linv .fst = Bool-id -Bool-linv .snd = funExt Bool-id-pointwise +Bool-linv .snd = ? Bool-rinv : rinv Bool-id Bool-rinv .fst = Bool-id diff --git a/src/2023-05-15-equiv-try-again.agda b/src/2023-05-15-equiv-try-again.agda index 5c73269..10da3b2 100644 --- a/src/2023-05-15-equiv-try-again.agda +++ b/src/2023-05-15-equiv-try-again.agda @@ -34,7 +34,7 @@ convert-fiber Top = true , refl convert-fiber Bottom = false , refl convert-fiber-is-contr : (y : Other) → (fz : fiber convert y) → convert-fiber y ≡ fz -convert-fiber-is-contr y fz i = +convert-fiber-is-contr y fz = let fx : fiber convert y fx = convert-fiber y @@ -71,15 +71,22 @@ convert-fiber-is-contr y fz i = sfx = snd fx sfz = snd fz - what : sfx ≡ ? + what : sfx ≡ ? -- sfz what = ? in + -- z = fst fz -- convert-fiber y ≡ fz - -- (x , convert x₁ ≡ y) ≡ (z , convert z₁ ≡ y) + -- fx ≡ fz + -- Look into this more: + -- (x , convert x₁ ≡ y) ≡ (z , convert z₁ ≡ y) + -- Σ[ x ∈ A ] (convert x ≡ y) + -- (x , _) -- - x ≡ z - -- - (convert x₁ ≡ y) ≡ (convert z₁ ≡ y) - eqv7 i , (λ j → ?) + -- ------ - (convert x₁ ≡ y) ≡ (convert z₁ ≡ y) + -- + -- eqv7 ? + ? convert-is-equiv : isEquiv convert convert-is-equiv .equiv-proof y = convert-fiber y , convert-fiber-is-contr y