Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Descent data for sequential colimits and its version of the flattening lemma #1109

Merged
Merged
44 changes: 44 additions & 0 deletions src/foundation-core/commuting-prisms-of-maps.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@ module foundation-core.commuting-prisms-of-maps where
<details><summary>Imports</summary>

```agda
open import foundation.action-on-identifications-functions
open import foundation.commuting-pentagons-of-identifications
open import foundation.identity-types
open import foundation.universe-levels
open import foundation.whiskering-homotopies-composition
open import foundation.whiskering-identifications-concatenation

open import foundation-core.commuting-squares-of-maps
open import foundation-core.commuting-triangles-of-maps
Expand Down Expand Up @@ -249,6 +253,46 @@ module _
( (hC ·l top) ∙h (inv-right ·r h ∙h (g' ·l inv-left)))
( H))))

module _
( top : coherence-triangle-maps f g h)
( inv-front : coherence-square-maps f hA hC f')
( inv-right : coherence-square-maps g hB hC g')
( inv-left : coherence-square-maps h hA hB h')
( bottom : coherence-triangle-maps f' g' h')
where

vertical-coherence-prism-inv-squares-maps-vertical-coherence-prism-maps :
vertical-coherence-prism-maps f g h f' g' h' hA hB hC
( top)
( inv-front)
( inv-right)
( inv-left)
( bottom) →
vertical-coherence-prism-inv-squares-maps f g h f' g' h' hA hB hC
( top)
( inv-htpy inv-front)
( inv-htpy inv-right)
( inv-htpy inv-left)
( bottom)
vertical-coherence-prism-inv-squares-maps-vertical-coherence-prism-maps
H a =
( reflect-top-left-coherence-pentagon-identifications
( bottom (hA a))
( inv-front a)
( ap g' (inv-left a))
( ap hC (top a))
( inv-right (h a))
( inv
( ( assoc (bottom (hA a)) (ap g' (inv-left a)) (inv-right (h a))) ∙
( H a)))) ∙
( left-whisker-concat
( ap hC (top a) ∙ inv (inv-right (h a)))
( inv (ap-inv g' (inv-left a)))) ∙
( assoc
( ap hC (top a))
( inv (inv-right (h a)))
( ap g' (inv (inv-left a))))

module _
( inv-top : coherence-triangle-maps' f g h)
( inv-front : coherence-square-maps' f hA hC f')
Expand Down
157 changes: 148 additions & 9 deletions src/foundation/commuting-pentagons-of-identifications.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module foundation.commuting-pentagons-of-identifications where
<details><summary>Imports</summary>

```agda
open import foundation.action-on-identifications-functions
open import foundation.universe-levels

open import foundation-core.identity-types
Expand All @@ -19,14 +20,14 @@ open import foundation-core.identity-types
A pentagon of [identifications](foundation-core.identity-types.md)

```text
top
x --- y
top-left / \ top-right
/ \
z w
\ /
bottom-left \ / bottom-right
v
top
x --- y
top-left / \ top-right
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved
/ \
z w
\ /
bottom-left \ / bottom-right
v
```

is said to **commute** if there is an identification
Expand All @@ -37,7 +38,9 @@ is said to **commute** if there is an identification

Such an identification is called a **coherence** of the pentagon.

## Definition
## Definitions

### Commuting pentagons of identifications

```agda
module _
Expand All @@ -52,3 +55,139 @@ module _
top top-left top-right bottom-left bottom-right =
top-left ∙ bottom-left = (top ∙ top-right) ∙ bottom-right
```

### Reflections of commuting pentagons of identifications

A pentagon may be reflected along an axis connecting an edge with its opposing
vertex. For example, we may reflect a pentagon

```text
top
x --- y
top-left / \ top-right
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved
/ \
z w
\ /
bottom-left \ / bottom-right
v
```

along the axis connecting `top` and `v` to get

```text
top⁻¹
y --- x
top-right / \ top-left
/ \
w z
\ /
bottom-right \ / bottom-left
v .
```

The reflections are named after the edge which the axis passes through, so the
above example is `reflect-top-coherence-pentagon-identifications`.

```agda
module _
{l : Level} {A : UU l} {x y z w v : A}
where

reflect-top-coherence-pentagon-identifications :
(top : x = y)
(top-left : x = z) (top-right : y = w)
(bottom-left : z = v) (bottom-right : w = v) →
coherence-pentagon-identifications
( top)
( top-left)
( top-right)
( bottom-left)
( bottom-right) →
coherence-pentagon-identifications
( inv top)
( top-right)
( top-left)
( bottom-right)
( bottom-left)
reflect-top-coherence-pentagon-identifications
refl top-left top-right bottom-left bottom-right H = inv H

reflect-top-left-coherence-pentagon-identifications :
(top : x = y)
(top-left : x = z) (top-right : y = w)
(bottom-left : z = v) (bottom-right : w = v) →
coherence-pentagon-identifications
( top)
( top-left)
( top-right)
( bottom-left)
( bottom-right) →
coherence-pentagon-identifications
( bottom-left)
( inv top-left)
( inv bottom-right)
( top)
( inv top-right)
reflect-top-left-coherence-pentagon-identifications
top refl refl bottom-left refl H =
inv (right-unit ∙ right-unit ∙ H ∙ right-unit ∙ right-unit)
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved

reflect-top-right-coherence-pentagon-identifications :
(top : x = y)
(top-left : x = z) (top-right : y = w)
(bottom-left : z = v) (bottom-right : w = v) →
coherence-pentagon-identifications
( top)
( top-left)
( top-right)
( bottom-left)
( bottom-right) →
coherence-pentagon-identifications
( inv bottom-right)
( inv bottom-left)
( inv top-right)
( inv top-left)
( inv top)
reflect-top-right-coherence-pentagon-identifications
top top-left refl refl refl H =
ap inv (inv right-unit ∙ H ∙ right-unit ∙ right-unit)
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved

reflect-bottom-left-coherence-pentagon-identifications :
(top : x = y)
(top-left : x = z) (top-right : y = w)
(bottom-left : z = v) (bottom-right : w = v) →
coherence-pentagon-identifications
( top)
( top-left)
( top-right)
( bottom-left)
( bottom-right) →
coherence-pentagon-identifications
( inv top-right)
( bottom-right)
( inv top)
( inv bottom-left)
( top-left)
reflect-bottom-left-coherence-pentagon-identifications
refl top-left refl refl bottom-right H = right-unit ∙ inv H ∙ right-unit
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved

reflect-bottom-right-coherence-pentagon-identifications :
(top : x = y)
(top-left : x = z) (top-right : y = w)
(bottom-left : z = v) (bottom-right : w = v) →
coherence-pentagon-identifications
( top)
( top-left)
( top-right)
( bottom-left)
( bottom-right) →
coherence-pentagon-identifications
( bottom-left)
( inv top-left)
( inv bottom-right)
( top)
( inv top-right)
reflect-bottom-right-coherence-pentagon-identifications
top refl refl bottom-left refl H =
inv (right-unit ∙ right-unit ∙ H ∙ right-unit ∙ right-unit)
VojtechStep marked this conversation as resolved.
Show resolved Hide resolved
```
30 changes: 15 additions & 15 deletions src/foundation/commuting-triangles-of-identifications.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -455,21 +455,6 @@ module _
compute-refl-top-map-coherence-triangle-identifications p = refl
```

### The action of functions on commuting triangles of identifications

```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B)
{x y z : A} (left : x = z) (right : y = z) (top : x = y)
where

action-function-coherence-triangle-identifications :
coherence-triangle-identifications left right top →
coherence-triangle-identifications (ap f left) (ap f right) (ap f top)
action-function-coherence-triangle-identifications s =
ap (ap f) s ∙ ap-concat f top right
```

### Inverting one side of a commuting triangle of identifications

```agda
Expand Down Expand Up @@ -588,6 +573,21 @@ module _
( t))
```

### Inverting all sides of a commuting triangle of identifications

```agda
module _
{l1 : Level} {A : UU l1} {x y z : A}
where

inv-coherence-triangle-identifications :
(left : x = z) (right : y = z) (top : x = y) →
coherence-triangle-identifications left right top →
coherence-triangle-identifications (inv left) (inv top) (inv right)
inv-coherence-triangle-identifications .(top ∙ right) right top refl =
distributive-inv-concat top right
```

### Concatenating identifications on edges with coherences of commuting triangles of identifications

```agda
Expand Down
Loading
Loading