Skip to content

Commit

Permalink
changes names
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan Campbell committed Sep 25, 2023
1 parent da7e3f1 commit 51129a0
Showing 1 changed file with 7 additions and 26 deletions.
33 changes: 7 additions & 26 deletions src/hott/06-contractible.rzk.md
Original file line number Diff line number Diff line change
Expand Up @@ -489,40 +489,21 @@ A type is contractible if and only if it has singleton induction.

## Identity types of contractible types

We show that in a contractible type any two paths between two
We show that any two paths between the same endpoints in a contractible type are the same.

The following path is surprisingly useful. Given a contraction $(c, C) : \sum_{c : A} \prod_{x: A} c = x$ we can follow the path that goes from a term $x$ to the center $c$ and then back to $y$.
```rzk

#define path-through-center-is-contr
( A : U)
( is-contr-A : is-contr A)
( x y : A)
: (x = y)
:=
concat
( A)
( x)
( center-contraction A is-contr-A)
( y)
( rev A (center-contraction A is-contr-A) x (homotopy-contraction A is-contr-A x ))
( homotopy-contraction A is-contr-A y)

```

In a contractible type any path $p : x = y$ is equal to this out and back path.
In a contractible type any path $p : x = y$ is equal to the path constructed in `eq-is-contr`.
```rzk
#define path-eq-path-through-center-is-contr
( A : U)
( is-contr-A : is-contr A)
( x y : A)
( p : x = y)
: ((path-through-center-is-contr A is-contr-A x y) = p)
: ((eq-is-contr A is-contr-A x y) = p)
:=
ind-path
( A)
( x)
( \ y' p' → (path-through-center-is-contr A is-contr-A x y') = p')
( \ y' p' → (eq-is-contr A is-contr-A x y') = p')
( left-inverse-concat A (center-contraction A is-contr-A) x (homotopy-contraction A is-contr-A x))
( y)
( p)
Expand All @@ -532,7 +513,7 @@ In a contractible type any path $p : x = y$ is equal to this out and back path.
Finally, in a contractible type any two paths between the same end points are equal. There are many possible proofs of this (e.g. identifying contractible types with the unit type where it is more transparent), but we proceed by gluing together the two identifications to the out and back path.

```rzk
#define paths-eq-is-contr
#define all-paths-eq-is-contr
( A : U)
( is-contr-A : is-contr A)
( x y : A)
Expand All @@ -542,11 +523,11 @@ Finally, in a contractible type any two paths between the same end points are eq
concat
( x = y)
( p)
( path-through-center-is-contr A is-contr-A x y)
( eq-is-contr A is-contr-A x y)
( q)
( rev
(x = y)
( path-through-center-is-contr A is-contr-A x y)
( eq-is-contr A is-contr-A x y)
( p)
( path-eq-path-through-center-is-contr A is-contr-A x y p))
( path-eq-path-through-center-is-contr A is-contr-A x y q)
Expand Down

0 comments on commit 51129a0

Please sign in to comment.