foundations.QuasiinverseType.md.
Version of Sunday, January 22, 2023, 10:42 PM
Powered by agda version 2.6.2.2-442c76b and pandoc 2.14.0.3
{-# OPTIONS --without-K --exact-split #-}
Two functions are quasi-inverses if we can construct a function providing and for any given and .
module foundations.QuasiinverseType where open import foundations.TransportLemmas open import foundations.EquivalenceType open import foundations.HomotopyType open import foundations.HomotopyLemmas open import foundations.HalfAdjointType
module _ {ℓ₁ ℓ₂ : Level} {A : Type ℓ₁}{B : Type ℓ₂} where
qinv
: (A → B)
→ Type (ℓ₁ ⊔ ℓ₂)
qinv f = Σ (B → A) (λ g → ((f ∘ g) ∼ id) × ((g ∘ f) ∼ id))
quasiinverse = qinv
linv
: (A → B)
→ Type (ℓ₁ ⊔ ℓ₂)
linv f = Σ (B → A) (λ g → (g ∘ f) ∼ id-on A)
left-inverse = linv
rinv
: (A → B)
→ Type (ℓ₁ ⊔ ℓ₂)
rinv f = Σ (B → A) (λ g → (f ∘ g) ∼ id-on B)
right-inverse = rinv
Biinverse is another equivalent notion of the right equivalence for HoTT.
biinv : (A → B) → Type (ℓ₁ ⊔ ℓ₂) biinv f = linv f × rinv f biinverse = biinv bi-inverse = biinv
A desire consequence (qinv → biinv):
qinv-biinv : (f : A → B) → qinv f → biinv f qinv-biinv f (g , (u1 , u2)) = (g , u2) , (g , u1)
biinv-qinv
: (f : A → B)
→ biinv f → qinv f
biinv-qinv f ((h , α) , (g , β)) = g , (β , δ)
where
γ1 : g ∼ ((h ∘ f) ∘ g)
γ1 = rcomp-∼ g (h-sym (h ∘ f) id α)
γ2 : ((h ∘ f) ∘ g) ∼ (h ∘ (f ∘ g))
γ2 x = idp
γ : g ∼ h
γ = γ1 ● (γ2 ● (lcomp-∼ h β))
δ : (g ∘ f) ∼ id
δ = (rcomp-∼ f γ) ● α
equiv-biinv
: (f : A → B)
→ isContrMap f
--------------
→ biinv f
equiv-biinv f contrf =
(remap eq , rlmap-inverse-h eq) , (remap eq , lrmap-inverse-h eq)
where
eq : A ≃ B
eq = f , contrf
qinv-ishae
: {f : A → B}
→ qinv f
---------
→ ishae f
qinv-ishae {f} (g , (ε , η)) = record {
g = g ;
η = η ;
ε = λ b → inv (ε (f (g b))) · ap f (η (g b)) · ε b ;
τ = τ
}
where
aux-lemma : (a : A) → ap f (η (g (f a))) · ε (f a) ≡ ε (f (g (f a))) · ap f (η a)
aux-lemma a =
begin
ap f (η ((g ∘ f) a)) · ε (f a)
≡⟨ ap (λ u → ap f u · ε (f a)) (h-naturality-id η) ⟩
ap f (ap (g ∘ f) (η a)) · ε (f a)
≡⟨ ap (_· ε (f a)) (ap-comp (g ∘ f) f (η a)) ⟩
ap (f ∘ (g ∘ f)) (η a) · ε (f a)
≡⟨ inv (h-naturality (λ x → ε (f x)) (η a)) ⟩
ε (f (g (f a))) · ap f (η a)
∎
τ : (a : A) → ap f (η a) ≡ (inv (ε (f (g (f a)))) · ap f (η (g (f a))) · ε (f a))
τ a =
begin
ap f (η a)
≡⟨ ap (_· ap f (η a)) (inv (·-linv (ε (f (g (f a)))))) ⟩
inv (ε (f (g (f a)))) · ε (f (g (f a))) · ap f (η a)
≡⟨ ·-assoc (inv (ε (f (g (f a))))) _ (ap f (η a)) ⟩
inv (ε (f (g (f a)))) · (ε (f (g (f a))) · ap f (η a))
≡⟨ ap (inv (ε (f (g (f a)))) ·_) (inv (aux-lemma a)) ⟩
inv (ε (f (g (f a)))) · (ap f (η (g (f a))) · ε (f a))
≡⟨ inv (·-assoc (inv (ε (f (g (f a))))) _ (ε (f a))) ⟩
inv (ε (f (g (f a)))) · ap f (η (g (f a))) · ε (f a)
∎
Quasiinverses create equivalences.
qinv-≃
: (f : A → B)
→ qinv f
-------------
→ A ≃ B
qinv-≃ f = ishae-≃ ∘ qinv-ishae
quasiinverse-to-≃ = qinv-≃
≃-qinv
: A ≃ B
----------------
→ Σ (A → B) qinv
≃-qinv eq =
lemap eq , (remap eq , (lrmap-inverse-h eq , rlmap-inverse-h eq))
≃-to-quasiinverse = ≃-qinv
Half-adjoint equivalences are quasiinverses.
ishae-qinv
: {f : A → B}
→ ishae f
---------
→ qinv f
ishae-qinv {f} (hae g η ε τ) = g , (ε , η)
≃-ishae
: (e : A ≃ B)
--------------
→ ishae (e ∙→)
≃-ishae e = qinv-ishae (π₂ (≃-qinv e))
(2022-12-28)(57c278b4) Last updated: 2021-09-16 15:00:00 by jonathan.cubides (2022-07-06)(d3a4a8cf) minors by jonathan.cubides (2022-01-26)(4aef326b) [ reports ] added some revisions by jonathan.cubides (2021-12-20)(049db6a8) Added code of cubical experiments. by jonathan.cubides (2021-12-20)(961730c9) [ html ] regular update by jonathan.cubides (2021-12-20)(e0ef9faa) Fixed compilation and format, remove hidden parts by jonathan.cubides (2021-12-20)(5120e5d1) Added cubical experiment to the master by jonathan.cubides (2021-12-17)(828fdd0a) More revisions added for CPP by jonathan.cubides (2021-12-15)(0d6a99d8) Fixed some broken links and descriptions by jonathan.cubides (2021-12-15)(662a1f2d) [ .gitignore ] add by jonathan.cubides (2021-12-15)(0630ce66) Minor fixes by jonathan.cubides (2021-12-13)(04f10eba) Fixed a lot of details by jonathan.cubides (2021-12-10)(24195c9f) [ .gitignore ] ignore .zip and arxiv related files by jonathan.cubides (2021-12-09)(538d2859) minor fixes before dinner by jonathan.cubides (2021-12-09)(36a1a69f) [ planar.pdf ] w.i.p revisions to share on arxiv first by jonathan.cubides