# 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.equivalences
open import foundation.identity-types
open import foundation.logical-equivalences
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.functoriality-dependent-pair-types
open import foundation-core.propositions
open import foundation-core.sections
open import foundation-core.type-theoretic-principle-of-choice
```
</details>
## Properties
### Coherently invertible maps have a contractible type of sections
**Proof:** Since coherently invertible maps are
[contractible maps](foundation.contractible-maps.md), and products of
[contractible types](foundation-core.contractible-types.md) are contractible, it
follows that the type
```text
(b : B) → fiber f b
```
is contractible, for any coherently invertible map `f`. However, by the
[type theoretic principle of choice](foundation.type-theoretic-principle-of-choice.md)
it follows that this type is equivalent to the type
```text
Σ (B → A) (λ g → (b : B) → f (g b) = b),
```
which is the type of [sections](foundation.sections.md) of `f`.
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2}
where
abstract
is-contr-section-is-coherently-invertible :
{f : A → B} → is-coherently-invertible f → is-contr (section f)
is-contr-section-is-coherently-invertible {f} F =
is-contr-equiv'
( (b : B) → fiber f b)
( distributive-Π-Σ)
( is-contr-Π (is-contr-map-is-coherently-invertible F))
```
### Being coherently invertible is a property
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
where
abstract
is-proof-irrelevant-is-coherently-invertible :
is-proof-irrelevant (is-coherently-invertible f)
is-proof-irrelevant-is-coherently-invertible H =
is-contr-equiv'
( _)
( associative-Σ _ _ _)
( is-contr-Σ
( is-contr-section-is-coherently-invertible H)
( section-is-coherently-invertible H)
( is-contr-equiv'
( _)
( distributive-Π-Σ)
( is-contr-Π
( λ x →
is-contr-equiv'
( _)
( equiv-tot
( λ p →
equiv-inv
( ap f p)
( is-section-map-inv-is-coherently-invertible H (f x))))
( is-contr-map-is-coherently-invertible
( is-coherently-invertible-ap-is-coherently-invertible H)
( is-section-map-inv-is-coherently-invertible H (f x)))))))
abstract
is-prop-is-coherently-invertible : is-prop (is-coherently-invertible f)
is-prop-is-coherently-invertible =
is-prop-is-proof-irrelevant is-proof-irrelevant-is-coherently-invertible
abstract
is-equiv-is-coherently-invertible-is-equiv :
is-equiv (is-coherently-invertible-is-equiv {f = f})
is-equiv-is-coherently-invertible-is-equiv =
is-equiv-has-converse-is-prop
( is-property-is-equiv f)
( is-prop-is-coherently-invertible)
( is-equiv-is-coherently-invertible)
```
### Being transpose coherently invertible is a property
This remains to be formalized.
## References
{{#bibliography}} {{#reference UF13}}
## 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).