Equivalences of coforks
Content created by Vojtěch Štěpančík.
Created on 2024-04-16.
Last modified on 2024-04-16.
module synthetic-homotopy-theory.equivalences-coforks-under-equivalences-double-arrows where
Imports
open import foundation.commuting-squares-of-maps open import foundation.dependent-pair-types open import foundation.double-arrows open import foundation.equivalences open import foundation.equivalences-arrows open import foundation.equivalences-double-arrows open import foundation.homotopies open import foundation.morphisms-arrows open import foundation.universe-levels open import foundation.whiskering-homotopies-composition open import synthetic-homotopy-theory.coforks open import synthetic-homotopy-theory.morphisms-coforks-under-morphisms-double-arrows
Idea
Consider two double arrows f, g : A → B
and
h, k : U → V
, equipped with coforks
c : B → X
and c' : V → Y
, respectively, and an
equivalence of double arrows
e : (f, g) ≃ (h, k)
.
Then an
equivalence of coforks¶
under e
is a triple (m, H, K)
, with m : X ≃ Y
an
equivalence of vertices of the coforks, H
a
homotopy witnessing that the bottom square in
the diagram
i
A --------> U
| | ≃ | |
f | | g h | | k
| | | |
∨ ∨ ≃ ∨ ∨
B --------> V
| j |
c | | c'
| |
∨ ≃ ∨
X --------> Y
m
commutes, and K
a coherence
datum “filling the inside” — we have two stacks of squares
i i
A --------> U A --------> U
| ≃ | | ≃ |
f | | h g | | k
| | | |
∨ ≃ ∨ ∨ ≃ ∨
B --------> V B --------> V
| j | | j |
c | | c' c | | c'
| | | |
∨ ≃ ∨ ∨ ≃ ∨
X --------> Y X --------> Y
m m
which share the top map i
and the bottom square, and the coherences of c
and
c'
filling the sides; that gives the homotopies
i i
A A A --------> U A --------> U
| | | |
f | f | | h | k
| | | |
∨ ∨ j ∨ ∨
B ~ B --------> V ~ V ~ V
| | | |
c | | c' | c' | c'
| | | |
∨ ∨ ∨ ∨
X --------> Y Y Y Y
m
and
i
A A A A --------> U
| | | |
f | g | g | | k
| | | |
∨ ∨ ∨ j ∨
B ~ B ~ B --------> V ~ V
| | | |
c | c | | c' | c'
| | | |
∨ ∨ ∨ ∨
X --------> Y X --------> Y Y Y ,
m m
which are required to be homotopic.
Definitions
Equivalences of coforks
module _ {l1 l2 l3 l4 l5 l6 : Level} {a : double-arrow l1 l2} {X : UU l3} (c : cofork a X) {a' : double-arrow l4 l5} {Y : UU l6} (c' : cofork a' Y) (e : equiv-double-arrow a a') where coherence-map-cofork-equiv-cofork-equiv-double-arrow : (X ≃ Y) → UU (l2 ⊔ l6) coherence-map-cofork-equiv-cofork-equiv-double-arrow m = coherence-square-maps ( codomain-map-equiv-double-arrow a a' e) ( map-cofork a c) ( map-cofork a' c') ( map-equiv m) coherence-equiv-cofork-equiv-double-arrow : (m : X ≃ Y) → coherence-map-cofork-equiv-cofork-equiv-double-arrow m → UU (l1 ⊔ l6) coherence-equiv-cofork-equiv-double-arrow m H = ( ( H ·r (left-map-double-arrow a)) ∙h ( ( map-cofork a' c') ·l ( left-square-equiv-double-arrow a a' e)) ∙h ( (coh-cofork a' c') ·r (domain-map-equiv-double-arrow a a' e))) ~ ( ( (map-equiv m) ·l (coh-cofork a c)) ∙h ( H ·r (right-map-double-arrow a)) ∙h ( (map-cofork a' c') ·l (right-square-equiv-double-arrow a a' e))) equiv-cofork-equiv-double-arrow : UU (l1 ⊔ l2 ⊔ l3 ⊔ l6) equiv-cofork-equiv-double-arrow = Σ ( X ≃ Y) ( λ m → Σ ( coherence-map-cofork-equiv-cofork-equiv-double-arrow m) ( coherence-equiv-cofork-equiv-double-arrow m)) module _ (e' : equiv-cofork-equiv-double-arrow) where equiv-equiv-cofork-equiv-double-arrow : X ≃ Y equiv-equiv-cofork-equiv-double-arrow = pr1 e' map-equiv-cofork-equiv-double-arrow : X → Y map-equiv-cofork-equiv-double-arrow = map-equiv equiv-equiv-cofork-equiv-double-arrow is-equiv-map-equiv-cofork-equiv-double-arrow : is-equiv map-equiv-cofork-equiv-double-arrow is-equiv-map-equiv-cofork-equiv-double-arrow = is-equiv-map-equiv equiv-equiv-cofork-equiv-double-arrow coh-map-cofork-equiv-cofork-equiv-double-arrow : coherence-map-cofork-equiv-cofork-equiv-double-arrow ( equiv-equiv-cofork-equiv-double-arrow) coh-map-cofork-equiv-cofork-equiv-double-arrow = pr1 (pr2 e') equiv-map-cofork-equiv-cofork-equiv-double-arrow : equiv-arrow (map-cofork a c) (map-cofork a' c') pr1 equiv-map-cofork-equiv-cofork-equiv-double-arrow = codomain-equiv-equiv-double-arrow a a' e pr1 (pr2 equiv-map-cofork-equiv-cofork-equiv-double-arrow) = equiv-equiv-cofork-equiv-double-arrow pr2 (pr2 equiv-map-cofork-equiv-cofork-equiv-double-arrow) = coh-map-cofork-equiv-cofork-equiv-double-arrow hom-map-cofork-equiv-cofork-equiv-double-arrow : hom-arrow (map-cofork a c) (map-cofork a' c') hom-map-cofork-equiv-cofork-equiv-double-arrow = hom-equiv-arrow ( map-cofork a c) ( map-cofork a' c') ( equiv-map-cofork-equiv-cofork-equiv-double-arrow) coh-equiv-cofork-equiv-double-arrow : coherence-equiv-cofork-equiv-double-arrow ( equiv-equiv-cofork-equiv-double-arrow) ( coh-map-cofork-equiv-cofork-equiv-double-arrow) coh-equiv-cofork-equiv-double-arrow = pr2 (pr2 e') hom-equiv-cofork-equiv-double-arrow : hom-cofork-hom-double-arrow c c' (hom-equiv-double-arrow a a' e) pr1 hom-equiv-cofork-equiv-double-arrow = map-equiv-cofork-equiv-double-arrow pr1 (pr2 hom-equiv-cofork-equiv-double-arrow) = coh-map-cofork-equiv-cofork-equiv-double-arrow pr2 (pr2 hom-equiv-cofork-equiv-double-arrow) = coh-equiv-cofork-equiv-double-arrow
The predicate on morphisms of coforks under equivalences of double arrows of being an equivalence
module _ {l1 l2 l3 l4 l5 l6 : Level} {a : double-arrow l1 l2} {X : UU l3} (c : cofork a X) {a' : double-arrow l4 l5} {Y : UU l6} (c' : cofork a' Y) (e : equiv-double-arrow a a') where is-equiv-hom-cofork-equiv-double-arrow : hom-cofork-hom-double-arrow c c' (hom-equiv-double-arrow a a' e) → UU (l3 ⊔ l6) is-equiv-hom-cofork-equiv-double-arrow h = is-equiv ( map-hom-cofork-hom-double-arrow c c' h) is-equiv-hom-equiv-cofork-equiv-double-arrow : (e' : equiv-cofork-equiv-double-arrow c c' e) → is-equiv-hom-cofork-equiv-double-arrow ( hom-equiv-cofork-equiv-double-arrow c c' e e') is-equiv-hom-equiv-cofork-equiv-double-arrow e' = is-equiv-map-equiv-cofork-equiv-double-arrow c c' e e'
Properties
Morphisms of coforks under equivalences of arrows which are equivalences are equivalences of coforks
To construct an equivalence of coforks under an equivalence e
of double
arrows, it suffices to construct a morphism of coforks under the underlying
morphism of double arrows of e
, and show that the map X → Y
is an
equivalence.
module _ {l1 l2 l3 l4 l5 l6 : Level} {a : double-arrow l1 l2} {X : UU l3} (c : cofork a X) {a' : double-arrow l4 l5} {Y : UU l6} (c' : cofork a' Y) (e : equiv-double-arrow a a') where equiv-hom-cofork-equiv-double-arrow : (h : hom-cofork-hom-double-arrow c c' (hom-equiv-double-arrow a a' e)) → is-equiv-hom-cofork-equiv-double-arrow c c' e h → equiv-cofork-equiv-double-arrow c c' e pr1 (equiv-hom-cofork-equiv-double-arrow h is-equiv-map-cofork) = (map-hom-cofork-hom-double-arrow c c' h , is-equiv-map-cofork) pr1 (pr2 (equiv-hom-cofork-equiv-double-arrow h _)) = coh-map-cofork-hom-cofork-hom-double-arrow c c' h pr2 (pr2 (equiv-hom-cofork-equiv-double-arrow h _)) = coh-hom-cofork-hom-double-arrow c c' h
Recent changes
- 2024-04-16. Vojtěch Štěpančík. Descent data for sequential colimits and its version of the flattening lemma (#1109).