# Coherently invertible maps ```agda module foundation.coherently-invertible-maps where open import foundation-core.coherently-invertible-maps public ``` <details><summary>Imports</summary> ```agda open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.identity-types open import foundation.type-arithmetic-dependent-pair-types open import foundation.universe-levels open import foundation-core.contractible-maps open import foundation-core.contractible-types open import foundation-core.fibers-of-maps open import foundation-core.function-types open import foundation-core.functoriality-dependent-pair-types open import foundation-core.homotopies open import foundation-core.propositions open import foundation-core.sections open import foundation-core.type-theoretic-principle-of-choice open import foundation-core.whiskering-homotopies ``` </details> ## Properties ### Being coherently invertible is a property ```agda abstract is-prop-is-coherently-invertible : {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) → is-prop (is-coherently-invertible f) is-prop-is-coherently-invertible {A = A} {B} f = is-prop-is-proof-irrelevant ( λ H → is-contr-equiv' ( Σ ( section f) ( λ s → Σ ( ( map-section f s ∘ f) ~ id) ( λ H → ( htpy-right-whisk (is-section-map-section f s) f) ~ ( htpy-left-whisk f H)))) ( associative-Σ ( B → A) ( λ g → (f ∘ g) ~ id) ( λ s → Σ ( ( map-section f s ∘ f) ~ id) ( λ H → ( htpy-right-whisk (is-section-map-section f s) f) ~ ( htpy-left-whisk f H)))) ( is-contr-Σ ( is-contr-section-is-equiv (is-equiv-is-coherently-invertible H)) ( section-is-coherently-invertible H) ( is-contr-equiv' ( (x : A) → Σ ( map-inv-is-coherently-invertible H (f x) = x) ( λ p → is-retraction-is-coherently-invertible H (f x) = ap f p)) ( distributive-Π-Σ) ( is-contr-Π ( λ x → is-contr-equiv' ( fiber ( ap f) ( is-retraction-is-coherently-invertible H (f x))) ( equiv-tot ( λ p → equiv-inv ( ap f p) ( is-retraction-is-coherently-invertible H (f x)))) ( is-contr-map-is-equiv ( is-emb-is-equiv ( is-equiv-is-coherently-invertible H) ( map-inv-is-coherently-invertible H (f x)) x) ( is-retraction-is-coherently-invertible H (f x)))))))) abstract is-equiv-is-coherently-invertible-is-equiv : {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) → is-equiv (is-coherently-invertible-is-equiv {f = f}) is-equiv-is-coherently-invertible-is-equiv f = is-equiv-is-prop ( is-property-is-equiv f) ( is-prop-is-coherently-invertible f) ( is-equiv-is-coherently-invertible) ``` ## See also - For the notion of biinvertible maps see [`foundation.equivalences`](foundation.equivalences.md). - For the notion of maps with contractible fibers see [`foundation.contractible-maps`](foundation.contractible-maps.md). - For the notion of path-split maps see [`foundation.path-split-maps`](foundation.path-split-maps.md).