Skip to content

Commit

Permalink
Adding explanation to contractibility of the types of sections and re…
Browse files Browse the repository at this point in the history
…tractions of an equivalence (#817)
  • Loading branch information
EgbertRijke authored Oct 8, 2023
1 parent b712ce3 commit 7d256f6
Showing 1 changed file with 54 additions and 15 deletions.
69 changes: 54 additions & 15 deletions src/foundation/equivalences.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,35 +141,74 @@ module _

### Equivalences have a contractible type of sections

**Proof:** Since equivalences 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 equivalence `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

is-contr-section-is-equiv : {f : A B} is-equiv f is-contr (section f)
is-contr-section-is-equiv {f} is-equiv-f =
is-contr-equiv'
( (b : B) fiber f b)
( distributive-Π-Σ)
( is-contr-Π (is-contr-map-is-equiv is-equiv-f))
abstract
is-contr-section-is-equiv : {f : A B} is-equiv f is-contr (section f)
is-contr-section-is-equiv {f} is-equiv-f =
is-contr-equiv'
( (b : B) fiber f b)
( distributive-Π-Σ)
( is-contr-Π (is-contr-map-is-equiv is-equiv-f))
```

### Equivalences have a contractible type of retractions

**Proof:** Since precomposing by an equivalence is an equivalence, and
equivalences are contractible maps, it follows that the
[fiber](foundation-core.fibers-of-maps.md) of the map

```text
(B A) (A A)
```

at `id : A A` is contractible, i.e., the type `Σ (B A) (λ h h ∘ f = id)`
is contractible. Furthermore, since fiberwise equivalences induce equivalences
on total spaces, it follows from
[function extensionality](foundation.function-extensionality.md)` that the type

```text
Σ (B A) (λ h h ∘ f ~ id)
```

is contractible. In other words, the type of retractions of an equivalence is
contractible.

```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2}
where

is-contr-retraction-is-equiv :
{f : A B} is-equiv f is-contr (retraction f)
is-contr-retraction-is-equiv {f} is-equiv-f =
is-contr-is-equiv'
( Σ (B A) (λ h (h ∘ f) = id))
( tot (λ h htpy-eq))
( is-equiv-tot-is-fiberwise-equiv
( λ h funext (h ∘ f) id))
( is-contr-map-is-equiv (is-equiv-precomp-is-equiv f is-equiv-f A) id)
abstract
is-contr-retraction-is-equiv :
{f : A B} is-equiv f is-contr (retraction f)
is-contr-retraction-is-equiv {f} is-equiv-f =
is-contr-equiv'
( Σ (B A) (λ h h ∘ f = id))
( equiv-tot (λ h equiv-funext))
( is-contr-map-is-equiv (is-equiv-precomp-is-equiv f is-equiv-f A) id)
```

### Being an equivalence is a property
Expand Down

0 comments on commit 7d256f6

Please sign in to comment.