From 37afbe6bee4edcdf9f28265edb5e4c34038d99d0 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 5 Jun 2024 18:21:03 +0200 Subject: [PATCH 01/33] WIP zigzags identity types --- .../descent-data-pushouts.lagda.md | 7 + .../pushouts.lagda.md | 26 + ...nstruction-identity-type-pushouts.lagda.md | 450 ++++++++++++++++++ 3 files changed, 483 insertions(+) create mode 100644 src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md diff --git a/src/synthetic-homotopy-theory/descent-data-pushouts.lagda.md b/src/synthetic-homotopy-theory/descent-data-pushouts.lagda.md index 020d2dcefb..80fd5e1b19 100644 --- a/src/synthetic-homotopy-theory/descent-data-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/descent-data-pushouts.lagda.md @@ -106,6 +106,13 @@ module _ map-family-descent-data-pushout s = map-equiv (equiv-family-descent-data-pushout s) + inv-map-family-descent-data-pushout : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + right-family-descent-data-pushout (right-map-span-diagram ๐’ฎ s) โ†’ + left-family-descent-data-pushout (left-map-span-diagram ๐’ฎ s) + inv-map-family-descent-data-pushout s = + map-inv-equiv (equiv-family-descent-data-pushout s) + is-equiv-map-family-descent-data-pushout : (s : spanning-type-span-diagram ๐’ฎ) โ†’ is-equiv (map-family-descent-data-pushout s) diff --git a/src/synthetic-homotopy-theory/pushouts.lagda.md b/src/synthetic-homotopy-theory/pushouts.lagda.md index 1b5112681f..768276d97f 100644 --- a/src/synthetic-homotopy-theory/pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/pushouts.lagda.md @@ -21,6 +21,7 @@ open import foundation.identity-types open import foundation.propositions open import foundation.retractions open import foundation.sections +open import foundation.span-diagrams open import foundation.transport-along-homotopies open import foundation.transport-along-identifications open import foundation.universe-levels @@ -124,6 +125,31 @@ cocone-pushout : pr1 (cocone-pushout f g) = inl-pushout f g pr1 (pr2 (cocone-pushout f g)) = inr-pushout f g pr2 (pr2 (cocone-pushout f g)) = glue-pushout f g + +module _ + {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + where + + standard-pushout : UU (l1 โŠ” l2 โŠ” l3) + standard-pushout = + pushout (left-map-span-diagram ๐’ฎ) (right-map-span-diagram ๐’ฎ) + + inl-standard-pushout : domain-span-diagram ๐’ฎ โ†’ standard-pushout + inl-standard-pushout = + inl-pushout (left-map-span-diagram ๐’ฎ) (right-map-span-diagram ๐’ฎ) + + inr-standard-pushout : codomain-span-diagram ๐’ฎ โ†’ standard-pushout + inr-standard-pushout = + inr-pushout (left-map-span-diagram ๐’ฎ) (right-map-span-diagram ๐’ฎ) + + glue-standard-pushout : + coherence-square-maps + ( right-map-span-diagram ๐’ฎ) + ( left-map-span-diagram ๐’ฎ) + ( inr-standard-pushout) + ( inl-standard-pushout) + glue-standard-pushout = + glue-pushout (left-map-span-diagram ๐’ฎ) (right-map-span-diagram ๐’ฎ) ``` ### The dependent cogap map diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md new file mode 100644 index 0000000000..1360026804 --- /dev/null +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -0,0 +1,450 @@ +# The zigzag construction of identity types of pushouts + +```agda +{-# OPTIONS --lossy-unification #-} + +module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts where +``` + +
Imports + +```agda +open import elementary-number-theory.natural-numbers + +-- open import foundation.commuting-squares-of-maps +-- open import foundation.contractible-types +open import foundation.cartesian-product-types +open import foundation.dependent-pair-types +open import foundation.empty-types +open import foundation.equivalences +open import foundation.function-types +open import foundation.functoriality-dependent-pair-types +-- open import foundation.fundamental-theorem-of-identity-types +-- open import foundation.homotopies +-- open import foundation.identity-systems +open import foundation.identity-types +-- open import foundation.sections +-- open import foundation.singleton-induction +open import foundation.raising-universe-levels +open import foundation.span-diagrams +open import foundation.transport-along-identifications +-- open import foundation.torsorial-type-families +-- open import foundation.transposition-identifications-along-equivalences +-- open import foundation.universal-property-dependent-pair-types +-- open import foundation.universal-property-identity-types +open import foundation.universe-levels + +open import synthetic-homotopy-theory.cocones-under-spans +-- open import synthetic-homotopy-theory.dependent-universal-property-pushouts +-- open import synthetic-homotopy-theory.descent-data-equivalence-types-over-pushouts +-- open import synthetic-homotopy-theory.descent-data-identity-types-over-pushouts +open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams +open import synthetic-homotopy-theory.dependent-cocones-under-spans +open import synthetic-homotopy-theory.descent-data-pushouts +open import synthetic-homotopy-theory.functoriality-sequential-colimits +open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts +-- open import synthetic-homotopy-theory.descent-property-pushouts +-- open import synthetic-homotopy-theory.equivalences-descent-data-pushouts +-- open import synthetic-homotopy-theory.families-descent-data-pushouts +open import synthetic-homotopy-theory.flattening-lemma-pushouts +-- open import synthetic-homotopy-theory.morphisms-descent-data-pushouts +open import synthetic-homotopy-theory.pushouts +open import synthetic-homotopy-theory.sequential-colimits +open import synthetic-homotopy-theory.sequential-diagrams +open import synthetic-homotopy-theory.shifts-sequential-diagrams +open import synthetic-homotopy-theory.sections-descent-data-pushouts +open import synthetic-homotopy-theory.universal-property-pushouts +open import synthetic-homotopy-theory.zigzags-sequential-diagrams +``` + +
+ +## Idea + +TODO + +## Definitions + +### TODO + +```agda +module _ + {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + where + + type-stage-zigzag-construction-id-pushout : UU (lsuc (l1 โŠ” l2 โŠ” l3)) + type-stage-zigzag-construction-id-pushout = + ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) + ( ฮป Path-to-b โ†’ + ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) + ( ฮป Path-to-a โ†’ + ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s)))) + +module _ + {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + (aโ‚€ : domain-span-diagram ๐’ฎ) + where + + stage-zigzag-construction-id-pushout : + โ„• โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ + stage-zigzag-construction-id-pushout zero-โ„• = + Path-to-b , + Path-to-a , + ( ฮป s โ†’ raise-ex-falso _) -- , + -- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) + where + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b _ = raise-empty _ + Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a = raise (l2 โŠ” l3) (aโ‚€ ๏ผ a) + stage-zigzag-construction-id-pushout (succ-โ„• n) = + Path-to-b , + Path-to-a , + ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) -- , + -- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) + where + span-diagram-B : + codomain-span-diagram ๐’ฎ โ†’ + span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) + span-diagram-B b = + make-span-diagram + ( pr2 โˆ˜ pr2) + ( tot + ( ฮป s โ†’ + tot + ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ + pr2 + ( pr2 (stage-zigzag-construction-id-pushout n)) + ( s) + ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b b = standard-pushout (span-diagram-B b) + span-diagram-A : + domain-span-diagram ๐’ฎ โ†’ + span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) + span-diagram-A a = + make-span-diagram + ( pr2 โˆ˜ pr2) + ( tot + ( ฮป s โ†’ + tot + ( ฮป r (p : pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a) โ†’ + inr-standard-pushout + ( span-diagram-B (right-map-span-diagram ๐’ฎ s)) + ( ( s) , + ( refl) , + ( tr + (pr1 (pr2 (stage-zigzag-construction-id-pushout n))) + ( r) + ( p)))))) + Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a = standard-pushout (span-diagram-A a) + + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b + + Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a + + concat-inv-s : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s) n + concat-inv-s s n = pr2 (pr2 (stage-zigzag-construction-id-pushout n)) s + + concat-s : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) + concat-s s n p = inr-pushout _ _ (s , refl , p) + + right-sequential-diagram-zigzag-id-pushout : + codomain-span-diagram ๐’ฎ โ†’ + sequential-diagram (l1 โŠ” l2 โŠ” l3) + pr1 (right-sequential-diagram-zigzag-id-pushout b) n = Path-to-b b n + pr2 (right-sequential-diagram-zigzag-id-pushout b) n = inl-pushout _ _ + + left-sequential-diagram-zigzag-id-pushout : + domain-span-diagram ๐’ฎ โ†’ + sequential-diagram (l1 โŠ” l2 โŠ” l3) + pr1 (left-sequential-diagram-zigzag-id-pushout a) n = Path-to-a a n + pr2 (left-sequential-diagram-zigzag-id-pushout a) n = inl-pushout _ _ + + zigzag-sequential-diagram-zigzag-id-pushout : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + zigzag-sequential-diagram + ( left-sequential-diagram-zigzag-id-pushout + ( left-map-span-diagram ๐’ฎ s)) + ( shift-once-sequential-diagram + ( right-sequential-diagram-zigzag-id-pushout + ( right-map-span-diagram ๐’ฎ s))) + pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) n = + concat-s s n + pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = + concat-inv-s s (succ-โ„• n) + pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = + glue-pushout _ _ (s , refl , p) + pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = + glue-pushout _ _ (s , refl , p) + +-- -- zigzag-sequential-diagram-zigzag-id-pushout' : +-- -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- -- zigzag-sequential-diagram +-- -- ( right-sequential-diagram-zigzag-id-pushout +-- -- ( right-map-span-diagram ๐’ฎ s)) +-- -- ( left-sequential-diagram-zigzag-id-pushout +-- -- ( left-map-span-diagram ๐’ฎ s)) +-- -- pr1 (zigzag-sequential-diagram-zigzag-id-pushout' s) n = +-- -- pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s +-- -- pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s)) n = +-- -- pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s +-- -- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) +-- -- zero-โ„• (map-raise ()) +-- -- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) (succ-โ„• n) p = +-- -- glue-pushout _ _ (s , refl , p) +-- -- pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = +-- -- glue-pushout _ _ (s , refl , p) + + left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + left-id-pushout a = + standard-sequential-colimit (left-sequential-diagram-zigzag-id-pushout a) + + refl-id-pushout : left-id-pushout aโ‚€ + refl-id-pushout = + map-cocone-standard-sequential-colimit 0 (map-raise refl) + + right-id-pushout : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + right-id-pushout b = + standard-sequential-colimit (right-sequential-diagram-zigzag-id-pushout b) + + equiv-id-pushout : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + left-id-pushout (left-map-span-diagram ๐’ฎ s) โ‰ƒ + right-id-pushout (right-map-span-diagram ๐’ฎ s) + equiv-id-pushout s = + equiv-colimit-zigzag-sequential-diagram _ _ + ( up-standard-sequential-colimit) + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( zigzag-sequential-diagram-zigzag-id-pushout s) + + descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) + pr1 descent-data-zigzag-id-pushout = left-id-pushout + pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout + pr2 (pr2 descent-data-zigzag-id-pushout) = equiv-id-pushout +``` + +## Theorem + +### TODO + +```agda +module _ + {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} + {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} + (up-c : universal-property-pushout _ _ c) + (aโ‚€ : domain-span-diagram ๐’ฎ) + where + + type-stage-ind-singleton-zigzag-id-pushout : + {l5 : Level} + (R : descent-data-pushout + ( span-diagram-flattening-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) + ( l5)) + (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) โ†’ + UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + type-stage-ind-singleton-zigzag-id-pushout R rโ‚€ = + ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) + ( ฮป p โ†’ left-family-descent-data-pushout R (a , p))) + ( ฮป dep-cocone-left โ†’ + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b))) + ( ฮป p โ†’ right-family-descent-data-pushout R (b , p))) + + module _ + {l5 : Level} + (R : descent-data-pushout + ( span-diagram-flattening-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) + ( l5)) + (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) + where + + type-stage-map-ind-singleton-zigzag-id-pushout : + (n : โ„•) โ†’ + UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + type-stage-map-ind-singleton-zigzag-id-pushout n = + ฮฃ ( (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + (b , map-cocone-standard-sequential-colimit n p)) + ( ฮป tB โ†’ + ฮฃ ( (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + (a , map-cocone-standard-sequential-colimit n p)) + ( ฮป tA โ†’ + (s : spanning-type-span-diagram ๐’ฎ) + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + {!tB (right-map-span-diagram ๐’ฎ s) + ?!} ๏ผ + {!tr + ( )!})) + -- map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit n p) + -- ( tA (left-map-span-diagram ๐’ฎ s) p))) + + stage-map-ind-singleton-zigzag-id-pushout : + (n : โ„•) โ†’ type-stage-map-ind-singleton-zigzag-id-pushout n + stage-map-ind-singleton-zigzag-id-pushout zero-โ„• = + map-b , + map-a , + {!!} + where + map-b : + (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b 0) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit 0 p) + map-b b (map-raise ()) + map-a : + (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a 0) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit 0 p) + map-a a (map-raise refl) = rโ‚€ + stage-map-ind-singleton-zigzag-id-pushout (succ-โ„• n) = + map-b , + map-a , + {!!} + where + dep-cocone-b : + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone _ _ + ( cocone-pushout _ _) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + pr1 (dep-cocone-b b) p = + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( pr1 (stage-map-ind-singleton-zigzag-id-pushout n) b p) + pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n) + ( p)) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( pr1 + ( pr2 ( stage-map-ind-singleton-zigzag-id-pushout n)) + ( left-map-span-diagram ๐’ฎ s) + ( p))) + pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = {!!} + map-b : + (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + map-b b = dependent-cogap _ _ (dep-cocone-b b) + dep-cocone-a : + (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone _ _ + ( cocone-pushout _ _) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + pr1 (dep-cocone-a a) p = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( pr1 (pr2 (stage-map-ind-singleton-zigzag-id-pushout n)) a p) + pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a))) + ( inv-hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n) + ( p)) + ( inv-map-family-descent-data-pushout R + ( s , + map-inv-equiv + ( equiv-id-pushout ๐’ฎ aโ‚€ s) + ( map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( inv + ( is-section-map-inv-equiv + ( equiv-id-pushout ๐’ฎ aโ‚€ s) + ( map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( map-b (right-map-span-diagram ๐’ฎ s) p))) + pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = {!!} + map-a : + (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n)) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + map-a a = dependent-cogap _ _ (dep-cocone-a a) + + ind-singleton-zigzag-id-pushout : + {l5 : Level} + (R : + descent-data-pushout + ( span-diagram-flattening-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) + ( l5)) + (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) โ†’ + section-descent-data-pushout R + ind-singleton-zigzag-id-pushout R rโ‚€ = + ind-ฮฃ (ฮป a โ†’ dependent-cogap-standard-sequential-colimit (dep-cocone-a a)) , + ind-ฮฃ (ฮป b โ†’ dependent-cogap-standard-sequential-colimit (dep-cocone-b b)) , + ind-ฮฃ {!!} + where + dep-cocone-a : + ( a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) + ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) + pr1 (dep-cocone-a a) n = + pr1 (pr2 (stage-map-ind-singleton-zigzag-id-pushout R rโ‚€ n)) a + pr2 (dep-cocone-a a) n = + {!!} + dep-cocone-b : + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) + ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) + pr1 (dep-cocone-b b) n = + pr1 (stage-map-ind-singleton-zigzag-id-pushout R rโ‚€ n) b + pr2 (dep-cocone-b b) n = + {!!} + + is-identity-system-zigzag-id-pushout : + is-identity-system-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) + ( refl-id-pushout ๐’ฎ aโ‚€) + is-identity-system-zigzag-id-pushout = + is-identity-system-descent-data-pushout-ind-singleton up-c + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) + ( refl-id-pushout ๐’ฎ aโ‚€) + ( ind-singleton-zigzag-id-pushout) +``` From ab80307cf49e49c440b078f1eee6a72fefae1cd5 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 12 Jun 2024 18:07:58 +0200 Subject: [PATCH 02/33] WIP interleaved mutual --- ...nstruction-identity-type-pushouts.lagda.md | 161 +++++++++++++++++- 1 file changed, 155 insertions(+), 6 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index 1360026804..1ac3f31058 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -148,6 +148,14 @@ module _ Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a + inl-Path-to-b : + (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) + inl-Path-to-b b n = inl-pushout _ _ + + inl-Path-to-a : + (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) + inl-Path-to-a a n = inl-pushout _ _ + concat-inv-s : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ @@ -165,14 +173,14 @@ module _ right-sequential-diagram-zigzag-id-pushout : codomain-span-diagram ๐’ฎ โ†’ sequential-diagram (l1 โŠ” l2 โŠ” l3) - pr1 (right-sequential-diagram-zigzag-id-pushout b) n = Path-to-b b n - pr2 (right-sequential-diagram-zigzag-id-pushout b) n = inl-pushout _ _ + pr1 (right-sequential-diagram-zigzag-id-pushout b) = Path-to-b b + pr2 (right-sequential-diagram-zigzag-id-pushout b) = inl-Path-to-b b left-sequential-diagram-zigzag-id-pushout : domain-span-diagram ๐’ฎ โ†’ sequential-diagram (l1 โŠ” l2 โŠ” l3) - pr1 (left-sequential-diagram-zigzag-id-pushout a) n = Path-to-a a n - pr2 (left-sequential-diagram-zigzag-id-pushout a) n = inl-pushout _ _ + pr1 (left-sequential-diagram-zigzag-id-pushout a) = Path-to-a a + pr2 (left-sequential-diagram-zigzag-id-pushout a) = inl-Path-to-a a zigzag-sequential-diagram-zigzag-id-pushout : (s : spanning-type-span-diagram ๐’ฎ) โ†’ @@ -182,8 +190,8 @@ module _ ( shift-once-sequential-diagram ( right-sequential-diagram-zigzag-id-pushout ( right-map-span-diagram ๐’ฎ s))) - pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) n = - concat-s s n + pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) = + concat-s s pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = concat-inv-s s (succ-โ„• n) pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = @@ -231,6 +239,20 @@ module _ ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) ( zigzag-sequential-diagram-zigzag-id-pushout s) + concat-inv-s-inf : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ + left-id-pushout (left-map-span-diagram ๐’ฎ s) + concat-inv-s-inf s = + map-inv-equiv (equiv-id-pushout s) + + concat-s-inf : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + left-id-pushout (left-map-span-diagram ๐’ฎ s) โ†’ + right-id-pushout (right-map-span-diagram ๐’ฎ s) + concat-s-inf s = + map-equiv (equiv-id-pushout s) + descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) pr1 descent-data-zigzag-id-pushout = left-id-pushout pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout @@ -280,6 +302,133 @@ module _ (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) where + interleaved mutual + cocone-tA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout _ _) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + cocone-tB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout _ _) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + cocone-tAA : + (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) + ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) + cocone-tBB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) + ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) + tA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit n p) + tAA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ + left-family-descent-data-pushout R (a , p) + kA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA a n p) ๏ผ + tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p) + tB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit n p) + tBB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ + right-family-descent-data-pushout R (b , p) + kB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( tB b n p) ๏ผ + tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p) + tR : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tAA + ( left-map-span-diagram ๐’ฎ s) + ( map-cocone-standard-sequential-colimit n p)) ๏ผ + tBB + ( right-map-span-diagram ๐’ฎ s) + ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) + tRR : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ + map-family-descent-data-pushout R + ( s , p) + ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ + tBB + ( right-map-span-diagram ๐’ฎ s) + ( concat-s-inf ๐’ฎ aโ‚€ s p) + + tA a zero-โ„• (map-raise refl) = rโ‚€ + tA a (succ-โ„• n) = dependent-cogap _ _ (cocone-tA a n) + tB b zero-โ„• (map-raise ()) + tB b (succ-โ„• n) = dependent-cogap _ _ (cocone-tB b n) + tAA a = dependent-cogap-standard-sequential-colimit (cocone-tAA a) + tBB b = dependent-cogap-standard-sequential-colimit (cocone-tBB b) + + pr1 (cocone-tA a n) p = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA a n p) + pr1 (pr2 (cocone-tA a n)) (s , refl , p) = {!!} + pr2 (pr2 (cocone-tA a n)) (s , refl , p) = {!!} + + pr1 (cocone-tB b n) p = + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( tB b n p) + pr1 (pr2 (cocone-tB b n)) (s , refl , p) = + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( {!!}) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) + pr2 (pr2 (cocone-tB b n)) (s , refl , p) = {!!} + + kA a n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) + kB b n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) + + pr1 (cocone-tAA a) = tA a + pr2 (cocone-tAA a) = kA a + + pr1 (cocone-tBB b) = tB b + pr2 (cocone-tBB b) = kB b + type-stage-map-ind-singleton-zigzag-id-pushout : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) From fc34c9dc837b582b3654c49ff1142205a5be4a2c Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 13 Jun 2024 16:29:03 +0200 Subject: [PATCH 03/33] Work --- ...nstruction-identity-type-pushouts.lagda.md | 362 ++++++++---------- 1 file changed, 155 insertions(+), 207 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index 1ac3f31058..cc2fd5192b 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -13,6 +13,7 @@ open import elementary-number-theory.natural-numbers -- open import foundation.commuting-squares-of-maps -- open import foundation.contractible-types +open import foundation.action-on-identifications-dependent-functions open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.empty-types @@ -40,6 +41,7 @@ open import synthetic-homotopy-theory.cocones-under-spans -- open import synthetic-homotopy-theory.descent-data-identity-types-over-pushouts open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams open import synthetic-homotopy-theory.dependent-cocones-under-spans +open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits open import synthetic-homotopy-theory.descent-data-pushouts open import synthetic-homotopy-theory.functoriality-sequential-colimits open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts @@ -302,7 +304,50 @@ module _ (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) where + private + CA : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + concat-inv-s-inf ๐’ฎ aโ‚€ s + ( map-cocone-standard-sequential-colimit (succ-โ„• n) p) ๏ผ + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p) + CA s = + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)))) + ( inv-hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + + CB : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + concat-s-inf ๐’ฎ aโ‚€ s + ( map-cocone-standard-sequential-colimit n p) ๏ผ + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p) + CB s = + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + interleaved mutual + -- left section part tโฟ_A a + tA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit n p) + -- definition of tโฟโบยน_A a (pattern matching on Pโฟโบยน_A a) cocone-tA : (a : domain-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ @@ -311,6 +356,14 @@ module _ ( ฮป p โ†’ left-family-descent-data-pushout R ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + -- right section part tโฟ_B b + tB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit n p) + -- definition of tโฟโบยน_B b (pattern matching on Pโฟโบยน_B b) cocone-tB : (b : codomain-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ @@ -319,69 +372,44 @@ module _ ( ฮป p โ†’ right-family-descent-data-pushout R ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + -- section coherence part tโฟ_S + tS : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s n p) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ + tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) + -- left section t_A a + tAA : + (a : domain-span-diagram ๐’ฎ) โ†’ + (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ + left-family-descent-data-pushout R (a , p) + -- definition of t_A a (pattern matching on Pแต’แต’_A a) cocone-tAA : (a : domain-span-diagram ๐’ฎ) โ†’ dependent-cocone-sequential-diagram ( cocone-standard-sequential-colimit ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) + -- right section t_B b + tBB : + (b : codomain-span-diagram ๐’ฎ) โ†’ + (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ + right-family-descent-data-pushout R (b , p) + -- definition of t_B b (pattern matching on Pแต’แต’_B b) cocone-tBB : (b : codomain-span-diagram ๐’ฎ) โ†’ dependent-cocone-sequential-diagram ( cocone-standard-sequential-colimit ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) - tA : - (a : domain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit n p) - tAA : - (a : domain-span-diagram ๐’ฎ) โ†’ - (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ - left-family-descent-data-pushout R (a , p) - kA : - (a : domain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA a n p) ๏ผ - tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p) - tB : - (b : codomain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit n p) - tBB : - (b : codomain-span-diagram ๐’ฎ) โ†’ - (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ - right-family-descent-data-pushout R (b , p) - kB : - (b : codomain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - tr - ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit n p) - ( tB b n p) ๏ผ - tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p) - tR : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tAA - ( left-map-span-diagram ๐’ฎ s) - ( map-cocone-standard-sequential-colimit n p)) ๏ผ - tBB - ( right-map-span-diagram ๐’ฎ s) - ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) - tRR : + -- section coherence t_S s + tSS : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ map-family-descent-data-pushout R @@ -390,8 +418,23 @@ module _ tBB ( right-map-span-diagram ๐’ฎ s) ( concat-s-inf ๐’ฎ aโ‚€ s p) + -- definition of t_S s (pattern matching on Pแต’แต’_A a) + cocone-tSS : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( left-map-span-diagram ๐’ฎ s))) + ( ฮป p โ†’ + map-family-descent-data-pushout R + ( s , p) + ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ + tBB (right-map-span-diagram ๐’ฎ s) (concat-s-inf ๐’ฎ aโ‚€ s p)) tA a zero-โ„• (map-raise refl) = rโ‚€ + -- tA (n+1) needs coconeA n, which needs tA n and tB (n+1), + -- which needs coconeB n, which only needs tB n and tA n, + -- so it terminates tA a (succ-โ„• n) = dependent-cogap _ _ (cocone-tA a n) tB b zero-โ„• (map-raise ()) tB b (succ-โ„• n) = dependent-cogap _ _ (cocone-tB b n) @@ -403,7 +446,19 @@ module _ ( ev-pair (left-family-descent-data-pushout R) a) ( coherence-cocone-standard-sequential-colimit n p) ( tA a n p) - pr1 (pr2 (cocone-tA a n)) (s , refl , p) = {!!} + pr1 (pr2 (cocone-tA a n)) (s , refl , p) = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( CA s n p) + ( inv-map-family-descent-data-pushout R + ( s , concat-inv-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( inv + ( is-section-map-inv-equiv + ( equiv-id-pushout ๐’ฎ aโ‚€ s) + ( map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) pr2 (pr2 (cocone-tA a n)) (s , refl , p) = {!!} pr1 (cocone-tB b n) p = @@ -414,145 +469,57 @@ module _ pr1 (pr2 (cocone-tB b n)) (s , refl , p) = tr ( ev-pair (right-family-descent-data-pushout R) b) - ( {!!}) + ( CB s n p) ( map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit n p) ( tA (left-map-span-diagram ๐’ฎ s) n p)) pr2 (pr2 (cocone-tB b n)) (s , refl , p) = {!!} - kA a n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) - kB b n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) + tS s n p = + inv + ( compute-inr-dependent-cogap _ _ + ( cocone-tB (right-map-span-diagram ๐’ฎ s) n) + ( s , refl , p)) + + alt-tS : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tAA + ( left-map-span-diagram ๐’ฎ s) + ( map-cocone-standard-sequential-colimit n p)) ๏ผ + tBB + ( right-map-span-diagram ๐’ฎ s) + ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) + alt-tS s n p = + {!tS s n p!} + where + [ii] = + pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dup-standard-sequential-colimit) + ( cocone-tAA (left-map-span-diagram ๐’ฎ s))) + ( n) + ( p) + [i] = + apd + ( map-family-descent-data-pushout R (s , map-cocone-standard-sequential-colimit n p)) + ( [ii]) + + tSS s = dependent-cogap-standard-sequential-colimit (cocone-tSS s) pr1 (cocone-tAA a) = tA a - pr2 (cocone-tAA a) = kA a + pr2 (cocone-tAA a) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) pr1 (cocone-tBB b) = tB b - pr2 (cocone-tBB b) = kB b - - type-stage-map-ind-singleton-zigzag-id-pushout : - (n : โ„•) โ†’ - UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) - type-stage-map-ind-singleton-zigzag-id-pushout n = - ฮฃ ( (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - right-family-descent-data-pushout R - (b , map-cocone-standard-sequential-colimit n p)) - ( ฮป tB โ†’ - ฮฃ ( (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - left-family-descent-data-pushout R - (a , map-cocone-standard-sequential-colimit n p)) - ( ฮป tA โ†’ - (s : spanning-type-span-diagram ๐’ฎ) - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - {!tB (right-map-span-diagram ๐’ฎ s) - ?!} ๏ผ - {!tr - ( )!})) - -- map-family-descent-data-pushout R - -- ( s , map-cocone-standard-sequential-colimit n p) - -- ( tA (left-map-span-diagram ๐’ฎ s) p))) - - stage-map-ind-singleton-zigzag-id-pushout : - (n : โ„•) โ†’ type-stage-map-ind-singleton-zigzag-id-pushout n - stage-map-ind-singleton-zigzag-id-pushout zero-โ„• = - map-b , - map-a , - {!!} - where - map-b : - (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b 0) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit 0 p) - map-b b (map-raise ()) - map-a : - (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a 0) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit 0 p) - map-a a (map-raise refl) = rโ‚€ - stage-map-ind-singleton-zigzag-id-pushout (succ-โ„• n) = - map-b , - map-a , - {!!} - where - dep-cocone-b : - (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone _ _ - ( cocone-pushout _ _) - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - pr1 (dep-cocone-b b) p = - tr - ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit n p) - ( pr1 (stage-map-ind-singleton-zigzag-id-pushout n) b p) - pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = - tr - ( ev-pair (right-family-descent-data-pushout R) b) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n) - ( p)) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( pr1 - ( pr2 ( stage-map-ind-singleton-zigzag-id-pushout n)) - ( left-map-span-diagram ๐’ฎ s) - ( p))) - pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = {!!} - map-b : - (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n)) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p) - map-b b = dependent-cogap _ _ (dep-cocone-b b) - dep-cocone-a : - (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone _ _ - ( cocone-pushout _ _) - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - pr1 (dep-cocone-a a) p = - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit n p) - ( pr1 (pr2 (stage-map-ind-singleton-zigzag-id-pushout n)) a p) - pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a))) - ( inv-hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n) - ( p)) - ( inv-map-family-descent-data-pushout R - ( s , - map-inv-equiv - ( equiv-id-pushout ๐’ฎ aโ‚€ s) - ( map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( inv - ( is-section-map-inv-equiv - ( equiv-id-pushout ๐’ฎ aโ‚€ s) - ( map-cocone-standard-sequential-colimit (succ-โ„• n) p))) - ( map-b (right-map-span-diagram ๐’ฎ s) p))) - pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = {!!} - map-a : - (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n)) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p) - map-a a = dependent-cogap _ _ (dep-cocone-a a) + pr2 (cocone-tBB b) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) - ind-singleton-zigzag-id-pushout : + pr1 (cocone-tSS s) = alt-tS s + pr2 (cocone-tSS s) = {!!} + + ind-singleton-zigzag-id-pushout' : {l5 : Level} (R : descent-data-pushout @@ -561,31 +528,12 @@ module _ ( l5)) (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) โ†’ section-descent-data-pushout R - ind-singleton-zigzag-id-pushout R rโ‚€ = - ind-ฮฃ (ฮป a โ†’ dependent-cogap-standard-sequential-colimit (dep-cocone-a a)) , - ind-ฮฃ (ฮป b โ†’ dependent-cogap-standard-sequential-colimit (dep-cocone-b b)) , - ind-ฮฃ {!!} - where - dep-cocone-a : - ( a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) - ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) - pr1 (dep-cocone-a a) n = - pr1 (pr2 (stage-map-ind-singleton-zigzag-id-pushout R rโ‚€ n)) a - pr2 (dep-cocone-a a) n = - {!!} - dep-cocone-b : - (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) - ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) - pr1 (dep-cocone-b b) n = - pr1 (stage-map-ind-singleton-zigzag-id-pushout R rโ‚€ n) b - pr2 (dep-cocone-b b) n = - {!!} + pr1 (ind-singleton-zigzag-id-pushout' R rโ‚€) (a , p) = + tAA R rโ‚€ a p + pr1 (pr2 (ind-singleton-zigzag-id-pushout' R rโ‚€)) (b , p) = + tBB R rโ‚€ b p + pr2 (pr2 (ind-singleton-zigzag-id-pushout' R rโ‚€)) (s , p) = + tSS R rโ‚€ s p is-identity-system-zigzag-id-pushout : is-identity-system-descent-data-pushout @@ -595,5 +543,5 @@ module _ is-identity-system-descent-data-pushout-ind-singleton up-c ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) ( refl-id-pushout ๐’ฎ aโ‚€) - ( ind-singleton-zigzag-id-pushout) + ( ind-singleton-zigzag-id-pushout') ``` From fb255de5ebfda2aa12350017be61c01c36eb4515 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Fri, 14 Jun 2024 17:09:39 +0200 Subject: [PATCH 04/33] Attempts at coherences --- ...nstruction-identity-type-pushouts.lagda.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index cc2fd5192b..dd19138ec9 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -69,6 +69,96 @@ TODO ### TODO +```agda +open import foundation.action-on-identifications-functions +open import foundation.commuting-squares-of-maps +open import synthetic-homotopy-theory.cocones-under-sequential-diagrams +-- open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits +open import synthetic-homotopy-theory.universal-property-sequential-colimits +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {X : UU l3} {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {Y : UU l4} {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (z : zigzag-sequential-diagram A B) + (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) + (e : (x : X) โ†’ P x โ‰ƒ Q (map-colimit-zigzag-sequential-diagram up-c up-c' z x)) + where + + private + CB : + (n : โ„•) โ†’ + coherence-square-maps + ( map-zigzag-sequential-diagram z n) + ( map-cocone-sequential-diagram c n) + ( map-cocone-sequential-diagram c' n) + ( map-colimit-zigzag-sequential-diagram up-c up-c' z) + CB = + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-c) + ( c') + ( hom-diagram-zigzag-sequential-diagram z) + dup-c : dependent-universal-property-sequential-colimit c + dup-c = dependent-universal-property-universal-property-sequential-colimit _ up-c + dup-c' : dependent-universal-property-sequential-colimit c' + dup-c' = dependent-universal-property-universal-property-sequential-colimit _ up-c' + + tS-equiv-tS : + (tA : (n : โ„•) (a : family-sequential-diagram A n) โ†’ P (map-cocone-sequential-diagram c n a)) + (HA : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + tr P (coherence-cocone-sequential-diagram c n a) (tA n a) ๏ผ + tA (succ-โ„• n) (map-sequential-diagram A n a)) + (tB : (n : โ„•) (b : family-sequential-diagram B n) โ†’ Q (map-cocone-sequential-diagram c' n b)) + (HB : + (n : โ„•) (b : family-sequential-diagram B n) โ†’ + tr Q (coherence-cocone-sequential-diagram c' n b) (tB n b) ๏ผ + tB (succ-โ„• n) (map-sequential-diagram B n b)) + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + ( ( map-equiv + ( e (map-cocone-sequential-diagram c n a)) + ( map-dependent-universal-property-sequential-colimit dup-c + ( tA , HA) + ( map-cocone-sequential-diagram c n a))) ๏ผ + map-dependent-universal-property-sequential-colimit dup-c' + ( tB , HB) + ( map-colimit-zigzag-sequential-diagram up-c up-c' z + ( map-cocone-sequential-diagram c n a))) โ‰ƒ + ( ( tr Q + ( CB n a) + ( map-equiv (e (map-cocone-sequential-diagram c n a)) (tA n a))) ๏ผ + ( tB n (map-zigzag-sequential-diagram z n a))) + tS-equiv-tS tA HA tB HB n a = + ( equiv-concat' _ + ( pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dup-c') + ( tB , HB)) + ( n) + ( map-zigzag-sequential-diagram z n a))) โˆ˜e + ( equiv-concat' _ + ( apd + ( map-dependent-universal-property-sequential-colimit dup-c' (tB , HB)) + ( CB n a))) โˆ˜e + ( equiv-ap + ( equiv-tr Q (CB n a)) + ( _) + ( _)) โˆ˜e + equiv-concat + ( ap + ( map-equiv (e (map-cocone-sequential-diagram c n a))) + ( inv + ( pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dup-c) + ( tA , HA)) + ( n) + ( a)))) + ( _) +``` + ```agda module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) @@ -519,6 +609,31 @@ module _ pr1 (cocone-tSS s) = alt-tS s pr2 (cocone-tSS s) = {!!} + alt-tS-tS-equiv : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + {!!} + -- (n : โ„•) โ†’ + -- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + -- {!!} โ‰ƒ {!!} + alt-tS-tS-equiv s = + tS-equiv-tS + ( up-standard-sequential-colimit) + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + ( ฮป p โ†’ left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , p)) + ( ฮป p โ†’ right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , p)) + ( ฮป p โ†’ equiv-family-descent-data-pushout R (s , p)) + ( tA (left-map-span-diagram ๐’ฎ s)) + -- ( ฮป where + -- zero-โ„• (map-raise refl) โ†’ inv (compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) 0) _ โˆ™ {!!}) + -- (succ-โ„• n) a โ†’ {!!} ) + ( ฮป n p โ†’ + inv + ( ( compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) โˆ™ + {!refl!})) + ( ฮป n โ†’ tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) + ( {!!}) + ind-singleton-zigzag-id-pushout' : {l5 : Level} (R : From 635fec9cdcda06007bb9a3ad3630fbe49851f0c6 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Fri, 21 Jun 2024 14:43:32 +0200 Subject: [PATCH 05/33] Progress --- ...nstruction-identity-type-pushouts.lagda.md | 247 ++++++++++++++---- 1 file changed, 203 insertions(+), 44 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index dd19138ec9..e870c3012d 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -21,7 +21,7 @@ open import foundation.equivalences open import foundation.function-types open import foundation.functoriality-dependent-pair-types -- open import foundation.fundamental-theorem-of-identity-types --- open import foundation.homotopies +open import foundation.homotopies -- open import foundation.identity-systems open import foundation.identity-types -- open import foundation.sections @@ -29,11 +29,13 @@ open import foundation.identity-types open import foundation.raising-universe-levels open import foundation.span-diagrams open import foundation.transport-along-identifications +open import foundation.transposition-identifications-along-equivalences -- open import foundation.torsorial-type-families -- open import foundation.transposition-identifications-along-equivalences -- open import foundation.universal-property-dependent-pair-types -- open import foundation.universal-property-identity-types open import foundation.universe-levels +open import foundation.whiskering-homotopies-composition open import synthetic-homotopy-theory.cocones-under-spans -- open import synthetic-homotopy-theory.dependent-universal-property-pushouts @@ -47,7 +49,7 @@ open import synthetic-homotopy-theory.functoriality-sequential-colimits open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts -- open import synthetic-homotopy-theory.descent-property-pushouts -- open import synthetic-homotopy-theory.equivalences-descent-data-pushouts --- open import synthetic-homotopy-theory.families-descent-data-pushouts +open import synthetic-homotopy-theory.families-descent-data-pushouts open import synthetic-homotopy-theory.flattening-lemma-pushouts -- open import synthetic-homotopy-theory.morphisms-descent-data-pushouts open import synthetic-homotopy-theory.pushouts @@ -184,8 +186,7 @@ module _ stage-zigzag-construction-id-pushout zero-โ„• = Path-to-b , Path-to-a , - ( ฮป s โ†’ raise-ex-falso _) -- , - -- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) + ( ฮป s โ†’ raise-ex-falso _) where Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) Path-to-b _ = raise-empty _ @@ -194,8 +195,7 @@ module _ stage-zigzag-construction-id-pushout (succ-โ„• n) = Path-to-b , Path-to-a , - ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) -- , - -- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) + ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) where span-diagram-B : codomain-span-diagram ๐’ฎ โ†’ @@ -291,23 +291,21 @@ module _ pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = glue-pushout _ _ (s , refl , p) --- -- zigzag-sequential-diagram-zigzag-id-pushout' : --- -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- -- zigzag-sequential-diagram --- -- ( right-sequential-diagram-zigzag-id-pushout --- -- ( right-map-span-diagram ๐’ฎ s)) --- -- ( left-sequential-diagram-zigzag-id-pushout --- -- ( left-map-span-diagram ๐’ฎ s)) --- -- pr1 (zigzag-sequential-diagram-zigzag-id-pushout' s) n = --- -- pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s --- -- pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s)) n = --- -- pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s --- -- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) --- -- zero-โ„• (map-raise ()) --- -- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) (succ-โ„• n) p = --- -- glue-pushout _ _ (s , refl , p) --- -- pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = --- -- glue-pushout _ _ (s , refl , p) + zigzag-sequential-diagram-zigzag-id-pushout' : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + zigzag-sequential-diagram + ( right-sequential-diagram-zigzag-id-pushout + ( right-map-span-diagram ๐’ฎ s)) + ( left-sequential-diagram-zigzag-id-pushout + ( left-map-span-diagram ๐’ฎ s)) + pr1 (zigzag-sequential-diagram-zigzag-id-pushout' s) = + concat-inv-s s + pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s)) = + concat-s s + pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = + glue-pushout _ _ (s , refl , p) + pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = + glue-pushout _ _ (s , refl , p) left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) left-id-pushout a = @@ -331,6 +329,16 @@ module _ ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) ( zigzag-sequential-diagram-zigzag-id-pushout s) + equiv-id-pushout' : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + right-id-pushout (right-map-span-diagram ๐’ฎ s) โ‰ƒ + left-id-pushout (left-map-span-diagram ๐’ฎ s) + equiv-id-pushout' s = + equiv-colimit-zigzag-sequential-diagram _ _ + ( up-standard-sequential-colimit) + ( up-standard-sequential-colimit) + ( zigzag-sequential-diagram-zigzag-id-pushout' s) + concat-inv-s-inf : (s : spanning-type-span-diagram ๐’ฎ) โ†’ right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ @@ -356,6 +364,19 @@ module _ ### TODO ```agda +nat-lemma : + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) + {x y : A} (p : x ๏ผ y) + (q : f x ๏ผ f y) (ฮฑ : ap f p ๏ผ q) โ†’ + coherence-square-maps + ( tr P p) + ( h x) + ( h y) + ( tr Q q) +nat-lemma f h p .(ap f p) refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) + module _ {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} @@ -429,6 +450,28 @@ module _ ( hom-diagram-zigzag-sequential-diagram ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + foo : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + foo s n p = + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , p))) โˆ˜ + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + interleaved mutual -- left section part tโฟ_A a tA : @@ -531,26 +574,6 @@ module _ tAA a = dependent-cogap-standard-sequential-colimit (cocone-tAA a) tBB b = dependent-cogap-standard-sequential-colimit (cocone-tBB b) - pr1 (cocone-tA a n) p = - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA a n p) - pr1 (pr2 (cocone-tA a n)) (s , refl , p) = - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( CA s n p) - ( inv-map-family-descent-data-pushout R - ( s , concat-inv-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( inv - ( is-section-map-inv-equiv - ( equiv-id-pushout ๐’ฎ aโ‚€ s) - ( map-cocone-standard-sequential-colimit (succ-โ„• n) p))) - ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) - pr2 (pr2 (cocone-tA a n)) (s , refl , p) = {!!} - pr1 (cocone-tB b n) p = tr ( ev-pair (right-family-descent-data-pushout R) b) @@ -563,7 +586,143 @@ module _ ( map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit n p) ( tA (left-map-span-diagram ๐’ฎ s) n p)) - pr2 (pr2 (cocone-tB b n)) (s , refl , p) = {!!} + pr2 (pr2 (cocone-tB ._ zero-โ„•)) (s , refl , map-raise ()) + pr2 (pr2 (cocone-tB ._ (succ-โ„• n))) (s , refl , p) = + inv + ( ( ap + ( ฮป q โ†’ + tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( q))) + ( compute-inr-dependent-cogap _ _ + ( cocone-tA (left-map-span-diagram ๐’ฎ s) n) + ( s , refl , p))) โˆ™ + ( ap + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- Would typecheck if Agda were to expand vertical-map-dependent-cocone (cocone-tA) + ( {![i]!})) โˆ™ + ( is-section-map-inv-equiv + ( equiv-tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ( _))) + where + [i] : + map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) ๏ผ + foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p) + [i] = + is-section-map-inv-equiv + ( equiv-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) + + pr1 (cocone-tA a n) p = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA a n p) + pr1 (pr2 (cocone-tA a n)) (s , refl , p) = + inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) + pr2 (pr2 (cocone-tA a n)) (s , refl , p) = + [key] + where + [i] : + ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl + ( coherence-cocone-standard-sequential-colimit n โˆ™h + map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ + ( ( CB s n) โˆ™h + ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr + ( concat-s ๐’ฎ aโ‚€ s n))) โˆ™h + ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl + (ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h + ( {!CB s (succ-โ„• n) ยทr ?!})) + [i] = + {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n)!} + [key]'' : + tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p)) + ( tr + ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ + inv-map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) + ( ( ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , (concat-s ๐’ฎ aโ‚€ s n p)))) โˆ˜ + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s n p) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)))) + [key]'' = {!!} + [key]' : + tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p)) + ( tr + ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ + inv-map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) + ( foo s n (concat-s ๐’ฎ aโ‚€ s n p) (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) + [key]' = {!!} + [key] : + tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p)) + ( pr1 (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) ๏ผ + (pr1 (pr2 (cocone-tA (left-map-span-diagram ๐’ฎ s) n)) (s , refl , concat-s ๐’ฎ aโ‚€ s n p)) + [key] = {!!} + -- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + -- ( up-standard-sequential-colimit) + -- ( shift-once-cocone-sequential-diagram + -- ( cocone-standard-sequential-colimit + -- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) + -- ( hom-diagram-zigzag-sequential-diagram + -- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + tS s n p = inv From df0caf35ddd09cd6a6157a0cf9fb6bda4baca689 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Mon, 24 Jun 2024 00:21:35 +0200 Subject: [PATCH 06/33] Some more real progress --- .../pushouts.lagda.md | 6 + ...nstruction-identity-type-pushouts.lagda.md | 1263 ++++++++++++----- 2 files changed, 888 insertions(+), 381 deletions(-) diff --git a/src/synthetic-homotopy-theory/pushouts.lagda.md b/src/synthetic-homotopy-theory/pushouts.lagda.md index 768276d97f..7c98487510 100644 --- a/src/synthetic-homotopy-theory/pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/pushouts.lagda.md @@ -150,6 +150,12 @@ module _ ( inl-standard-pushout) glue-standard-pushout = glue-pushout (left-map-span-diagram ๐’ฎ) (right-map-span-diagram ๐’ฎ) + + cocone-pushout-span-diagram : + cocone-span-diagram ๐’ฎ standard-pushout + pr1 cocone-pushout-span-diagram = inl-standard-pushout + pr1 (pr2 cocone-pushout-span-diagram) = inr-standard-pushout + pr2 (pr2 cocone-pushout-span-diagram) = glue-standard-pushout ``` ### The dependent cogap map diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index e870c3012d..d2b76f555d 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -1,7 +1,7 @@ # The zigzag construction of identity types of pushouts ```agda -{-# OPTIONS --lossy-unification #-} +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts where ``` @@ -15,6 +15,7 @@ open import elementary-number-theory.natural-numbers -- open import foundation.contractible-types open import foundation.action-on-identifications-dependent-functions open import foundation.cartesian-product-types +open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.empty-types open import foundation.equivalences @@ -22,6 +23,7 @@ open import foundation.function-types open import foundation.functoriality-dependent-pair-types -- open import foundation.fundamental-theorem-of-identity-types open import foundation.homotopies +open import foundation.homotopy-algebra -- open import foundation.identity-systems open import foundation.identity-types -- open import foundation.sections @@ -34,7 +36,9 @@ open import foundation.transposition-identifications-along-equivalences -- open import foundation.transposition-identifications-along-equivalences -- open import foundation.universal-property-dependent-pair-types -- open import foundation.universal-property-identity-types +open import foundation.unit-type open import foundation.universe-levels +open import foundation.whiskering-higher-homotopies-composition open import foundation.whiskering-homotopies-composition open import synthetic-homotopy-theory.cocones-under-spans @@ -166,15 +170,30 @@ module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) where - type-stage-zigzag-construction-id-pushout : UU (lsuc (l1 โŠ” l2 โŠ” l3)) - type-stage-zigzag-construction-id-pushout = + type-stage-zigzag-construction-id-pushout : โ„• โ†’ UU (lsuc (l1 โŠ” l2 โŠ” l3)) + type-stage-zigzag-construction-id-pushout n = ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) ( ฮป Path-to-b โ†’ ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) ( ฮป Path-to-a โ†’ - ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ - Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ - Path-to-a (left-map-span-diagram ๐’ฎ s)))) + ( ฮฃ ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s)) + ( ฮป _ โ†’ + rec-โ„• + ( raise-unit (lsuc (l1 โŠ” l2 โŠ” l3))) + ( ฮป _ _ โ†’ + ( codomain-span-diagram ๐’ฎ โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3)) ร— + ( domain-span-diagram ๐’ฎ โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3))) + ( n))))) module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) @@ -182,11 +201,12 @@ module _ where stage-zigzag-construction-id-pushout : - โ„• โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ + (n : โ„•) โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ n stage-zigzag-construction-id-pushout zero-โ„• = Path-to-b , Path-to-a , - ( ฮป s โ†’ raise-ex-falso _) + ( ฮป s โ†’ raise-ex-falso _) , + raise-star where Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) Path-to-b _ = raise-empty _ @@ -195,7 +215,9 @@ module _ stage-zigzag-construction-id-pushout (succ-โ„• n) = Path-to-b , Path-to-a , - ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) + ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) , + span-diagram-B , + span-diagram-A where span-diagram-B : codomain-span-diagram ๐’ฎ โ†’ @@ -207,8 +229,8 @@ module _ ( ฮป s โ†’ tot ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ - pr2 - ( pr2 (stage-zigzag-construction-id-pushout n)) + pr1 + ( pr2 (pr2 (stage-zigzag-construction-id-pushout n))) ( s) ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) @@ -228,12 +250,30 @@ module _ ( ( s) , ( refl) , ( tr - (pr1 (pr2 (stage-zigzag-construction-id-pushout n))) + ( pr1 (pr2 (stage-zigzag-construction-id-pushout n))) ( r) ( p)))))) Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) Path-to-a a = standard-pushout (span-diagram-A a) + span-diagram-path-to-b : + codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + span-diagram-path-to-b b n = + pr1 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) b + + span-diagram-path-to-a : + domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + span-diagram-path-to-a a n = + pr2 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) a + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b @@ -242,25 +282,32 @@ module _ inl-Path-to-b : (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) - inl-Path-to-b b n = inl-pushout _ _ + inl-Path-to-b b n = + inl-standard-pushout + ( span-diagram-path-to-b b n) inl-Path-to-a : (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) - inl-Path-to-a a n = inl-pushout _ _ + inl-Path-to-a a n = + inl-standard-pushout + ( span-diagram-path-to-a a n) concat-inv-s : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ Path-to-a (left-map-span-diagram ๐’ฎ s) n - concat-inv-s s n = pr2 (pr2 (stage-zigzag-construction-id-pushout n)) s + concat-inv-s s n = pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s concat-s : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) - concat-s s n p = inr-pushout _ _ (s , refl , p) + concat-s s n p = + inr-standard-pushout + ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) n) + ( s , refl , p) right-sequential-diagram-zigzag-id-pushout : codomain-span-diagram ๐’ฎ โ†’ @@ -287,25 +334,13 @@ module _ pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = concat-inv-s s (succ-โ„• n) pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = - glue-pushout _ _ (s , refl , p) + glue-standard-pushout + ( span-diagram-path-to-a (left-map-span-diagram ๐’ฎ s) n) + ( s , refl , p) pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = - glue-pushout _ _ (s , refl , p) - - zigzag-sequential-diagram-zigzag-id-pushout' : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - zigzag-sequential-diagram - ( right-sequential-diagram-zigzag-id-pushout - ( right-map-span-diagram ๐’ฎ s)) - ( left-sequential-diagram-zigzag-id-pushout - ( left-map-span-diagram ๐’ฎ s)) - pr1 (zigzag-sequential-diagram-zigzag-id-pushout' s) = - concat-inv-s s - pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s)) = - concat-s s - pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = - glue-pushout _ _ (s , refl , p) - pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout' s))) n p = - glue-pushout _ _ (s , refl , p) + glue-standard-pushout + ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) + ( s , refl , p) left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) left-id-pushout a = @@ -329,16 +364,6 @@ module _ ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) ( zigzag-sequential-diagram-zigzag-id-pushout s) - equiv-id-pushout' : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - right-id-pushout (right-map-span-diagram ๐’ฎ s) โ‰ƒ - left-id-pushout (left-map-span-diagram ๐’ฎ s) - equiv-id-pushout' s = - equiv-colimit-zigzag-sequential-diagram _ _ - ( up-standard-sequential-colimit) - ( up-standard-sequential-colimit) - ( zigzag-sequential-diagram-zigzag-id-pushout' s) - concat-inv-s-inf : (s : spanning-type-span-diagram ๐’ฎ) โ†’ right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ @@ -368,14 +393,14 @@ nat-lemma : {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {P : A โ†’ UU l3} {Q : B โ†’ UU l4} (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) - {x y : A} (p : x ๏ผ y) - (q : f x ๏ผ f y) (ฮฑ : ap f p ๏ผ q) โ†’ + {x y : A} {p : x ๏ผ y} + {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ coherence-square-maps ( tr P p) ( h x) ( h y) ( tr Q q) -nat-lemma f h p .(ap f p) refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) module _ {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} @@ -384,28 +409,6 @@ module _ (aโ‚€ : domain-span-diagram ๐’ฎ) where - type-stage-ind-singleton-zigzag-id-pushout : - {l5 : Level} - (R : descent-data-pushout - ( span-diagram-flattening-descent-data-pushout - ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) - ( l5)) - (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) โ†’ - UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) - type-stage-ind-singleton-zigzag-id-pushout R rโ‚€ = - ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) - ( ฮป p โ†’ left-family-descent-data-pushout R (a , p))) - ( ฮป dep-cocone-left โ†’ - (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b))) - ( ฮป p โ†’ right-family-descent-data-pushout R (b , p))) - module _ {l5 : Level} (R : descent-data-pushout @@ -415,24 +418,36 @@ module _ (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) where - private - CA : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - concat-inv-s-inf ๐’ฎ aโ‚€ s - ( map-cocone-standard-sequential-colimit (succ-โ„• n) p) ๏ผ - map-cocone-standard-sequential-colimit (succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p) - CA s = - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)))) - ( inv-hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + -- type-stage-ind-singleton-zigzag-id-pushout : โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + -- type-stage-ind-singleton-zigzag-id-pushout n = + -- ฮฃ ( (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + -- right-family-descent-data-pushout R + -- ( b , map-cocone-standard-sequential-colimit n p)) + -- ( ฮป tB โ†’ + -- ฮฃ ( (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + -- left-family-descent-data-pushout R + -- ( a , map-cocone-standard-sequential-colimit n p)) + -- ( ฮป tA โ†’ + -- rec-โ„• + -- ( raise-unit (l1 โŠ” l2 โŠ” l3 โŠ” l5)) + -- ( ฮป n' _ โ†’ + -- ( (b : codomain-span-diagram ๐’ฎ) โ†’ + -- dependent-cocone-span-diagram + -- ( cocone-pushout-span-diagram + -- ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n')) + -- ( ฮป p โ†’ + -- right-family-descent-data-pushout R + -- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n') p))) ร— + -- ( (a : domain-span-diagram ๐’ฎ) โ†’ + -- dependent-cocone-span-diagram + -- ( cocone-pushout-span-diagram + -- ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n')) + -- ( ฮป p โ†’ + -- left-family-descent-data-pushout R + -- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n') p)))) + -- ( n))) + private CB : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ @@ -472,342 +487,828 @@ module _ ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - interleaved mutual - -- left section part tโฟ_A a - tA : - (a : domain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit n p) - -- definition of tโฟโบยน_A a (pattern matching on Pโฟโบยน_A a) - cocone-tA : - (a : domain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout _ _) - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - -- right section part tโฟ_B b - tB : - (b : codomain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit n p) - -- definition of tโฟโบยน_B b (pattern matching on Pโฟโบยน_B b) - cocone-tB : + coh-dep-cocone-a : + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + coherence-square-maps + ( ( tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p))) โˆ˜ + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p))) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ( map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) + ( ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p))) + coh-dep-cocone-a s n p = + ( ( inv-htpy + ( ( tr-concat _ _) โˆ™h + ( ( tr _ _) ยทl + ( ( tr-concat _ _) โˆ™h + ( horizontal-concat-htpy + ( ฮป _ โ†’ substitution-law-tr _ _ _) + ( tr-concat _ _)))))) ยทr + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h + ( [ii]) โˆ™h + ( ( map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s + ( succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl + ( ( tr-concat _ _) โˆ™h + ( ฮป q โ†’ substitution-law-tr _ _ _))) + where + [0] : + ( ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl + ( coherence-cocone-standard-sequential-colimit n)) โˆ™h + ( ( CB s (succ-โ„• n)) ยทr + ( inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n))) ~ + ( ( CB s n) โˆ™h + ( ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr + ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h + ( ( map-cocone-standard-sequential-colimit + { A = + right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) ยทl + pr2 + (hom-diagram-zigzag-sequential-diagram + (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + n))) + [0] = + coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n) + [0]' : + ( + (concat-s-inf ๐’ฎ aโ‚€ s ยทl + coherence-cocone-standard-sequential-colimit n + โˆ™h + CB s (succ-โ„• n) ยทr + inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โˆ™h + (map-cocone-standard-sequential-colimit {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) } (succ-โ„• (succ-โ„• n)) ยทl + ( + pr1 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + (succ-โ„• n) + ยทl + (pr1 + (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s))) + n) + ) + )) + ~ + (CB s n โˆ™h + ( + coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr + concat-s ๐’ฎ aโ‚€ s n + โˆ™h + (map-cocone-standard-sequential-colimit {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) } (succ-โ„• (succ-โ„• n)) ยทl + (ฮป xโ‚ƒ โ†’ + glue-pushout + _ + _ + (s , + refl , + pr1 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) n xโ‚ƒ)))) + ) + + [0]' = + ( ap-concat-htpy _ + ( ?)) โˆ™h + ( map-inv-equiv + ( equiv-right-transpose-htpy-concat _ _ _) + ( ( [0]) โˆ™h + ( ap-concat-htpy + ( CB s n) + ( ( ap-concat-htpy + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr concat-s ๐’ฎ aโ‚€ s n) + ( ( distributive-left-whisker-comp-concat + ( map-cocone-standard-sequential-colimit + {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) + ( _) + ( _)) โˆ™h + ( ap-concat-htpy _ + ( ( left-whisker-compยฒ _ (left-whisker-inv-htpy _ _)) โˆ™h + ( left-whisker-inv-htpy _ _))))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))) + [i] : + ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl + ( coherence-cocone-standard-sequential-colimit n โˆ™h + map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ + ( ( CB s n) โˆ™h + ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr + ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h + ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl + ( ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h + ( inv-htpy (CB s (succ-โ„• n)) ยทr (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) + [i] = + distributive-left-whisker-comp-concat _ _ _ โˆ™h + {!!} + -- square with condensed top and bottom + [ii] : + coherence-square-maps + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( ( coherence-cocone-standard-sequential-colimit n p) โˆ™ + ( ap + ( map-cocone-standard-sequential-colimit (succ-โ„• n)) + ( glue-pushout _ _ (s , refl , p))))) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ( map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( ( CB s n p) โˆ™ + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) โˆ™ + ( ap + ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) + ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™ + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))))) + [ii] = + nat-lemma + ( concat-s-inf ๐’ฎ aโ‚€ s) + ( ev-pair (map-family-descent-data-pushout R) s) + ( [i] p) + + + -- TODO: Explore omitting vertical-map-dependent-cocone + stages-cocones' : + (n : โ„•) โ†’ + ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram + ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n)) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( ฮป dep-cocone-b โ†’ + ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram + ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n)) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( ฮป dep-cocone-a โ†’ + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + vertical-map-dependent-cocone _ _ _ _ + ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p) ๏ผ + inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( foo s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)))) + stages-cocones' zero-โ„• = + dep-cocone-b , + dep-cocone-a , + ฮป s p โ†’ refl + where + dep-cocone-b : (b : codomain-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ dependent-cocone-span-diagram - ( cocone-pushout _ _) + ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b 0)) ( ฮป p โ†’ right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - -- section coherence part tโฟ_S - tS : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + ( b , map-cocone-standard-sequential-colimit 1 p)) + pr1 (dep-cocone-b b) (map-raise ()) + pr1 (pr2 (dep-cocone-b ._)) (s , refl , map-raise refl) = tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( CB s n p) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s 0 (map-raise refl)) ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ - tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) - -- left section t_A a - tAA : + ( s , map-cocone-standard-sequential-colimit 0 (map-raise refl)) + ( rโ‚€)) + pr2 (pr2 (dep-cocone-b ._)) (s , refl , map-raise ()) + dep-cocone-a : (a : domain-span-diagram ๐’ฎ) โ†’ - (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ - left-family-descent-data-pushout R (a , p) - -- definition of t_A a (pattern matching on Pแต’แต’_A a) - cocone-tAA : - (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) - ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) - -- right section t_B b - tBB : - (b : codomain-span-diagram ๐’ฎ) โ†’ - (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ - right-family-descent-data-pushout R (b , p) - -- definition of t_B b (pattern matching on Pแต’แต’_B b) - cocone-tBB : + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a 0)) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit 1 p)) + pr1 (dep-cocone-a .aโ‚€) (map-raise refl) = + tr + ( ev-pair (left-family-descent-data-pushout R) aโ‚€) + ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) + ( rโ‚€) + pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = + inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit 1 (concat-inv-s ๐’ฎ aโ‚€ s 1 p)) + ( foo s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = + map-eq-transpose-equiv + ( equiv-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit 1 + ( concat-inv-s ๐’ฎ aโ‚€ s 1 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))))) + ( inv + ( ( ap + ( foo s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + (s , refl , map-raise refl))) โˆ™ + ( coh-dep-cocone-a s 0 (map-raise refl) rโ‚€))) + stages-cocones' (succ-โ„• n) = + dep-cocone-b , + dep-cocone-a , + ฮป s p โ†’ refl + where + dep-cocone-b : (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) - ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) - -- section coherence t_S s - tSS : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ - map-family-descent-data-pushout R - ( s , p) - ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ - tBB - ( right-map-span-diagram ๐’ฎ s) - ( concat-s-inf ๐’ฎ aโ‚€ s p) - -- definition of t_S s (pattern matching on Pแต’แต’_A a) - cocone-tSS : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - dependent-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( left-map-span-diagram ๐’ฎ s))) + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n))) ( ฮป p โ†’ - map-family-descent-data-pushout R - ( s , p) - ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ - tBB (right-map-span-diagram ๐’ฎ s) (concat-s-inf ๐’ฎ aโ‚€ s p)) - - tA a zero-โ„• (map-raise refl) = rโ‚€ - -- tA (n+1) needs coconeA n, which needs tA n and tB (n+1), - -- which needs coconeB n, which only needs tB n and tA n, - -- so it terminates - tA a (succ-โ„• n) = dependent-cogap _ _ (cocone-tA a n) - tB b zero-โ„• (map-raise ()) - tB b (succ-โ„• n) = dependent-cogap _ _ (cocone-tB b n) - tAA a = dependent-cogap-standard-sequential-colimit (cocone-tAA a) - tBB b = dependent-cogap-standard-sequential-colimit (cocone-tBB b) - - pr1 (cocone-tB b n) p = + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + pr1 (dep-cocone-b b) p = tr ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit n p) - ( tB b n p) - pr1 (pr2 (cocone-tB b n)) (s , refl , p) = + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (stages-cocones' n) b) p) + pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = tr - ( ev-pair (right-family-descent-data-pushout R) b) - ( CB s n p) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s (succ-โ„• n) p) ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) - pr2 (pr2 (cocone-tB ._ zero-โ„•)) (s , refl , map-raise ()) - pr2 (pr2 (cocone-tB ._ (succ-โ„• n))) (s , refl , p) = + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) + pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = inv ( ( ap ( ฮป q โ†’ tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( s , + ( map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) ( q))) - ( compute-inr-dependent-cogap _ _ - ( cocone-tA (left-map-span-diagram ๐’ฎ s) n) - ( s , refl , p))) โˆ™ + ( ( compute-inr-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p)) โˆ™ + ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ ( ap ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- Would typecheck if Agda were to expand vertical-map-dependent-cocone (cocone-tA) - ( {![i]!})) โˆ™ + ( is-section-map-inv-equiv + ( equiv-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ( foo s n p (dependent-cogap _ _ + ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ ( is-section-map-inv-equiv ( equiv-tr ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) ( _))) - where - [i] : - map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) ๏ผ - foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p) - [i] = - is-section-map-inv-equiv - ( equiv-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) - - pr1 (cocone-tA a n) p = + dep-cocone-a : + (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n))) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + pr1 (dep-cocone-a a) p = tr ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA a n p) - pr1 (pr2 (cocone-tA a n)) (s , refl , p) = + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) + pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) - pr2 (pr2 (cocone-tA a n)) (s , refl , p) = - [key] - where - [i] : - ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl - ( coherence-cocone-standard-sequential-colimit n โˆ™h - map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ - ( ( CB s n) โˆ™h - ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr - ( concat-s ๐’ฎ aโ‚€ s n))) โˆ™h - ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl - (ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h - ( {!CB s (succ-โ„• n) ยทr ?!})) - [i] = - {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n)!} - [key]'' : - tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p)) - ( tr - ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ - inv-map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) - ( ( ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , (concat-s ๐’ฎ aโ‚€ s n p)))) โˆ˜ - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( CB s n p) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)))) - [key]'' = {!!} - [key]' : - tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p)) - ( tr - ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ - inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• (succ-โ„• n)) p)) + ( foo s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = + map-eq-transpose-equiv + ( equiv-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit + ( succ-โ„• (succ-โ„• n)) + ( concat-inv-s ๐’ฎ aโ‚€ s + ( succ-โ„• (succ-โ„• n)) + ( concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) + ( inv + ( ( ap + ( foo s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + ( s , refl , p))) โˆ™ + ( coh-dep-cocone-a s ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) - ( foo s n (concat-s ๐’ฎ aโ‚€ s n p) (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) - [key]' = {!!} - [key] : - tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p)) - ( pr1 (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) ๏ผ - (pr1 (pr2 (cocone-tA (left-map-span-diagram ๐’ฎ s) n)) (s , refl , concat-s ๐’ฎ aโ‚€ s n p)) - [key] = {!!} - -- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - -- ( up-standard-sequential-colimit) - -- ( shift-once-cocone-sequential-diagram - -- ( cocone-standard-sequential-colimit - -- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) - -- ( hom-diagram-zigzag-sequential-diagram - -- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - - - tS s n p = - inv - ( compute-inr-dependent-cogap _ _ - ( cocone-tB (right-map-span-diagram ๐’ฎ s) n) - ( s , refl , p)) + ( p) + ( dependent-cogap _ _ + (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)))) - alt-tS : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tAA - ( left-map-span-diagram ๐’ฎ s) - ( map-cocone-standard-sequential-colimit n p)) ๏ผ - tBB - ( right-map-span-diagram ๐’ฎ s) - ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) - alt-tS s n p = - {!tS s n p!} - where - [ii] = - pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dup-standard-sequential-colimit) - ( cocone-tAA (left-map-span-diagram ๐’ฎ s))) - ( n) - ( p) - [i] = - apd - ( map-family-descent-data-pushout R (s , map-cocone-standard-sequential-colimit n p)) - ( [ii]) +-- interleaved mutual +-- -- left section part tโฟ_A a +-- tA : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit n p) +-- -- definition of tโฟโบยน_A a (pattern matching on Pโฟโบยน_A a) +-- cocone-tA : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout _ _) +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- -- right section part tโฟ_B b +-- tB : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit n p) +-- -- definition of tโฟโบยน_B b (pattern matching on Pโฟโบยน_B b) +-- cocone-tB : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout _ _) +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- -- section coherence part tโฟ_S +-- tS : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ +-- tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) +-- -- left section t_A a +-- tAA : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ +-- left-family-descent-data-pushout R (a , p) +-- -- definition of t_A a (pattern matching on Pแต’แต’_A a) +-- cocone-tAA : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) +-- ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) +-- -- right section t_B b +-- tBB : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ +-- right-family-descent-data-pushout R (b , p) +-- -- definition of t_B b (pattern matching on Pแต’แต’_B b) +-- cocone-tBB : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) +-- ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) +-- -- section coherence t_S s +-- tSS : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ +-- map-family-descent-data-pushout R +-- ( s , p) +-- ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ +-- tBB +-- ( right-map-span-diagram ๐’ฎ s) +-- ( concat-s-inf ๐’ฎ aโ‚€ s p) +-- -- definition of t_S s (pattern matching on Pแต’แต’_A a) +-- cocone-tSS : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ +-- ( left-map-span-diagram ๐’ฎ s))) +-- ( ฮป p โ†’ +-- map-family-descent-data-pushout R +-- ( s , p) +-- ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ +-- tBB (right-map-span-diagram ๐’ฎ s) (concat-s-inf ๐’ฎ aโ‚€ s p)) + +-- tA a zero-โ„• (map-raise refl) = rโ‚€ +-- -- tA (n+1) needs coconeA n, which needs tA n and tB (n+1), +-- -- which needs coconeB n, which only needs tB n and tA n, +-- -- so it terminates +-- tA a (succ-โ„• n) = dependent-cogap _ _ (cocone-tA a n) +-- tB b zero-โ„• (map-raise ()) +-- tB b (succ-โ„• n) = dependent-cogap _ _ (cocone-tB b n) +-- tAA a = dependent-cogap-standard-sequential-colimit (cocone-tAA a) +-- tBB b = dependent-cogap-standard-sequential-colimit (cocone-tBB b) + +-- pr1 (cocone-tB b n) p = +-- tr +-- ( ev-pair (right-family-descent-data-pushout R) b) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tB b n p) +-- pr1 (pr2 (cocone-tB b n)) (s , refl , p) = +-- tr +-- ( ev-pair (right-family-descent-data-pushout R) b) +-- ( CB s n p) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)) +-- pr2 (pr2 (cocone-tB ._ zero-โ„•)) (s , refl , map-raise ()) +-- pr2 (pr2 (cocone-tB ._ (succ-โ„• n))) (s , refl , p) = +-- inv +-- ( ( ap +-- ( ฮป q โ†’ +-- tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( q))) +-- ( compute-inr-dependent-cogap _ _ +-- ( cocone-tA (left-map-span-diagram ๐’ฎ s) n) +-- ( s , refl , p))) โˆ™ +-- ( ap +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) +-- -- Would typecheck if Agda were to expand vertical-map-dependent-cocone (cocone-tA) +-- ( {![i]!})) โˆ™ +-- ( is-section-map-inv-equiv +-- ( equiv-tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) +-- ( _))) +-- where +-- [i] : +-- map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( inv-map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) ๏ผ +-- foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p) +-- [i] = +-- is-section-map-inv-equiv +-- ( equiv-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) +-- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) + +-- pr1 (cocone-tA a n) p = +-- tr +-- ( ev-pair (left-family-descent-data-pushout R) a) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tA a n p) +-- pr1 (pr2 (cocone-tA a n)) (s , refl , p) = +-- inv-map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) +-- pr2 (pr2 (cocone-tA a n)) (s , refl , p) = +-- [key] +-- where +-- [i] : +-- ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl +-- ( coherence-cocone-standard-sequential-colimit n โˆ™h +-- map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ +-- ( ( CB s n) โˆ™h +-- ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr +-- ( concat-s ๐’ฎ aโ‚€ s n))) โˆ™h +-- ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl +-- (ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h +-- ( inv-htpy (CB s (succ-โ„• n)) ยทr (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) +-- [i] = +-- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- ( up-standard-sequential-colimit) +-- ( shift-once-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) +-- ( hom-diagram-zigzag-sequential-diagram +-- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) +-- ( n)!} +-- [ii] : +-- coherence-square-maps +-- ( tr +-- ( ev-pair +-- ( left-family-descent-data-pushout R) +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( ( coherence-cocone-standard-sequential-colimit n p) โˆ™ +-- ( ap +-- ( map-cocone-standard-sequential-colimit (succ-โ„• n)) +-- ( glue-pushout _ _ (s , refl , p))))) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p)) +-- ( map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( ( CB s n p) โˆ™ +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) โˆ™ +-- ( ap +-- ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) +-- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™ +-- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))))) +-- [ii] = +-- nat-lemma +-- ( concat-s-inf ๐’ฎ aโ‚€ s) +-- ( ev-pair (map-family-descent-data-pushout R) s) +-- ( [i] p) +-- [iii] : +-- coherence-square-maps +-- ( ( tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( left-family-descent-data-pushout R) +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p))) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p)) +-- ( map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ +-- ( tr +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p))) +-- [iii] = {! annoying straightforward path algebra from [ii] !} +-- [key]'' : +-- tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p)) +-- ( tr +-- ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ +-- inv-map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) +-- ( ( ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ +-- ( tr +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- ( glue-pushout _ _ (s , refl , (concat-s ๐’ฎ aโ‚€ s n p)))) โˆ˜ +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)))) +-- [key]'' = +-- map-eq-transpose-equiv +-- ( equiv-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s +-- ( succ-โ„• n) +-- ( concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( inv +-- ( [iii] (tA (left-map-span-diagram ๐’ฎ s) n p))) +-- [key]' : +-- tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p)) +-- ( tr +-- ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ +-- inv-map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) +-- ( foo s n (concat-s ๐’ฎ aโ‚€ s n p) (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) +-- [key]' = {!folded foo and tB from [key]''!} +-- [key] : +-- tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p)) +-- ( pr1 (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) ๏ผ +-- (pr1 (pr2 (cocone-tA (left-map-span-diagram ๐’ฎ s) n)) (s , refl , concat-s ๐’ฎ aโ‚€ s n p)) +-- [key] = {!folded cocone-tA from [key]'!} + +-- tS s n p = +-- inv +-- ( compute-inr-dependent-cogap _ _ +-- ( cocone-tB (right-map-span-diagram ๐’ฎ s) n) +-- ( s , refl , p)) + +-- alt-tS : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( tAA +-- ( left-map-span-diagram ๐’ฎ s) +-- ( map-cocone-standard-sequential-colimit n p)) ๏ผ +-- tBB +-- ( right-map-span-diagram ๐’ฎ s) +-- ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) +-- alt-tS s n p = +-- {!tS s n p!} +-- where +-- [ii] = +-- pr1 +-- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit +-- ( dup-standard-sequential-colimit) +-- ( cocone-tAA (left-map-span-diagram ๐’ฎ s))) +-- ( n) +-- ( p) +-- [i] = +-- apd +-- ( map-family-descent-data-pushout R (s , map-cocone-standard-sequential-colimit n p)) +-- ( [ii]) - tSS s = dependent-cogap-standard-sequential-colimit (cocone-tSS s) +-- tSS s = dependent-cogap-standard-sequential-colimit (cocone-tSS s) - pr1 (cocone-tAA a) = tA a - pr2 (cocone-tAA a) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) +-- pr1 (cocone-tAA a) = tA a +-- pr2 (cocone-tAA a) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) - pr1 (cocone-tBB b) = tB b - pr2 (cocone-tBB b) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) +-- pr1 (cocone-tBB b) = tB b +-- pr2 (cocone-tBB b) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) - pr1 (cocone-tSS s) = alt-tS s - pr2 (cocone-tSS s) = {!!} +-- pr1 (cocone-tSS s) = alt-tS s +-- pr2 (cocone-tSS s) = {!!} - alt-tS-tS-equiv : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- alt-tS-tS-equiv : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- {!!} +-- -- (n : โ„•) โ†’ +-- -- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- -- {!!} โ‰ƒ {!!} +-- alt-tS-tS-equiv s = +-- tS-equiv-tS +-- ( up-standard-sequential-colimit) +-- ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) +-- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) +-- ( ฮป p โ†’ left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , p)) +-- ( ฮป p โ†’ right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , p)) +-- ( ฮป p โ†’ equiv-family-descent-data-pushout R (s , p)) +-- ( tA (left-map-span-diagram ๐’ฎ s)) +-- -- ( ฮป where +-- -- zero-โ„• (map-raise refl) โ†’ inv (compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) 0) _ โˆ™ {!!}) +-- -- (succ-โ„• n) a โ†’ {!!} ) +-- ( ฮป n p โ†’ +-- inv +-- ( ( compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) โˆ™ +-- {!refl!})) +-- ( ฮป n โ†’ tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) +-- ( {!!}) + + + ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R + pr1 ind-singleton-zigzag-id-pushout' (a , p) = + dependent-cogap-standard-sequential-colimit + ( tA , KA) + ( p) + where + tA : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit n p) + tA zero-โ„• (map-raise refl) = rโ‚€ + tA (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) + KA : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + dependent-identification + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA n p) + ( tA (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) + KA zero-โ„• (map-raise refl) = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' 0)) a) + ( map-raise refl)) + KA (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) + ( p)) + pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = + dependent-cogap-standard-sequential-colimit + ( tB , KB) + ( p) + where + tB : + (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit n p) + tB zero-โ„• (map-raise ()) + tB (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) + KB : + (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + dependent-identification + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( tB n p) + ( tB (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) + KB zero-โ„• (map-raise ()) + KB (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (stages-cocones' (succ-โ„• n)) b) + ( p)) + pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = {!!} - -- (n : โ„•) โ†’ - -- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - -- {!!} โ‰ƒ {!!} - alt-tS-tS-equiv s = - tS-equiv-tS - ( up-standard-sequential-colimit) - ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) - ( ฮป p โ†’ left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , p)) - ( ฮป p โ†’ right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , p)) - ( ฮป p โ†’ equiv-family-descent-data-pushout R (s , p)) - ( tA (left-map-span-diagram ๐’ฎ s)) - -- ( ฮป where - -- zero-โ„• (map-raise refl) โ†’ inv (compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) 0) _ โˆ™ {!!}) - -- (succ-โ„• n) a โ†’ {!!} ) - ( ฮป n p โ†’ - inv - ( ( compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) โˆ™ - {!refl!})) - ( ฮป n โ†’ tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) - ( {!!}) - - ind-singleton-zigzag-id-pushout' : - {l5 : Level} - (R : - descent-data-pushout - ( span-diagram-flattening-descent-data-pushout - ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) - ( l5)) - (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) โ†’ - section-descent-data-pushout R - pr1 (ind-singleton-zigzag-id-pushout' R rโ‚€) (a , p) = - tAA R rโ‚€ a p - pr1 (pr2 (ind-singleton-zigzag-id-pushout' R rโ‚€)) (b , p) = - tBB R rโ‚€ b p - pr2 (pr2 (ind-singleton-zigzag-id-pushout' R rโ‚€)) (s , p) = - tSS R rโ‚€ s p is-identity-system-zigzag-id-pushout : is-identity-system-descent-data-pushout From 2cfce599b1445d997d4a8fff59475decd13bf47b Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Mon, 24 Jun 2024 01:17:33 +0200 Subject: [PATCH 07/33] Down to one hole --- ...nstruction-identity-type-pushouts.lagda.md | 180 ++++++------------ 1 file changed, 59 insertions(+), 121 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index d2b76f555d..c700b06760 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -15,6 +15,7 @@ open import elementary-number-theory.natural-numbers -- open import foundation.contractible-types open import foundation.action-on-identifications-dependent-functions open import foundation.cartesian-product-types +open import foundation.commuting-squares-of-homotopies open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.empty-types @@ -539,7 +540,10 @@ module _ ( tr-concat _ _)))))) ยทr ( map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h - ( [ii]) โˆ™h + ( nat-lemma + ( concat-s-inf ๐’ฎ aโ‚€ s) + ( ev-pair (map-family-descent-data-pushout R) s) + ( [i] p)) โˆ™h ( ( map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit @@ -550,131 +554,65 @@ module _ ( ( tr-concat _ _) โˆ™h ( ฮป q โ†’ substitution-law-tr _ _ _))) where - [0] : - ( ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl - ( coherence-cocone-standard-sequential-colimit n)) โˆ™h - ( ( CB s (succ-โ„• n)) ยทr - ( inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n))) ~ - ( ( CB s n) โˆ™h - ( ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr - ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h - ( ( map-cocone-standard-sequential-colimit - { A = - right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) ยทl - pr2 - (hom-diagram-zigzag-sequential-diagram - (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - n))) - [0] = - coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n) - [0]' : - ( - (concat-s-inf ๐’ฎ aโ‚€ s ยทl - coherence-cocone-standard-sequential-colimit n - โˆ™h - CB s (succ-โ„• n) ยทr - inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โˆ™h - (map-cocone-standard-sequential-colimit {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) } (succ-โ„• (succ-โ„• n)) ยทl - ( - pr1 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) - (succ-โ„• n) - ยทl - (pr1 - (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s))) - n) - ) - )) - ~ - (CB s n โˆ™h - ( - coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr - concat-s ๐’ฎ aโ‚€ s n - โˆ™h - (map-cocone-standard-sequential-colimit {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) } (succ-โ„• (succ-โ„• n)) ยทl - (ฮป xโ‚ƒ โ†’ - glue-pushout - _ - _ - (s , - refl , - pr1 (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) n xโ‚ƒ)))) - ) - - [0]' = - ( ap-concat-htpy _ - ( ?)) โˆ™h - ( map-inv-equiv - ( equiv-right-transpose-htpy-concat _ _ _) - ( ( [0]) โˆ™h - ( ap-concat-htpy - ( CB s n) - ( ( ap-concat-htpy - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr concat-s ๐’ฎ aโ‚€ s n) - ( ( distributive-left-whisker-comp-concat - ( map-cocone-standard-sequential-colimit - {A = right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) - ( _) - ( _)) โˆ™h - ( ap-concat-htpy _ - ( ( left-whisker-compยฒ _ (left-whisker-inv-htpy _ _)) โˆ™h - ( left-whisker-inv-htpy _ _))))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))) [i] : ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl - ( coherence-cocone-standard-sequential-colimit n โˆ™h - map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ + ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h + ( ( map-cocone-standard-sequential-colimit + { A = + left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( left-map-span-diagram ๐’ฎ s)} + ( succ-โ„• n)) ยทl + ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ ( ( CB s n) โˆ™h ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr - ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h - ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl - ( ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h - ( inv-htpy (CB s (succ-โ„• n)) ยทr (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) + ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h + ( ( map-cocone-standard-sequential-colimit + { A = + right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) ยทl + ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h + ( ( inv-htpy (CB s (succ-โ„• n))) ยทr + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) [i] = - distributive-left-whisker-comp-concat _ _ _ โˆ™h - {!!} - -- square with condensed top and bottom - [ii] : - coherence-square-maps - ( tr - ( ev-pair - ( left-family-descent-data-pushout R) - ( left-map-span-diagram ๐’ฎ s)) - ( ( coherence-cocone-standard-sequential-colimit n p) โˆ™ - ( ap - ( map-cocone-standard-sequential-colimit (succ-โ„• n)) - ( glue-pushout _ _ (s , refl , p))))) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - ( map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit (succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( ( CB s n p) โˆ™ - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) โˆ™ - ( ap - ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) - ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™ - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))))) - [ii] = - nat-lemma - ( concat-s-inf ๐’ฎ aโ‚€ s) - ( ev-pair (map-family-descent-data-pushout R) s) - ( [i] p) + ( distributive-left-whisker-comp-concat _ _ _) โˆ™h + ( right-transpose-htpy-concat _ _ _ + ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ + ( ฮป p โ†’ + inv + ( nat-coherence-square-maps _ _ _ _ + ( CB s (succ-โ„• n)) + ( glue-pushout _ _ (s , refl , p))))) โˆ™h + ( map-inv-equiv + ( equiv-right-transpose-htpy-concat _ _ _) + ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n)) โˆ™h + ( ap-concat-htpy + ( CB s n) + ( ( ap-concat-htpy _ + ( ( distributive-left-whisker-comp-concat + ( map-cocone-standard-sequential-colimit + { A = + right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) + ( _) + ( _)) โˆ™h + ( ap-concat-htpy _ + ( ( left-whisker-compยฒ _ + ( left-whisker-inv-htpy _ _)) โˆ™h + ( left-whisker-inv-htpy _ _))))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h + ( ap-concat-htpy' _ + ( inv-htpy-assoc-htpy _ _ _)) -- TODO: Explore omitting vertical-map-dependent-cocone From 6c38ee8e4dd302a84624acd0a3ad635081eefe81 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Mon, 24 Jun 2024 18:01:43 +0200 Subject: [PATCH 08/33] Down to one coherence --- .../sequential-colimits.lagda.md | 18 + ...nstruction-identity-type-pushouts.lagda.md | 668 +++--------------- 2 files changed, 122 insertions(+), 564 deletions(-) diff --git a/src/synthetic-homotopy-theory/sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/sequential-colimits.lagda.md index e0767413bd..4b5b04f385 100644 --- a/src/synthetic-homotopy-theory/sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/sequential-colimits.lagda.md @@ -16,6 +16,7 @@ open import foundation.function-types open import foundation.functoriality-dependent-function-types open import foundation.functoriality-dependent-pair-types open import foundation.homotopies +open import foundation.identity-types open import foundation.propositions open import foundation.universe-levels @@ -205,6 +206,23 @@ module _ ( x : standard-sequential-colimit A) โ†’ P x dependent-cogap-standard-sequential-colimit = map-inv-equiv equiv-dup-standard-sequential-colimit + + compute-incl-dependent-cogap-standard-sequential-colimit : + { P : standard-sequential-colimit A โ†’ UU l2} โ†’ + ( d : + dependent-cocone-sequential-diagram + ( cocone-standard-sequential-colimit A) + ( P)) โ†’ + ( n : โ„•) (a : family-sequential-diagram A n) โ†’ + dependent-cogap-standard-sequential-colimit d + ( map-cocone-standard-sequential-colimit n a) ๏ผ + map-dependent-cocone-sequential-diagram P d n a + compute-incl-dependent-cogap-standard-sequential-colimit d = + pr1 + ( htpy-eq-dependent-cocone-sequential-diagram _ _ d + ( is-section-map-inv-is-equiv + ( dup-standard-sequential-colimit _) + ( d))) ``` ### The small predicate of being a sequential colimit cocone diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index c700b06760..b2c0f4d734 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -11,52 +11,39 @@ module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts wher ```agda open import elementary-number-theory.natural-numbers --- open import foundation.commuting-squares-of-maps --- open import foundation.contractible-types open import foundation.action-on-identifications-dependent-functions +open import foundation.action-on-identifications-functions open import foundation.cartesian-product-types open import foundation.commuting-squares-of-homotopies +open import foundation.commuting-squares-of-maps open import foundation.dependent-identifications open import foundation.dependent-pair-types +open import foundation.embeddings open import foundation.empty-types open import foundation.equivalences open import foundation.function-types open import foundation.functoriality-dependent-pair-types --- open import foundation.fundamental-theorem-of-identity-types open import foundation.homotopies open import foundation.homotopy-algebra --- open import foundation.identity-systems open import foundation.identity-types --- open import foundation.sections --- open import foundation.singleton-induction open import foundation.raising-universe-levels open import foundation.span-diagrams open import foundation.transport-along-identifications open import foundation.transposition-identifications-along-equivalences --- open import foundation.torsorial-type-families --- open import foundation.transposition-identifications-along-equivalences --- open import foundation.universal-property-dependent-pair-types --- open import foundation.universal-property-identity-types open import foundation.unit-type open import foundation.universe-levels open import foundation.whiskering-higher-homotopies-composition open import foundation.whiskering-homotopies-composition open import synthetic-homotopy-theory.cocones-under-spans --- open import synthetic-homotopy-theory.dependent-universal-property-pushouts --- open import synthetic-homotopy-theory.descent-data-equivalence-types-over-pushouts --- open import synthetic-homotopy-theory.descent-data-identity-types-over-pushouts open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams open import synthetic-homotopy-theory.dependent-cocones-under-spans open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits open import synthetic-homotopy-theory.descent-data-pushouts open import synthetic-homotopy-theory.functoriality-sequential-colimits open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts --- open import synthetic-homotopy-theory.descent-property-pushouts --- open import synthetic-homotopy-theory.equivalences-descent-data-pushouts open import synthetic-homotopy-theory.families-descent-data-pushouts open import synthetic-homotopy-theory.flattening-lemma-pushouts --- open import synthetic-homotopy-theory.morphisms-descent-data-pushouts open import synthetic-homotopy-theory.pushouts open import synthetic-homotopy-theory.sequential-colimits open import synthetic-homotopy-theory.sequential-diagrams @@ -70,102 +57,11 @@ open import synthetic-homotopy-theory.zigzags-sequential-diagrams ## Idea -TODO +The identity types of pushouts may be characterized as certain sequential +colimits of pushouts. ## Definitions -### TODO - -```agda -open import foundation.action-on-identifications-functions -open import foundation.commuting-squares-of-maps -open import synthetic-homotopy-theory.cocones-under-sequential-diagrams --- open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits -open import synthetic-homotopy-theory.universal-property-sequential-colimits -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {B : sequential-diagram l2} - {X : UU l3} {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {Y : UU l4} {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (z : zigzag-sequential-diagram A B) - (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) - (e : (x : X) โ†’ P x โ‰ƒ Q (map-colimit-zigzag-sequential-diagram up-c up-c' z x)) - where - - private - CB : - (n : โ„•) โ†’ - coherence-square-maps - ( map-zigzag-sequential-diagram z n) - ( map-cocone-sequential-diagram c n) - ( map-cocone-sequential-diagram c' n) - ( map-colimit-zigzag-sequential-diagram up-c up-c' z) - CB = - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-c) - ( c') - ( hom-diagram-zigzag-sequential-diagram z) - dup-c : dependent-universal-property-sequential-colimit c - dup-c = dependent-universal-property-universal-property-sequential-colimit _ up-c - dup-c' : dependent-universal-property-sequential-colimit c' - dup-c' = dependent-universal-property-universal-property-sequential-colimit _ up-c' - - tS-equiv-tS : - (tA : (n : โ„•) (a : family-sequential-diagram A n) โ†’ P (map-cocone-sequential-diagram c n a)) - (HA : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - tr P (coherence-cocone-sequential-diagram c n a) (tA n a) ๏ผ - tA (succ-โ„• n) (map-sequential-diagram A n a)) - (tB : (n : โ„•) (b : family-sequential-diagram B n) โ†’ Q (map-cocone-sequential-diagram c' n b)) - (HB : - (n : โ„•) (b : family-sequential-diagram B n) โ†’ - tr Q (coherence-cocone-sequential-diagram c' n b) (tB n b) ๏ผ - tB (succ-โ„• n) (map-sequential-diagram B n b)) - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - ( ( map-equiv - ( e (map-cocone-sequential-diagram c n a)) - ( map-dependent-universal-property-sequential-colimit dup-c - ( tA , HA) - ( map-cocone-sequential-diagram c n a))) ๏ผ - map-dependent-universal-property-sequential-colimit dup-c' - ( tB , HB) - ( map-colimit-zigzag-sequential-diagram up-c up-c' z - ( map-cocone-sequential-diagram c n a))) โ‰ƒ - ( ( tr Q - ( CB n a) - ( map-equiv (e (map-cocone-sequential-diagram c n a)) (tA n a))) ๏ผ - ( tB n (map-zigzag-sequential-diagram z n a))) - tS-equiv-tS tA HA tB HB n a = - ( equiv-concat' _ - ( pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dup-c') - ( tB , HB)) - ( n) - ( map-zigzag-sequential-diagram z n a))) โˆ˜e - ( equiv-concat' _ - ( apd - ( map-dependent-universal-property-sequential-colimit dup-c' (tB , HB)) - ( CB n a))) โˆ˜e - ( equiv-ap - ( equiv-tr Q (CB n a)) - ( _) - ( _)) โˆ˜e - equiv-concat - ( ap - ( map-equiv (e (map-cocone-sequential-diagram c n a))) - ( inv - ( pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dup-c) - ( tA , HA)) - ( n) - ( a)))) - ( _) -``` - ```agda module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) @@ -403,6 +299,12 @@ nat-lemma : ( tr Q q) nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +apd-lemma : + {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} + (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ + apd (ฮป a โ†’ g a (f a)) p ๏ผ inv (preserves-tr g p (f x)) โˆ™ ap (g y) (apd f p) +apd-lemma f g refl = refl + module _ {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} @@ -419,35 +321,6 @@ module _ (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) where - -- type-stage-ind-singleton-zigzag-id-pushout : โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) - -- type-stage-ind-singleton-zigzag-id-pushout n = - -- ฮฃ ( (b : codomain-span-diagram ๐’ฎ) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - -- right-family-descent-data-pushout R - -- ( b , map-cocone-standard-sequential-colimit n p)) - -- ( ฮป tB โ†’ - -- ฮฃ ( (a : domain-span-diagram ๐’ฎ) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - -- left-family-descent-data-pushout R - -- ( a , map-cocone-standard-sequential-colimit n p)) - -- ( ฮป tA โ†’ - -- rec-โ„• - -- ( raise-unit (l1 โŠ” l2 โŠ” l3 โŠ” l5)) - -- ( ฮป n' _ โ†’ - -- ( (b : codomain-span-diagram ๐’ฎ) โ†’ - -- dependent-cocone-span-diagram - -- ( cocone-pushout-span-diagram - -- ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n')) - -- ( ฮป p โ†’ - -- right-family-descent-data-pushout R - -- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n') p))) ร— - -- ( (a : domain-span-diagram ๐’ฎ) โ†’ - -- dependent-cocone-span-diagram - -- ( cocone-pushout-span-diagram - -- ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n')) - -- ( ฮป p โ†’ - -- left-family-descent-data-pushout R - -- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n') p)))) - -- ( n))) - private CB : (s : spanning-type-span-diagram ๐’ฎ) โ†’ @@ -466,7 +339,7 @@ module _ ( hom-diagram-zigzag-sequential-diagram ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - foo : + ฮฆ : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ @@ -475,7 +348,7 @@ module _ right-family-descent-data-pushout R ( right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - foo s n p = + ฮฆ s n p = ( tr ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ @@ -615,7 +488,6 @@ module _ ( inv-htpy-assoc-htpy _ _ _)) - -- TODO: Explore omitting vertical-map-dependent-cocone stages-cocones' : (n : โ„•) โ†’ ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ @@ -641,7 +513,7 @@ module _ ( s , refl , p) ๏ผ inv-map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( foo s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)))) + ( ฮฆ s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)))) stages-cocones' zero-โ„• = dep-cocone-b , dep-cocone-a , @@ -680,7 +552,7 @@ module _ pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = inv-map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit 1 (concat-inv-s ๐’ฎ aโ‚€ s 1 p)) - ( foo s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + ( ฮฆ s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = map-eq-transpose-equiv ( equiv-family-descent-data-pushout R @@ -689,7 +561,7 @@ module _ ( concat-inv-s ๐’ฎ aโ‚€ s 1 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))))) ( inv ( ( ap - ( foo s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) + ( ฮฆ s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) ( compute-inr-dependent-cogap _ _ ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) (s , refl , map-raise refl))) โˆ™ @@ -748,7 +620,7 @@ module _ ( is-section-map-inv-equiv ( equiv-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( foo s n p (dependent-cogap _ _ + ( ฮฆ s n p (dependent-cogap _ _ ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ ( is-section-map-inv-equiv ( equiv-tr @@ -770,7 +642,7 @@ module _ pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = inv-map-family-descent-data-pushout R ( s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• (succ-โ„• n)) p)) - ( foo s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + ( ฮฆ s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = map-eq-transpose-equiv ( equiv-family-descent-data-pushout R @@ -782,7 +654,7 @@ module _ ( concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) ( inv ( ( ap - ( foo s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( ฮฆ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) ( compute-inr-dependent-cogap _ _ ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) ( s , refl , p))) โˆ™ @@ -792,425 +664,33 @@ module _ ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)))) --- interleaved mutual --- -- left section part tโฟ_A a --- tA : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit n p) --- -- definition of tโฟโบยน_A a (pattern matching on Pโฟโบยน_A a) --- cocone-tA : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout _ _) --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- -- right section part tโฟ_B b --- tB : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit n p) --- -- definition of tโฟโบยน_B b (pattern matching on Pโฟโบยน_B b) --- cocone-tB : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout _ _) --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- -- section coherence part tโฟ_S --- tS : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s n p) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ --- tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) --- -- left section t_A a --- tAA : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ --- left-family-descent-data-pushout R (a , p) --- -- definition of t_A a (pattern matching on Pแต’แต’_A a) --- cocone-tAA : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ a)) --- ( ฮป p โ†’ left-family-descent-data-pushout R (a , p)) --- -- right section t_B b --- tBB : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ --- right-family-descent-data-pushout R (b , p) --- -- definition of t_B b (pattern matching on Pแต’แต’_B b) --- cocone-tBB : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ b)) --- ( ฮป p โ†’ right-family-descent-data-pushout R (b , p)) --- -- section coherence t_S s --- tSS : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ --- map-family-descent-data-pushout R --- ( s , p) --- ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ --- tBB --- ( right-map-span-diagram ๐’ฎ s) --- ( concat-s-inf ๐’ฎ aโ‚€ s p) --- -- definition of t_S s (pattern matching on Pแต’แต’_A a) --- cocone-tSS : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ --- ( left-map-span-diagram ๐’ฎ s))) --- ( ฮป p โ†’ --- map-family-descent-data-pushout R --- ( s , p) --- ( tAA (left-map-span-diagram ๐’ฎ s) p) ๏ผ --- tBB (right-map-span-diagram ๐’ฎ s) (concat-s-inf ๐’ฎ aโ‚€ s p)) - --- tA a zero-โ„• (map-raise refl) = rโ‚€ --- -- tA (n+1) needs coconeA n, which needs tA n and tB (n+1), --- -- which needs coconeB n, which only needs tB n and tA n, --- -- so it terminates --- tA a (succ-โ„• n) = dependent-cogap _ _ (cocone-tA a n) --- tB b zero-โ„• (map-raise ()) --- tB b (succ-โ„• n) = dependent-cogap _ _ (cocone-tB b n) --- tAA a = dependent-cogap-standard-sequential-colimit (cocone-tAA a) --- tBB b = dependent-cogap-standard-sequential-colimit (cocone-tBB b) - --- pr1 (cocone-tB b n) p = --- tr --- ( ev-pair (right-family-descent-data-pushout R) b) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tB b n p) --- pr1 (pr2 (cocone-tB b n)) (s , refl , p) = --- tr --- ( ev-pair (right-family-descent-data-pushout R) b) --- ( CB s n p) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)) --- pr2 (pr2 (cocone-tB ._ zero-โ„•)) (s , refl , map-raise ()) --- pr2 (pr2 (cocone-tB ._ (succ-โ„• n))) (s , refl , p) = --- inv --- ( ( ap --- ( ฮป q โ†’ --- tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( q))) --- ( compute-inr-dependent-cogap _ _ --- ( cocone-tA (left-map-span-diagram ๐’ฎ s) n) --- ( s , refl , p))) โˆ™ --- ( ap --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) --- -- Would typecheck if Agda were to expand vertical-map-dependent-cocone (cocone-tA) --- ( {![i]!})) โˆ™ --- ( is-section-map-inv-equiv --- ( equiv-tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) --- ( _))) --- where --- [i] : --- map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( inv-map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p))) ๏ผ --- foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p) --- [i] = --- is-section-map-inv-equiv --- ( equiv-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) --- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) - --- pr1 (cocone-tA a n) p = --- tr --- ( ev-pair (left-family-descent-data-pushout R) a) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tA a n p) --- pr1 (pr2 (cocone-tA a n)) (s , refl , p) = --- inv-map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( foo s n p (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) p)) --- pr2 (pr2 (cocone-tA a n)) (s , refl , p) = --- [key] --- where --- [i] : --- ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl --- ( coherence-cocone-standard-sequential-colimit n โˆ™h --- map-cocone-standard-sequential-colimit (succ-โ„• n) ยทl (ฮป p โ†’ glue-pushout _ _ (s , refl , p)))) ~ --- ( ( CB s n) โˆ™h --- ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) ยทr --- ( concat-s ๐’ฎ aโ‚€ s n))) โˆ™h --- ( ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) ยทl --- (ฮป p โ†’ glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h --- ( inv-htpy (CB s (succ-โ„• n)) ยทr (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) --- [i] = --- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- ( up-standard-sequential-colimit) --- ( shift-once-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) --- ( hom-diagram-zigzag-sequential-diagram --- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) --- ( n)!} --- [ii] : --- coherence-square-maps --- ( tr --- ( ev-pair --- ( left-family-descent-data-pushout R) --- ( left-map-span-diagram ๐’ฎ s)) --- ( ( coherence-cocone-standard-sequential-colimit n p) โˆ™ --- ( ap --- ( map-cocone-standard-sequential-colimit (succ-โ„• n)) --- ( glue-pushout _ _ (s , refl , p))))) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p)) --- ( map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( ( CB s n p) โˆ™ --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) โˆ™ --- ( ap --- ( map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n))) --- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™ --- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))))) --- [ii] = --- nat-lemma --- ( concat-s-inf ๐’ฎ aโ‚€ s) --- ( ev-pair (map-family-descent-data-pushout R) s) --- ( [i] p) --- [iii] : --- coherence-square-maps --- ( ( tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p))) โˆ˜ --- ( tr --- ( ev-pair --- ( left-family-descent-data-pushout R) --- ( left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p))) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p)) --- ( map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) --- ( ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ --- ( tr --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s n p))) --- [iii] = {! annoying straightforward path algebra from [ii] !} --- [key]'' : --- tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p)) --- ( tr --- ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ --- inv-map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) --- ( ( ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ --- ( tr --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- ( glue-pushout _ _ (s , refl , (concat-s ๐’ฎ aโ‚€ s n p)))) โˆ˜ --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)))) --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s n p) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)))) --- [key]'' = --- map-eq-transpose-equiv --- ( equiv-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s --- ( succ-โ„• n) --- ( concat-s ๐’ฎ aโ‚€ s n p)))) --- ( inv --- ( [iii] (tA (left-map-span-diagram ๐’ฎ s) n p))) --- [key]' : --- tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p)) --- ( tr --- ( ev-pair (left-family-descent-data-pushout R) (left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ --- inv-map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) --- ( foo s n (concat-s ๐’ฎ aโ‚€ s n p) (tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) --- [key]' = {!folded foo and tB from [key]''!} --- [key] : --- tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p)) --- ( pr1 (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) ๏ผ --- (pr1 (pr2 (cocone-tA (left-map-span-diagram ๐’ฎ s) n)) (s , refl , concat-s ๐’ฎ aโ‚€ s n p)) --- [key] = {!folded cocone-tA from [key]'!} - --- tS s n p = --- inv --- ( compute-inr-dependent-cogap _ _ --- ( cocone-tB (right-map-span-diagram ๐’ฎ s) n) --- ( s , refl , p)) - --- alt-tS : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( tAA --- ( left-map-span-diagram ๐’ฎ s) --- ( map-cocone-standard-sequential-colimit n p)) ๏ผ --- tBB --- ( right-map-span-diagram ๐’ฎ s) --- ( concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) --- alt-tS s n p = --- {!tS s n p!} --- where --- [ii] = --- pr1 --- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit --- ( dup-standard-sequential-colimit) --- ( cocone-tAA (left-map-span-diagram ๐’ฎ s))) --- ( n) --- ( p) --- [i] = --- apd --- ( map-family-descent-data-pushout R (s , map-cocone-standard-sequential-colimit n p)) --- ( [ii]) - --- tSS s = dependent-cogap-standard-sequential-colimit (cocone-tSS s) - --- pr1 (cocone-tAA a) = tA a --- pr2 (cocone-tAA a) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tA a n) p) - --- pr1 (cocone-tBB b) = tB b --- pr2 (cocone-tBB b) n p = inv (compute-inl-dependent-cogap _ _ (cocone-tB b n) p) - --- pr1 (cocone-tSS s) = alt-tS s --- pr2 (cocone-tSS s) = {!!} - --- alt-tS-tS-equiv : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- {!!} --- -- (n : โ„•) โ†’ --- -- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- -- {!!} โ‰ƒ {!!} --- alt-tS-tS-equiv s = --- tS-equiv-tS --- ( up-standard-sequential-colimit) --- ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) --- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) --- ( ฮป p โ†’ left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , p)) --- ( ฮป p โ†’ right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , p)) --- ( ฮป p โ†’ equiv-family-descent-data-pushout R (s , p)) --- ( tA (left-map-span-diagram ๐’ฎ s)) --- -- ( ฮป where --- -- zero-โ„• (map-raise refl) โ†’ inv (compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) 0) _ โˆ™ {!!}) --- -- (succ-โ„• n) a โ†’ {!!} ) --- ( ฮป n p โ†’ --- inv --- ( ( compute-inl-dependent-cogap _ _ (cocone-tA (left-map-span-diagram ๐’ฎ s) n) p) โˆ™ --- {!refl!})) --- ( ฮป n โ†’ tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) --- ( {!!}) + tB : + (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit n p) + tB b zero-โ„• (map-raise ()) + tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) + tA : + (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit n p) + tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ + tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R pr1 ind-singleton-zigzag-id-pushout' (a , p) = dependent-cogap-standard-sequential-colimit - ( tA , KA) + ( tA a , KA) ( p) where - tA : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit n p) - tA zero-โ„• (map-raise refl) = rโ‚€ - tA (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) KA : (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ dependent-identification ( ev-pair (left-family-descent-data-pushout R) a) ( coherence-cocone-standard-sequential-colimit n p) - ( tA n p) - ( tA (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) + ( tA a n p) + ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) KA zero-โ„• (map-raise refl) = inv ( compute-inl-dependent-cogap _ _ @@ -1223,22 +703,16 @@ module _ ( p)) pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = dependent-cogap-standard-sequential-colimit - ( tB , KB) + ( tB b , KB) ( p) where - tB : - (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit n p) - tB zero-โ„• (map-raise ()) - tB (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) KB : (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ dependent-identification ( ev-pair (right-family-descent-data-pushout R) b) ( coherence-cocone-standard-sequential-colimit n p) - ( tB n p) - ( tB (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) + ( tB b n p) + ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) KB zero-โ„• (map-raise ()) KB (succ-โ„• n) p = inv @@ -1246,7 +720,73 @@ module _ ( pr1 (stages-cocones' (succ-โ„• n)) b) ( p)) pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = - {!!} + dependent-cogap-standard-sequential-colimit + ( tS , KS) + ( p) + where + [i] : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ + tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) + [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) + [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) + tS : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( pr1 + ( ind-singleton-zigzag-id-pushout') + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit n p)) ๏ผ + pr1 + ( pr2 ind-singleton-zigzag-id-pushout') + ( right-map-span-diagram ๐’ฎ s , + concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) + tS n p = + ( ap + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ + ( map-equiv + ( inv-equiv-ap-emb + ( emb-equiv + ( equiv-tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p)))) + ( [i] n p โˆ™ + inv + ( ( apd + ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) + ( CB s n p)) โˆ™ + ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) + KS : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + tr + ( ฮป p โ†’ + map-family-descent-data-pushout R + ( s , p) + ( pr1 + ( ind-singleton-zigzag-id-pushout') + ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ + pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) + ( coherence-cocone-standard-sequential-colimit n p) + ( tS n p) ๏ผ + tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) + KS n p = + map-compute-dependent-identification-eq-value _ _ + ( coherence-cocone-standard-sequential-colimit n p) + ( _) + ( _) + ( {!!}) is-identity-system-zigzag-id-pushout : is-identity-system-descent-data-pushout From 2b323e4e40e1dbbcb23210093e78069f0bea547a Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 24 Jul 2024 17:09:57 +0200 Subject: [PATCH 09/33] Abstractions --- .../morphisms-descent-data-pushouts.lagda.md | 10 +- ...nstruction-identity-type-pushouts.lagda.md | 285 +++++++++++++----- 2 files changed, 218 insertions(+), 77 deletions(-) diff --git a/src/synthetic-homotopy-theory/morphisms-descent-data-pushouts.lagda.md b/src/synthetic-homotopy-theory/morphisms-descent-data-pushouts.lagda.md index 27f747d90f..98d068c27f 100644 --- a/src/synthetic-homotopy-theory/morphisms-descent-data-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/morphisms-descent-data-pushouts.lagda.md @@ -74,7 +74,7 @@ homotopies HB(gs) ยทr PS s hB(gs) โˆ˜ PS s ---------------> kB(gs) โˆ˜ PS s | | - hS s | | tS s + hS s | | kS s | | โˆจ โˆจ QS s โˆ˜ hA(fs) ---------------> QS s โˆ˜ kA(fs) @@ -83,10 +83,10 @@ homotopies [commutes](foundation-core.commuting-squares-of-homotopies.md). This coherence datum may be seen as a filler of the diagram one gets by gluing the squares `hS` -and `tS` along the common vertical maps +and `kS` along the common vertical maps ```text - tA(fs) + kA(fs) ________ / โˆจ PA(fs) QA(fs) @@ -94,7 +94,7 @@ and `tS` along the common vertical maps | hA(fs) | | | PS s | | QS s - | tB(gs) | + | kB(gs) | | ________ | โˆจ / โˆจ โˆจ PB(gs) QB(gs). @@ -102,7 +102,7 @@ and `tS` along the common vertical maps hB(gs) ``` -The front and back faces are `hS s` and `tS s`, and the top and bottom faces are +The front and back faces are `hS s` and `kS s`, and the top and bottom faces are `HA(fs)` and `HB(gs)`, respectively. `HS` then expresses that going along the front face and then the top face is homotopic to first going along the bottom face and then the back face. diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index b2c0f4d734..c604b996dd 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -339,6 +339,21 @@ module _ ( hom-diagram-zigzag-sequential-diagram ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ฮจ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) + ฮจ s n p = + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s n p)) โˆ˜ + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ฮฆ : (s : spanning-type-span-diagram ๐’ฎ) โ†’ (n : โ„•) โ†’ @@ -361,6 +376,19 @@ module _ ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ฮฆ' : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ฮฆ' s n p = + ( inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ + ( ฮฆ s n p) + coh-dep-cocone-a : (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ @@ -487,6 +515,99 @@ module _ ( ap-concat-htpy' _ ( inv-htpy-assoc-htpy _ _ _)) + ฮฑ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + coherence-square-maps + ( ฮจ s n p) + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p)) + ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) + ( tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฑ s n p q = + map-eq-transpose-equiv + ( equiv-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s + ( succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p)))) + ( inv (coh-dep-cocone-a s n p q)) + + ฮฒ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + coherence-square-maps + ( ฮฆ' s n p) + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฒ s n p q = + inv + ( ( ap + ( tr _ _) + ( is-section-map-inv-equiv + ( equiv-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ( _)) โˆ™ + ( is-section-map-inv-equiv + ( equiv-tr _ _) + ( _)))) + -- inv + -- ( ( ap + -- ( ฮป q โ†’ + -- tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + -- ( map-family-descent-data-pushout R + -- ( s , + -- ( map-cocone-standard-sequential-colimit + -- ( succ-โ„• n) + -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( q))) + -- ( ( compute-inr-dependent-cogap _ _ + -- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) โˆ™ + -- ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ + -- ( ap + -- ( tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( is-section-map-inv-equiv + -- ( equiv-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( ฮฆ s n p (dependent-cogap _ _ + -- ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ + -- ( is-section-map-inv-equiv + -- ( equiv-tr + -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( _))) + stages-cocones' : (n : โ„•) โ†’ @@ -511,9 +632,7 @@ module _ vertical-map-dependent-cocone _ _ _ _ ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) ( s , refl , p) ๏ผ - inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( ฮฆ s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)))) + ฮฆ' s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p))) stages-cocones' zero-โ„• = dep-cocone-b , dep-cocone-a , @@ -550,22 +669,27 @@ module _ ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) ( rโ‚€) pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = - inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit 1 (concat-inv-s ๐’ฎ aโ‚€ s 1 p)) - ( ฮฆ s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + ฮฆ' s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = - map-eq-transpose-equiv - ( equiv-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit 1 - ( concat-inv-s ๐’ฎ aโ‚€ s 1 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))))) + ( ฮฑ s 0 (map-raise refl) rโ‚€) โˆ™ + ( ap + ( ฮฆ' s 0 _) ( inv - ( ( ap - ( ฮฆ s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) - ( compute-inr-dependent-cogap _ _ - ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - (s , refl , map-raise refl))) โˆ™ - ( coh-dep-cocone-a s 0 (map-raise refl) rโ‚€))) + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + ( s , refl , map-raise refl)))) + -- map-eq-transpose-equiv + -- ( equiv-family-descent-data-pushout R + -- ( s , + -- map-cocone-standard-sequential-colimit 1 + -- ( concat-inv-s ๐’ฎ aโ‚€ s 1 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))))) + -- ( inv + -- ( ( ap + -- ( ฮฆ s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) + -- ( compute-inr-dependent-cogap _ _ + -- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + -- (s , refl , map-raise refl))) โˆ™ + -- ( coh-dep-cocone-a s 0 (map-raise refl) rโ‚€))) stages-cocones' (succ-โ„• n) = dep-cocone-b , dep-cocone-a , @@ -593,40 +717,48 @@ module _ ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = - inv - ( ( ap - ( ฮป q โ†’ - tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( map-family-descent-data-pushout R - ( s , - ( map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( q))) - ( ( compute-inr-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) - ( s , refl , p)) โˆ™ - ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ - ( ap - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( is-section-map-inv-equiv - ( equiv-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( ฮฆ s n p (dependent-cogap _ _ - ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ - ( is-section-map-inv-equiv - ( equiv-tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( _))) + ( ฮฒ s n p _) โˆ™ + ( ap + ( ฮจ s (succ-โ„• n) _) + ( inv + ( ( compute-inr-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p)) โˆ™ + ( pr2 (pr2 (stages-cocones' n)) s p)))) + -- inv + -- ( ( ap + -- ( ฮป q โ†’ + -- tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + -- ( map-family-descent-data-pushout R + -- ( s , + -- ( map-cocone-standard-sequential-colimit + -- ( succ-โ„• n) + -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( q))) + -- ( ( compute-inr-dependent-cogap _ _ + -- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) โˆ™ + -- ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ + -- ( ap + -- ( tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( is-section-map-inv-equiv + -- ( equiv-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( ฮฆ s n p (dependent-cogap _ _ + -- ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ + -- ( is-section-map-inv-equiv + -- ( equiv-tr + -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ( _))) dep-cocone-a : (a : domain-span-diagram ๐’ฎ) โ†’ dependent-cocone-span-diagram @@ -640,29 +772,38 @@ module _ ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = - inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• (succ-โ„• n)) p)) - ( ฮฆ s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + -- inv-map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• (succ-โ„• n)) p)) + -- ( ฮฆ s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) + ฮฆ' s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = - map-eq-transpose-equiv - ( equiv-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• (succ-โ„• n)) - ( concat-inv-s ๐’ฎ aโ‚€ s - ( succ-โ„• (succ-โ„• n)) - ( concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) + ( ฮฑ s (succ-โ„• n) p _) โˆ™ + ( ap + ( ฮฆ' s (succ-โ„• n) _) ( inv - ( ( ap - ( ฮฆ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( compute-inr-dependent-cogap _ _ - ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - ( s , refl , p))) โˆ™ - ( coh-dep-cocone-a s - ( succ-โ„• n) - ( p) - ( dependent-cogap _ _ - (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)))) + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + ( s , refl , p)))) + -- map-eq-transpose-equiv + -- ( equiv-family-descent-data-pushout R + -- ( s , + -- map-cocone-standard-sequential-colimit + -- ( succ-โ„• (succ-โ„• n)) + -- ( concat-inv-s ๐’ฎ aโ‚€ s + -- ( succ-โ„• (succ-โ„• n)) + -- ( concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) + -- ( inv + -- ( ( ap + -- ( ฮฆ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + -- ( compute-inr-dependent-cogap _ _ + -- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p))) โˆ™ + -- ( coh-dep-cocone-a s + -- ( succ-โ„• n) + -- ( p) + -- ( dependent-cogap _ _ + -- (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)))) + tB : (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ From 45dc68099e6b88f0177732b0bb2304e81272a66d Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 25 Jul 2024 16:34:32 +0200 Subject: [PATCH 10/33] Minute progress --- .../commuting-squares-of-maps.lagda.md | 57 +++++++++++++- ...sms-dependent-sequential-diagrams.lagda.md | 76 +++++++++++++++++++ ...nstruction-identity-type-pushouts.lagda.md | 35 --------- 3 files changed, 132 insertions(+), 36 deletions(-) diff --git a/src/foundation/commuting-squares-of-maps.lagda.md b/src/foundation/commuting-squares-of-maps.lagda.md index 347bb16120..57662665f2 100644 --- a/src/foundation/commuting-squares-of-maps.lagda.md +++ b/src/foundation/commuting-squares-of-maps.lagda.md @@ -13,7 +13,11 @@ open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-functions open import foundation.commuting-triangles-of-homotopies open import foundation.commuting-triangles-of-maps +open import foundation.dependent-pair-types +open import foundation.embeddings open import foundation.function-extensionality +open import foundation.functoriality-dependent-function-types +open import foundation.homotopies open import foundation.homotopy-algebra open import foundation.postcomposition-functions open import foundation.precomposition-functions @@ -27,7 +31,6 @@ open import foundation-core.commuting-squares-of-homotopies open import foundation-core.commuting-squares-of-identifications open import foundation-core.equivalences open import foundation-core.function-types -open import foundation-core.homotopies open import foundation-core.identity-types open import foundation-core.whiskering-identifications-concatenation ``` @@ -597,6 +600,58 @@ module _ ( sq-right-top ยทr top-left)))) ``` +### Vertical pasting of a square with the right leg an equivalence is an equivalence + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {X : UU l4} {Y : UU l5} {Z : UU l6} + (top : A โ†’ X) (top-left : A โ†’ B) (top-right : X โ†’ Y) (mid : B โ†’ Y) + (bottom-left : B โ†’ C) (bottom-right : Y โ†’ Z) (bottom : C โ†’ Z) + (K : coherence-square-maps mid bottom-left bottom-right bottom) + (is-emb-bottom-right : is-emb bottom-right) + where + + is-equiv-pasting-vertical-coherence-square-maps : + is-equiv + ( ฮป H โ†’ + pasting-vertical-coherence-square-maps + ( top) + ( top-left) + ( top-right) + ( mid) + ( bottom-left) + ( bottom-right) + ( bottom) + ( H) + ( K)) + is-equiv-pasting-vertical-coherence-square-maps = + is-equiv-comp _ _ + ( is-equiv-map-ฮ -is-fiberwise-equiv (ฮป _ โ†’ is-emb-bottom-right _ _)) + ( is-equiv-concat-htpy (K ยทr top-left) _) + + equiv-pasting-vertical-coherence-square-maps : + coherence-square-maps top top-left top-right mid โ‰ƒ + coherence-square-maps + ( top) + ( bottom-left โˆ˜ top-left) + ( bottom-right โˆ˜ top-right) + ( bottom) + pr1 equiv-pasting-vertical-coherence-square-maps H = + pasting-vertical-coherence-square-maps + ( top) + ( top-left) + ( top-right) + ( mid) + ( bottom-left) + ( bottom-right) + ( bottom) + ( H) + ( K) + pr2 equiv-pasting-vertical-coherence-square-maps = + is-equiv-pasting-vertical-coherence-square-maps +``` + ### Distributivity of pasting squares and transposing by precomposition Given two commuting squares which can be composed horizontally (vertically), we diff --git a/src/synthetic-homotopy-theory/morphisms-dependent-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/morphisms-dependent-sequential-diagrams.lagda.md index 129a0c0eca..5ce1fa4428 100644 --- a/src/synthetic-homotopy-theory/morphisms-dependent-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/morphisms-dependent-sequential-diagrams.lagda.md @@ -10,10 +10,13 @@ module synthetic-homotopy-theory.morphisms-dependent-sequential-diagrams where open import elementary-number-theory.natural-numbers open import foundation.commuting-squares-of-maps +open import foundation.dependent-identifications open import foundation.dependent-pair-types +open import foundation.transport-along-identifications open import foundation.universe-levels open import synthetic-homotopy-theory.dependent-sequential-diagrams +open import synthetic-homotopy-theory.morphisms-sequential-diagrams open import synthetic-homotopy-theory.sequential-diagrams ``` @@ -111,3 +114,76 @@ module _ ( map-hom-dependent-sequential-diagram) coh-hom-dependent-sequential-diagram = pr2 h ``` + +### Morphisms of dependent sequential diagrams over morphisms of sequential diagrams + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} + (P : dependent-sequential-diagram A l3) + (Q : dependent-sequential-diagram B l4) + (h : hom-sequential-diagram A B) + where + + hom-dependent-sequential-diagram-over : UU (l1 โŠ” l3 โŠ” l4) + hom-dependent-sequential-diagram-over = + ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-dependent-sequential-diagram P n a โ†’ + family-dependent-sequential-diagram Q n + ( map-hom-sequential-diagram B h n a)) + ( ฮป f โ†’ + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + (p : family-dependent-sequential-diagram P n a) โ†’ + dependent-identification + ( family-dependent-sequential-diagram Q (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B h n a) + ( map-dependent-sequential-diagram Q n + ( map-hom-sequential-diagram B h n a) + ( f n a p)) + ( f (succ-โ„• n) (map-sequential-diagram A n a) (map-dependent-sequential-diagram P n a p))) +``` + +## Properties + +### TODO + +```agda +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} + (h : hom-sequential-diagram A B) + where + + pullback-hom-dependent-sequential-diagram : + dependent-sequential-diagram B l3 โ†’ + dependent-sequential-diagram A l3 + pr1 (pullback-hom-dependent-sequential-diagram Q) n a = + family-dependent-sequential-diagram Q n + ( map-hom-sequential-diagram B h n a) + pr2 (pullback-hom-dependent-sequential-diagram Q) n a q = + tr + ( family-dependent-sequential-diagram Q (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B h n a) + ( map-dependent-sequential-diagram Q n + ( map-hom-sequential-diagram B h n a) + ( q)) +``` + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} + {P : dependent-sequential-diagram A l3} + {Q : dependent-sequential-diagram B l4} + (h : hom-sequential-diagram A B) + where + + open import foundation.homotopies + + hom-dep-seq-diag-over-hom-dep-seq-diag : + hom-dependent-sequential-diagram P + ( pullback-hom-dependent-sequential-diagram h Q) โ†’ + hom-dependent-sequential-diagram-over P Q h + pr1 (hom-dep-seq-diag-over-hom-dep-seq-diag h') = + map-hom-dependent-sequential-diagram (pullback-hom-dependent-sequential-diagram h Q) h' + pr2 (hom-dep-seq-diag-over-hom-dep-seq-diag h') n a = + inv-htpy (coh-hom-dependent-sequential-diagram (pullback-hom-dependent-sequential-diagram h Q) h' n a) +``` diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index c604b996dd..b41da123c1 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -573,41 +573,6 @@ module _ ( is-section-map-inv-equiv ( equiv-tr _ _) ( _)))) - -- inv - -- ( ( ap - -- ( ฮป q โ†’ - -- tr - -- ( ev-pair - -- ( right-family-descent-data-pushout R) - -- ( right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - -- ( map-family-descent-data-pushout R - -- ( s , - -- ( map-cocone-standard-sequential-colimit - -- ( succ-โ„• n) - -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( q))) - -- ( ( compute-inr-dependent-cogap _ _ - -- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p)) โˆ™ - -- ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ - -- ( ap - -- ( tr - -- ( ev-pair - -- ( right-family-descent-data-pushout R) - -- ( right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( is-section-map-inv-equiv - -- ( equiv-family-descent-data-pushout R - -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( ฮฆ s n p (dependent-cogap _ _ - -- ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ - -- ( is-section-map-inv-equiv - -- ( equiv-tr - -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( _))) - stages-cocones' : (n : โ„•) โ†’ From 8497e70472998e299aa953977ca4504888a6b76d Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 21 Aug 2024 18:15:33 +0200 Subject: [PATCH 11/33] WIP --- ...on-types-over-sequential-colimits.lagda.md | 91 ++++++++ .../descent-data-sequential-colimits.lagda.md | 33 +++ ...cent-property-sequential-colimits.lagda.md | 211 ++++++++++++++++++ ...ces-dependent-sequential-diagrams.lagda.md | 57 ++++- ...-descent-data-sequential-colimits.lagda.md | 2 +- 5 files changed, 392 insertions(+), 2 deletions(-) create mode 100644 src/synthetic-homotopy-theory/descent-data-function-types-over-sequential-colimits.lagda.md diff --git a/src/synthetic-homotopy-theory/descent-data-function-types-over-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/descent-data-function-types-over-sequential-colimits.lagda.md new file mode 100644 index 0000000000..1a615a1cae --- /dev/null +++ b/src/synthetic-homotopy-theory/descent-data-function-types-over-sequential-colimits.lagda.md @@ -0,0 +1,91 @@ +# Descent data for type families of function types over sequential colimits + +```agda +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} + +module synthetic-homotopy-theory.descent-data-function-types-over-sequential-colimits where +``` + +
Imports + +```agda +-- open import foundation.commuting-squares-of-maps +-- open import foundation.commuting-triangles-of-maps +-- open import foundation.contractible-maps +-- open import foundation.contractible-types +open import foundation.dependent-pair-types +open import foundation.equivalences +-- open import foundation.fibers-of-maps +-- open import foundation.function-extensionality +-- open import foundation.function-types +-- open import foundation.functoriality-dependent-function-types +-- open import foundation.functoriality-dependent-pair-types +-- open import foundation.homotopies +-- open import foundation.homotopy-algebra +open import foundation.postcomposition-functions +-- open import foundation.transport-along-identifications +open import foundation.universal-property-equivalences +open import foundation.universe-levels +-- open import foundation.whiskering-homotopies-composition + +open import synthetic-homotopy-theory.cocones-under-sequential-diagrams +open import synthetic-homotopy-theory.descent-data-sequential-colimits +-- open import synthetic-homotopy-theory.equivalences-descent-data-pushouts +open import synthetic-homotopy-theory.families-descent-data-sequential-colimits +-- open import synthetic-homotopy-theory.morphisms-descent-data-pushouts +-- open import synthetic-homotopy-theory.sections-descent-data-pushouts +open import synthetic-homotopy-theory.sequential-diagrams +-- open import synthetic-homotopy-theory.universal-property-pushouts +``` + +## Idea + +## Definitions + +### TODO + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} {A : sequential-diagram l1} + {X : UU l3} {c : cocone-sequential-diagram A X} + (P : family-with-descent-data-sequential-colimit c l4) + (Q : family-with-descent-data-sequential-colimit c l5) + where + + family-cocone-function-type-sequential-colimit : X โ†’ UU (l4 โŠ” l5) + family-cocone-function-type-sequential-colimit x = + family-cocone-family-with-descent-data-sequential-colimit P x โ†’ + family-cocone-family-with-descent-data-sequential-colimit Q x + + descent-data-function-type-sequential-colimit : + descent-data-sequential-colimit A (l4 โŠ” l5) + pr1 descent-data-function-type-sequential-colimit n a = + family-family-with-descent-data-sequential-colimit P n a โ†’ + family-family-with-descent-data-sequential-colimit Q n a + pr2 descent-data-function-type-sequential-colimit n a = + ( equiv-postcomp _ + ( equiv-family-family-with-descent-data-sequential-colimit Q n a)) โˆ˜e + ( equiv-precomp + ( inv-equiv (equiv-family-family-with-descent-data-sequential-colimit P n a)) + ( _)) +``` + +## Properties + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : sequential-diagram l1} + {X : UU l2} {c : cocone-sequential-diagram A X} + (P : family-with-descent-data-sequential-colimit c l3) + (Q : family-with-descent-data-sequential-colimit c l4) + where + + equiv-hom-descent-data-map-family-cocone-sequential-diagram : + ( (x : X) โ†’ + family-cocone-family-with-descent-data-sequential-colimit P x โ†’ + family-cocone-family-with-descent-data-sequential-colimit Q x) โ‰ƒ + ( hom-descent-data-sequential-colimit + ( descent-data-family-with-descent-data-sequential-colimit P) + ( descent-data-family-with-descent-data-sequential-colimit Q)) + equiv-hom-descent-data-map-family-cocone-sequential-diagram = {!!} +``` diff --git a/src/synthetic-homotopy-theory/descent-data-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/descent-data-sequential-colimits.lagda.md index d498ebe3db..2114f82abb 100644 --- a/src/synthetic-homotopy-theory/descent-data-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/descent-data-sequential-colimits.lagda.md @@ -180,6 +180,39 @@ module _ id-equiv-descent-data-sequential-colimit = id-equiv-dependent-sequential-diagram ( dependent-sequential-diagram-equifibered-sequential-diagram B) + +module _ + {l1 l2 l3 l4 : Level} {A : sequential-diagram l1} + (B : descent-data-sequential-colimit A l2) + (C : descent-data-sequential-colimit A l3) + (D : descent-data-sequential-colimit A l4) + (f : equiv-descent-data-sequential-colimit C D) + (e : equiv-descent-data-sequential-colimit B C) + where + + comp-equiv-descent-data-sequential-colimit : + equiv-descent-data-sequential-colimit B D + comp-equiv-descent-data-sequential-colimit = + comp-equiv-dependent-sequential-diagram + ( dependent-sequential-diagram-equifibered-sequential-diagram B) + ( dependent-sequential-diagram-equifibered-sequential-diagram C) + ( dependent-sequential-diagram-equifibered-sequential-diagram D) + ( f) + ( e) + +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} + (B : descent-data-sequential-colimit A l2) + (C : descent-data-sequential-colimit A l3) + where + + inv-equiv-descent-data-sequential-colimit : + equiv-descent-data-sequential-colimit B C โ†’ + equiv-descent-data-sequential-colimit C B + inv-equiv-descent-data-sequential-colimit e = + inv-equiv-dependent-sequential-diagram + ( dependent-sequential-diagram-equifibered-sequential-diagram C) + ( e) ``` ### Descent data induced by families over cocones under sequential diagrams diff --git a/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md index 20b9c33dc7..e41aa18fa6 100644 --- a/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md @@ -10,6 +10,7 @@ module synthetic-homotopy-theory.descent-property-sequential-colimits where open import elementary-number-theory.natural-numbers open import foundation.binary-homotopies +open import foundation.commuting-squares-of-maps open import foundation.commuting-triangles-of-maps open import foundation.dependent-pair-types open import foundation.equality-dependent-pair-types @@ -22,6 +23,7 @@ open import foundation.universe-levels open import synthetic-homotopy-theory.cocones-under-sequential-diagrams open import synthetic-homotopy-theory.descent-data-sequential-colimits +open import synthetic-homotopy-theory.families-descent-data-sequential-colimits open import synthetic-homotopy-theory.sequential-diagrams open import synthetic-homotopy-theory.universal-property-sequential-colimits ``` @@ -135,3 +137,212 @@ module _ map-inv-equiv ( equiv-descent-data-family-cocone-sequential-diagram) ``` + +```agda +open import synthetic-homotopy-theory.morphisms-sequential-diagrams +open import synthetic-homotopy-theory.morphisms-dependent-sequential-diagrams +open import synthetic-homotopy-theory.descent-data-function-types-over-sequential-colimits +open import foundation.action-on-identifications-functions +open import foundation.transport-along-higher-identifications +open import foundation.transport-along-identifications +open import foundation.function-types +open import foundation.whiskering-homotopies-composition +open import foundation.homotopies +module _ + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) + where + + other-nat-lemma : + {x y : A} (p : x ๏ผ y) (q : f x ๏ผ f y) (ฮฑ : ap f p ๏ผ q) โ†’ + (z : P x) โ†’ + tr Q q (h x z) ๏ผ h y (tr P p z) + other-nat-lemma p q ฮฑ z = inv (preserves-tr h p z โˆ™ (inv (substitution-law-tr Q f p) โˆ™ trยฒ Q ฮฑ _)) +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {X : UU l3} {c : cocone-sequential-diagram A X} + {Y : UU l4} {c' : cocone-sequential-diagram B Y} + (P : family-with-descent-data-sequential-colimit c l5) + (Q : family-with-descent-data-sequential-colimit c' l6) + (f : hom-sequential-diagram A B) + (fโˆž : X โ†’ Y) + (C : + (n : โ„•) โ†’ + coherence-square-maps + ( map-hom-sequential-diagram B f n) + ( map-cocone-sequential-diagram c n) + ( map-cocone-sequential-diagram c' n) + ( fโˆž)) + (ฮฑ : + (n : โ„•) โ†’ + ( (fโˆž ยทl (coherence-cocone-sequential-diagram c n)) โˆ™h + ( C (succ-โ„• n) ยทr map-sequential-diagram A n)) ~ + ( ( C n) โˆ™h + ( coherence-cocone-sequential-diagram c' n ยทr (map-hom-sequential-diagram B f n)) โˆ™h + ( map-cocone-sequential-diagram c' (succ-โ„• n) ยทl naturality-map-hom-sequential-diagram B f n))) + where + + dd-alt-pullback : descent-data-sequential-colimit A l6 + pr1 dd-alt-pullback n a = + family-cocone-family-with-descent-data-sequential-colimit Q + ( map-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + pr2 dd-alt-pullback n a = + equiv-tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e + equiv-tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + + dd-alt-precomp : descent-data-sequential-colimit A l6 + pr1 dd-alt-precomp n a = + family-family-with-descent-data-sequential-colimit Q n + ( map-hom-sequential-diagram B f n a) + pr2 dd-alt-precomp n a = + ( equiv-tr + ( family-family-with-descent-data-sequential-colimit Q (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e + ( equiv-family-family-with-descent-data-sequential-colimit Q n + ( map-hom-sequential-diagram B f n a)) + + equiv-dd-foo : + equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c + ( family-cocone-family-with-descent-data-sequential-colimit Q โˆ˜ fโˆž)) + ( dd-alt-pullback) + pr1 equiv-dd-foo n a = + equiv-tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( C n a) + pr2 equiv-dd-foo n a q = + ( ap + ( tr (family-cocone-family-with-descent-data-sequential-colimit Q) (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( inv + ( substitution-law-tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( fโˆž) + ( coherence-cocone-sequential-diagram c n a)))) โˆ™ + ( inv + ( tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a)) + ( q))) โˆ™ + ( trยฒ + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( ฮฑ n a) + ( q)) โˆ™ + ( tr-concat (C n a โˆ™ pr2 c' n (pr1 f n a)) _ q) โˆ™ + ap + ( tr (family-cocone-family-with-descent-data-sequential-colimit Q) (ap (pr1 c' (succ-โ„• n)) (pr2 f n a))) + ( tr-concat (C n a) (pr2 c' n (pr1 f n a)) q) + + private + inv-equiv-e : + equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c' + ( family-cocone-family-with-descent-data-sequential-colimit Q)) + ( descent-data-family-with-descent-data-sequential-colimit Q) + inv-equiv-e = + inv-equiv-descent-data-sequential-colimit + ( descent-data-family-with-descent-data-sequential-colimit Q) + ( descent-data-family-cocone-sequential-diagram c' + ( family-cocone-family-with-descent-data-sequential-colimit Q)) + ( equiv-descent-data-family-with-descent-data-sequential-colimit Q) + + equiv-equiv-dd-foo' : (n : โ„•) (b : family-sequential-diagram B n) โ†’ + ( family-cocone-family-with-descent-data-sequential-colimit Q + ( map-cocone-sequential-diagram c' n b)) โ‰ƒ + ( family-family-with-descent-data-sequential-colimit Q n b) + equiv-equiv-dd-foo' = + equiv-equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c' + ( family-cocone-family-with-descent-data-sequential-colimit Q)) + ( descent-data-family-with-descent-data-sequential-colimit Q) + ( inv-equiv-e) + + equiv-dd-foo' : + equiv-descent-data-sequential-colimit + ( dd-alt-pullback) + ( dd-alt-precomp) + pr1 equiv-dd-foo' n a = + equiv-equiv-dd-foo' n (map-hom-sequential-diagram B f n a) + pr2 equiv-dd-foo' n a = + pasting-vertical-coherence-square-maps + ( map-equiv (equiv-equiv-dd-foo' n (map-hom-sequential-diagram B f n a))) + ( tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( pr2 c' n (pr1 f n a))) + ( map-family-family-with-descent-data-sequential-colimit Q n (map-hom-sequential-diagram B f n a)) + ( map-equiv + ( equiv-equiv-dd-foo' + ( succ-โ„• n) + ( map-sequential-diagram B n (map-hom-sequential-diagram B f n a)))) + ( tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (pr2 f n a))) + ( tr + ( family-family-with-descent-data-sequential-colimit Q (succ-โ„• n)) + ( pr2 f n a)) + ( map-equiv + ( equiv-equiv-dd-foo' + ( succ-โ„• n) + ( map-hom-sequential-diagram B f (succ-โ„• n) (map-sequential-diagram A n a)))) + ( coh-equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c' + ( family-cocone-family-with-descent-data-sequential-colimit Q)) + ( descent-data-family-with-descent-data-sequential-colimit Q) + ( inv-equiv-e) + ( n) + ( map-hom-sequential-diagram B f n a)) + ( ( ( map-equiv + ( equiv-equiv-dd-foo' + ( succ-โ„• n) + ( map-hom-sequential-diagram B f + ( succ-โ„• n) + ( map-sequential-diagram A n a)))) ยทl + ( ฮป z โ†’ + substitution-law-tr + ( family-cocone-family-with-descent-data-sequential-colimit Q) + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) {z})) โˆ™h + ( inv-htpy + ( other-nat-lemma id + ( ฮป b โ†’ map-equiv (equiv-equiv-dd-foo' (succ-โ„• n) b)) + ( pr2 f n a) + ( pr2 f n a) + ( ap-id (pr2 f n a))))) + + hom-over-map-over : + ( (x : X) โ†’ + family-cocone-family-with-descent-data-sequential-colimit P x โ†’ + family-cocone-family-with-descent-data-sequential-colimit Q (fโˆž x)) โ‰ƒ + ( hom-dependent-sequential-diagram-over + ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) + ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit Q) + ( f)) + hom-over-map-over = + ( equiv-tot + ( ฮป g โ†’ + equiv-ฮ -equiv-family + ( ฮป n โ†’ equiv-ฮ -equiv-family (ฮป a โ†’ equiv-inv-htpy _ _)))) โˆ˜e + ( equiv-hom-descent-data-map-family-cocone-sequential-diagram P + ( family-cocone-family-with-descent-data-sequential-colimit Q โˆ˜ fโˆž , + dd-alt-precomp , + inv-equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c + ( family-cocone-family-with-descent-data-sequential-colimit Q โˆ˜ fโˆž)) + ( dd-alt-precomp) + ( comp-equiv-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c + ( family-cocone-family-with-descent-data-sequential-colimit Q โˆ˜ fโˆž)) + ( dd-alt-pullback) + ( dd-alt-precomp) + ( equiv-dd-foo') + ( equiv-dd-foo)))) +``` diff --git a/src/synthetic-homotopy-theory/equivalences-dependent-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/equivalences-dependent-sequential-diagrams.lagda.md index 54b42eb7ca..e1a86f6c42 100644 --- a/src/synthetic-homotopy-theory/equivalences-dependent-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/equivalences-dependent-sequential-diagrams.lagda.md @@ -166,7 +166,7 @@ module _ is-equiv-map-equiv-dependent-sequential-diagram C e ``` -### The identity equivalence of sequential diagrams +### The identity equivalence of dependent sequential diagrams ```agda module _ @@ -179,6 +179,61 @@ module _ pr2 id-equiv-dependent-sequential-diagram n a = refl-htpy ``` +### Composition of equivalences of dependent sequential diagrams + +```agda +module _ + {l1 l2 l3 l4 : Level} {A : sequential-diagram l1} + (B : dependent-sequential-diagram A l2) + (C : dependent-sequential-diagram A l3) + (D : dependent-sequential-diagram A l4) + (f : equiv-dependent-sequential-diagram C D) + (e : equiv-dependent-sequential-diagram B C) + where + + comp-equiv-dependent-sequential-diagram : + equiv-dependent-sequential-diagram B D + pr1 comp-equiv-dependent-sequential-diagram n a = + equiv-equiv-dependent-sequential-diagram D f n a โˆ˜e + equiv-equiv-dependent-sequential-diagram C e n a + pr2 comp-equiv-dependent-sequential-diagram n a = + pasting-horizontal-coherence-square-maps + ( map-equiv-dependent-sequential-diagram C e n a) + ( map-equiv-dependent-sequential-diagram D f n a) + ( map-dependent-sequential-diagram B n a) + ( map-dependent-sequential-diagram C n a) + ( map-dependent-sequential-diagram D n a) + ( map-equiv-dependent-sequential-diagram C e (succ-โ„• n) (map-sequential-diagram A n a)) + ( map-equiv-dependent-sequential-diagram D f (succ-โ„• n) (map-sequential-diagram A n a)) + ( coh-equiv-dependent-sequential-diagram C e n a) + ( coh-equiv-dependent-sequential-diagram D f n a) +``` + +### The inverse of an equivalence of dependent sequential diagrams + +```agda +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} + {B : dependent-sequential-diagram A l2} + (C : dependent-sequential-diagram A l3) + where + + inv-equiv-dependent-sequential-diagram : + equiv-dependent-sequential-diagram B C โ†’ + equiv-dependent-sequential-diagram C B + pr1 (inv-equiv-dependent-sequential-diagram e) n a = + inv-equiv (equiv-equiv-dependent-sequential-diagram C e n a) + pr2 (inv-equiv-dependent-sequential-diagram e) n a = + horizontal-inv-equiv-coherence-square-maps + ( equiv-equiv-dependent-sequential-diagram C e n a) + ( map-dependent-sequential-diagram B n a) + ( map-dependent-sequential-diagram C n a) + ( equiv-equiv-dependent-sequential-diagram C e + ( succ-โ„• n) + ( map-sequential-diagram A n a)) + ( coh-equiv-dependent-sequential-diagram C e n a) +``` + ## Properties ### Morphisms of dependent sequential diagrams which are equivalences are equivalences of dependent sequential diagrams diff --git a/src/synthetic-homotopy-theory/families-descent-data-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/families-descent-data-sequential-colimits.lagda.md index 4343695a69..560da28e46 100644 --- a/src/synthetic-homotopy-theory/families-descent-data-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/families-descent-data-sequential-colimits.lagda.md @@ -32,7 +32,7 @@ the type of type families over is [equivalent](foundation-core.equivalences.md) to [descent data](synthetic-homotopy-theory.descent-data-sequential-colimits.md). -Sometimes it is useful to consider tripes `(P, B, e)` where `P : X โ†’ ๐’ฐ` is a +Sometimes it is useful to consider triples `(P, B, e)` where `P : X โ†’ ๐’ฐ` is a type family, `B` is descent data, and `e` is an equivalence between `B` and the descent data induced by `P`. The type of such pairs `(B, e)` is [contractible](foundation-core.contractible-types.md), so the type of these From a54d770c1cde4b795f49d000a97871c8cc24a50b Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 15 Jan 2025 18:17:50 +0100 Subject: [PATCH 12/33] More progress --- ...nstruction-identity-type-pushouts.lagda.md | 2147 ++++++++++------- .../zigzags-sequential-diagrams.lagda.md | 13 +- 2 files changed, 1332 insertions(+), 828 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index b41da123c1..cb4e84aa09 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -1,7 +1,7 @@ # The zigzag construction of identity types of pushouts ```agda -{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} +{-# OPTIONS --lossy-unification #-} module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts where ``` @@ -63,844 +63,1343 @@ colimits of pushouts. ## Definitions ```agda +open import foundation.commuting-triangles-of-maps +open import foundation.homotopy-induction +open import foundation.dependent-homotopies module _ - {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) + {f g : A โ†’ B} + (H : f ~ g) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ B' (g a)) where - type-stage-zigzag-construction-id-pushout : โ„• โ†’ UU (lsuc (l1 โŠ” l2 โŠ” l3)) - type-stage-zigzag-construction-id-pushout n = - ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) - ( ฮป Path-to-b โ†’ - ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) - ( ฮป Path-to-a โ†’ - ( ฮฃ ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ - Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ - Path-to-a (left-map-span-diagram ๐’ฎ s)) - ( ฮป _ โ†’ - rec-โ„• - ( raise-unit (lsuc (l1 โŠ” l2 โŠ” l3))) - ( ฮป _ _ โ†’ - ( codomain-span-diagram ๐’ฎ โ†’ - span-diagram - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3)) ร— - ( domain-span-diagram ๐’ฎ โ†’ - span-diagram - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3))) - ( n))))) + htpy-over : UU (l1 โŠ” l3 โŠ” l4) + htpy-over = {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') module _ - {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) - (aโ‚€ : domain-span-diagram ๐’ฎ) + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + {s : X โ†’ A} (s' : {x : X} โ†’ X' x โ†’ A' (s x)) where - stage-zigzag-construction-id-pushout : - (n : โ„•) โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ n - stage-zigzag-construction-id-pushout zero-โ„• = - Path-to-b , - Path-to-a , - ( ฮป s โ†’ raise-ex-falso _) , - raise-star - where - Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-b _ = raise-empty _ - Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-a a = raise (l2 โŠ” l3) (aโ‚€ ๏ผ a) - stage-zigzag-construction-id-pushout (succ-โ„• n) = - Path-to-b , - Path-to-a , - ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) , - span-diagram-B , - span-diagram-A - where - span-diagram-B : - codomain-span-diagram ๐’ฎ โ†’ - span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) - span-diagram-B b = - make-span-diagram - ( pr2 โˆ˜ pr2) - ( tot - ( ฮป s โ†’ - tot - ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ - pr1 - ( pr2 (pr2 (stage-zigzag-construction-id-pushout n))) - ( s) - ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) - Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-b b = standard-pushout (span-diagram-B b) - span-diagram-A : - domain-span-diagram ๐’ฎ โ†’ - span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) - span-diagram-A a = - make-span-diagram - ( pr2 โˆ˜ pr2) - ( tot - ( ฮป s โ†’ - tot - ( ฮป r (p : pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a) โ†’ - inr-standard-pushout - ( span-diagram-B (right-map-span-diagram ๐’ฎ s)) - ( ( s) , - ( refl) , - ( tr - ( pr1 (pr2 (stage-zigzag-construction-id-pushout n))) - ( r) - ( p)))))) - Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-a a = standard-pushout (span-diagram-A a) - - span-diagram-path-to-b : - codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ - span-diagram - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - span-diagram-path-to-b b n = - pr1 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) b - - span-diagram-path-to-a : - domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ - span-diagram - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - ( l1 โŠ” l2 โŠ” l3) - span-diagram-path-to-a a n = - pr2 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) a - - Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b - - Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) - Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a - - inl-Path-to-b : - (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) - inl-Path-to-b b n = - inl-standard-pushout - ( span-diagram-path-to-b b n) - - inl-Path-to-a : - (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) - inl-Path-to-a a n = - inl-standard-pushout - ( span-diagram-path-to-a a n) - - concat-inv-s : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ - Path-to-a (left-map-span-diagram ๐’ฎ s) n - concat-inv-s s n = pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s - - concat-s : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ - Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) - concat-s s n p = - inr-standard-pushout - ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) n) - ( s , refl , p) - - right-sequential-diagram-zigzag-id-pushout : - codomain-span-diagram ๐’ฎ โ†’ - sequential-diagram (l1 โŠ” l2 โŠ” l3) - pr1 (right-sequential-diagram-zigzag-id-pushout b) = Path-to-b b - pr2 (right-sequential-diagram-zigzag-id-pushout b) = inl-Path-to-b b - - left-sequential-diagram-zigzag-id-pushout : - domain-span-diagram ๐’ฎ โ†’ - sequential-diagram (l1 โŠ” l2 โŠ” l3) - pr1 (left-sequential-diagram-zigzag-id-pushout a) = Path-to-a a - pr2 (left-sequential-diagram-zigzag-id-pushout a) = inl-Path-to-a a - - zigzag-sequential-diagram-zigzag-id-pushout : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - zigzag-sequential-diagram - ( left-sequential-diagram-zigzag-id-pushout - ( left-map-span-diagram ๐’ฎ s)) - ( shift-once-sequential-diagram - ( right-sequential-diagram-zigzag-id-pushout - ( right-map-span-diagram ๐’ฎ s))) - pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) = - concat-s s - pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = - concat-inv-s s (succ-โ„• n) - pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = - glue-standard-pushout - ( span-diagram-path-to-a (left-map-span-diagram ๐’ฎ s) n) - ( s , refl , p) - pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = - glue-standard-pushout - ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) - ( s , refl , p) - - left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - left-id-pushout a = - standard-sequential-colimit (left-sequential-diagram-zigzag-id-pushout a) - - refl-id-pushout : left-id-pushout aโ‚€ - refl-id-pushout = - map-cocone-standard-sequential-colimit 0 (map-raise refl) - - right-id-pushout : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) - right-id-pushout b = - standard-sequential-colimit (right-sequential-diagram-zigzag-id-pushout b) - - equiv-id-pushout : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - left-id-pushout (left-map-span-diagram ๐’ฎ s) โ‰ƒ - right-id-pushout (right-map-span-diagram ๐’ฎ s) - equiv-id-pushout s = - equiv-colimit-zigzag-sequential-diagram _ _ - ( up-standard-sequential-colimit) - ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) - ( zigzag-sequential-diagram-zigzag-id-pushout s) - - concat-inv-s-inf : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ - left-id-pushout (left-map-span-diagram ๐’ฎ s) - concat-inv-s-inf s = - map-inv-equiv (equiv-id-pushout s) - - concat-s-inf : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - left-id-pushout (left-map-span-diagram ๐’ฎ s) โ†’ - right-id-pushout (right-map-span-diagram ๐’ฎ s) - concat-s-inf s = - map-equiv (equiv-id-pushout s) - - descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) - pr1 descent-data-zigzag-id-pushout = left-id-pushout - pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout - pr2 (pr2 descent-data-zigzag-id-pushout) = equiv-id-pushout -``` + right-whisk-htpy-over : htpy-over B' (H ยทr s) (f' โˆ˜ s') (g' โˆ˜ s') + right-whisk-htpy-over a' = H' (s' a') -## Theorem +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + where -### TODO + left-whisk-htpy-over : htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g') + left-whisk-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} (H' : htpy-over B' H f' g') โ†’ + htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g')) + ( ฮป H' โ†’ s' ยทl H') + ( H) + ( H') -```agda -nat-lemma : - {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} - {P : A โ†’ UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) - {x y : A} {p : x ๏ผ y} - {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ - coherence-square-maps - ( tr P p) - ( h x) - ( h y) - ( tr Q q) -nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) - -apd-lemma : - {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} - (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ - apd (ฮป a โ†’ g a (f a)) p ๏ผ inv (preserves-tr g p (f x)) โˆ™ ap (g y) (apd f p) -apd-lemma f g refl = refl +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g h : A โ†’ B} + (H : f ~ g) (K : g ~ h) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {h' : {a : A} โ†’ A' a โ†’ B' (h a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' h') + where + + concat-htpy-over : htpy-over B' (H โˆ™h K) f' h' + concat-htpy-over {a} a' = + concat-dependent-identification B' (H a) (K a) (H' a') (K' a') + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + (f : A โ†’ B) (g : A โ†’ X) (m : B โ†’ X) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ X' (g a)) + (m' : {b : B} โ†’ B' b โ†’ X' (m b)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sX : (x : X) โ†’ X' x) + (F : (a : A) โ†’ f' (sA a) ๏ผ sB (f a)) + (G : (a : A) โ†’ g' (sA a) ๏ผ sX (g a)) + (M : (b : B) โ†’ m' (sB b) ๏ผ sX (m b)) + where + + section-triangle-over : + (H : coherence-triangle-maps g m f) โ†’ + (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ + UU (l1 โŠ” l6) + section-triangle-over H H' = + (a : A) โ†’ + H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + + section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + UU (l1 โŠ” l6) + section-triangle-over' H H' = + (a : A) โ†’ + ( H' (sA a) โˆ™ G a) ๏ผ + ( ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a)) + + -- actually โ‰ section-triangle-over ๐Ÿค” + -- section-triangle-over-inv : + -- (H : coherence-triangle-maps g m f) โ†’ + -- (H' : {a : A} (a' : A' a) โ†’ dependent-identification X' (H a) (g' a') (m' (f' a'))) โ†’ + -- UU (l1 โŠ” l6) + -- section-triangle-over-inv H H' = + -- (a : A) โ†’ + -- H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + -- ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + (f : A โ†’ B) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + where + + section-map-over : UU (l1 โŠ” l4) + section-map-over = (a : A) โ†’ f' (sA a) ๏ผ sB (f a) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} + (g : B โ†’ C) (f : A โ†’ B) + (g' : {b : B} โ†’ B' b โ†’ C' (g b)) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) + where + + comp-section-map-over : + section-map-over g g' sB sC โ†’ section-map-over f f' sA sB โ†’ + section-map-over (g โˆ˜ f) (g' โˆ˜ f') sA sC + comp-section-map-over G F = + g' ยทl F โˆ™h G ยทr f module _ - {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} - {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} - (up-c : universal-property-pushout _ _ c) - (aโ‚€ : domain-span-diagram ๐’ฎ) + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) where + section-htpy-over : UU (l1 โŠ” l4) + section-htpy-over = + (a : A) โ†’ + H' (sA a) โˆ™ G a ๏ผ + ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g i : A โ†’ B} + (H : f ~ g) (K : g ~ i) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {i' : {a : A} โ†’ A' a โ†’ B' (i a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (I : section-map-over i i' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (ฮฒ : section-htpy-over K K' sA sB G I) + where + + concat-section-htpy-over : + section-htpy-over + ( H โˆ™h K) + ( concat-htpy-over H K H' K') + ( sA) + ( sB) + ( F) + ( I) + concat-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {i : A โ†’ B} (K : g ~ i) + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {i' : {a : A} โ†’ A' a โ†’ B' (i a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') + (G : section-map-over g g' sA sB) + (I : section-map-over i i' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (ฮฒ : section-htpy-over K K' sA sB G I) โ†’ + section-htpy-over + ( H โˆ™h K) + ( concat-htpy-over H K H' K') + sA sB F I) + ( ฮป K H' K' G I ฮฑ ฮฒ a โ†’ + ind-htpy (f' {a}) + ( ฮป g'a H' โ†’ + {ia : B} (K : f a ๏ผ ia) + {i'a : A' a โ†’ B' ia} + (K' : (a' : A' a) โ†’ dependent-identification B' K (g'a a') (i'a a')) + (G : g'a (sA a) ๏ผ sB (f a)) + (I : i'a (sA a) ๏ผ sB ia) + (ฮฑ : H' (sA a) โˆ™ G ๏ผ ap id (F a) โˆ™ refl) + (ฮฒ : K' (sA a) โˆ™ I ๏ผ ap (tr B' K) G โˆ™ apd sB K) โ†’ + concat-dependent-identification B' refl K (H' (sA a)) (K' (sA a)) โˆ™ I ๏ผ + ap (tr B' K) (F a) โˆ™ apd sB K) + ( ฮป K K' G I ฮฑ ฮฒ โ†’ ฮฒ โˆ™ ap (ฮป p โ†’ ap (tr B' K) p โˆ™ apd sB K) (ฮฑ โˆ™ (right-unit โˆ™ ap-id (F a)))) + ( H' {a}) + ( K a) + ( K' {a}) + ( G a) + ( I a) + ( ฮฑ a) + ( ฮฒ a)) + ( H) + ( K) + ( H') + ( K') + ( G) + ( I) + ( ฮฑ) + ( ฮฒ) + +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} + {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} + (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) + (g1' : {p : P1} โ†’ Q1 p โ†’ Q3 (g1 p)) + (f1' : {p : P1} โ†’ Q1 p โ†’ Q2 (f1 p)) + (f2' : {p : P3} โ†’ Q3 p โ†’ Q4 (f2 p)) + (g2' : {p : P2} โ†’ Q2 p โ†’ Q4 (g2 p)) + where + + module _ + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) + (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) + (H : coherence-square-maps g1 f1 f2 g2) + (H' : htpy-over Q4 H (g2' โˆ˜ f1') (f2' โˆ˜ g1')) + where + + section-square-over : UU (l1 โŠ” l8) + section-square-over = + (p : P1) โ†’ + H' (s1 p) โˆ™ ap f2' (G1 p) โˆ™ (F2 (g1 p)) ๏ผ + ( ap (tr Q4 (H p) โˆ˜ g2') (F1 p) โˆ™ + ap (tr Q4 (H p)) (G2 (f1 p)) โˆ™ + apd s4 (H p)) + + get-section-square-over : + section-htpy-over H H' s1 s4 + ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) + ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) โ†’ + section-square-over + get-section-square-over = {!!} + module _ - {l5 : Level} - (R : descent-data-pushout - ( span-diagram-flattening-descent-data-pushout - ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) - ( l5)) - (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) + (m : P2 โ†’ P3) + (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) + (B1 : coherence-triangle-maps' g1 m f1) + (B2 : coherence-triangle-maps g2 f2 m) + (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') + (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) where - private - CB : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - concat-s-inf ๐’ฎ aโ‚€ s - ( map-cocone-standard-sequential-colimit n p) ๏ผ - map-cocone-standard-sequential-colimit (succ-โ„• n) - ( concat-s ๐’ฎ aโ‚€ s n p) - CB s = - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - - ฮจ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) - ฮจ s n p = - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( CB s n p)) โˆ˜ - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - - ฮฆ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ฮฆ s n p = - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , p))) โˆ˜ - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - - ฮฆ' : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ฮฆ' s n p = - ( inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ - ( ฮฆ s n p) - - coh-dep-cocone-a : - (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - coherence-square-maps - ( ( tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p))) โˆ˜ - ( tr - ( ev-pair - ( left-family-descent-data-pushout R) - ( left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p))) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - ( map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit (succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) - ( ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p))) - coh-dep-cocone-a s n p = - ( ( inv-htpy - ( ( tr-concat _ _) โˆ™h - ( ( tr _ _) ยทl - ( ( tr-concat _ _) โˆ™h - ( horizontal-concat-htpy - ( ฮป _ โ†’ substitution-law-tr _ _ _) - ( tr-concat _ _)))))) ยทr - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h - ( nat-lemma - ( concat-s-inf ๐’ฎ aโ‚€ s) - ( ev-pair (map-family-descent-data-pushout R) s) - ( [i] p)) โˆ™h - ( ( map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s - ( succ-โ„• n) - ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl - ( ( tr-concat _ _) โˆ™h - ( ฮป q โ†’ substitution-law-tr _ _ _))) - where - [i] : - ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl - ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h - ( ( map-cocone-standard-sequential-colimit - { A = - left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( left-map-span-diagram ๐’ฎ s)} - ( succ-โ„• n)) ยทl - ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ - ( ( CB s n) โˆ™h - ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr - ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h - ( ( map-cocone-standard-sequential-colimit - { A = - right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) ยทl - ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h - ( ( inv-htpy (CB s (succ-โ„• n))) ยทr - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) - [i] = - ( distributive-left-whisker-comp-concat _ _ _) โˆ™h - ( right-transpose-htpy-concat _ _ _ - ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ - ( ฮป p โ†’ - inv - ( nat-coherence-square-maps _ _ _ _ - ( CB s (succ-โ„• n)) - ( glue-pushout _ _ (s , refl , p))))) โˆ™h - ( map-inv-equiv - ( equiv-right-transpose-htpy-concat _ _ _) - ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n)) โˆ™h - ( ap-concat-htpy - ( CB s n) - ( ( ap-concat-htpy _ - ( ( distributive-left-whisker-comp-concat - ( map-cocone-standard-sequential-colimit - { A = - right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) - ( _) - ( _)) โˆ™h - ( ap-concat-htpy _ - ( ( left-whisker-compยฒ _ - ( left-whisker-inv-htpy _ _)) โˆ™h - ( left-whisker-inv-htpy _ _))))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h - ( ap-concat-htpy' _ - ( inv-htpy-assoc-htpy _ _ _)) - - ฮฑ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - coherence-square-maps - ( ฮจ s n p) - ( tr - ( ev-pair - ( left-family-descent-data-pushout R) - ( left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p)) - ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) - ( tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p))) - ฮฑ s n p q = - map-eq-transpose-equiv - ( equiv-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s - ( succ-โ„• n) - ( concat-s ๐’ฎ aโ‚€ s n p)))) - ( inv (coh-dep-cocone-a s n p q)) - - ฮฒ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - coherence-square-maps - ( ฮฆ' s n p) - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , p))) - ฮฒ s n p q = - inv - ( ( ap - ( tr _ _) - ( is-section-map-inv-equiv - ( equiv-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( _)) โˆ™ - ( is-section-map-inv-equiv - ( equiv-tr _ _) - ( _)))) - - stages-cocones' : - (n : โ„•) โ†’ - ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram - ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n)) - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) - ( ฮป dep-cocone-b โ†’ - ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram - ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n)) - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) - ( ฮป dep-cocone-a โ†’ - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - vertical-map-dependent-cocone _ _ _ _ - ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) - ( s , refl , p) ๏ผ - ฮฆ' s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p))) - stages-cocones' zero-โ„• = - dep-cocone-b , - dep-cocone-a , - ฮป s p โ†’ refl - where - dep-cocone-b : - (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b 0)) - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit 1 p)) - pr1 (dep-cocone-b b) (map-raise ()) - pr1 (pr2 (dep-cocone-b ._)) (s , refl , map-raise refl) = - tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s 0 (map-raise refl)) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit 0 (map-raise refl)) - ( rโ‚€)) - pr2 (pr2 (dep-cocone-b ._)) (s , refl , map-raise ()) - dep-cocone-a : - (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a 0)) - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit 1 p)) - pr1 (dep-cocone-a .aโ‚€) (map-raise refl) = - tr - ( ev-pair (left-family-descent-data-pushout R) aโ‚€) - ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) - ( rโ‚€) - pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = - ฮฆ' s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) - pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = - ( ฮฑ s 0 (map-raise refl) rโ‚€) โˆ™ - ( ap - ( ฮฆ' s 0 _) - ( inv - ( compute-inr-dependent-cogap _ _ - ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - ( s , refl , map-raise refl)))) - -- map-eq-transpose-equiv - -- ( equiv-family-descent-data-pushout R - -- ( s , - -- map-cocone-standard-sequential-colimit 1 - -- ( concat-inv-s ๐’ฎ aโ‚€ s 1 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))))) - -- ( inv - -- ( ( ap - -- ( ฮฆ s 0 (concat-s ๐’ฎ aโ‚€ s 0 (map-raise refl))) - -- ( compute-inr-dependent-cogap _ _ - -- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - -- (s , refl , map-raise refl))) โˆ™ - -- ( coh-dep-cocone-a s 0 (map-raise refl) rโ‚€))) - stages-cocones' (succ-โ„• n) = - dep-cocone-b , - dep-cocone-a , - ฮป s p โ†’ refl - where - dep-cocone-b : - (b : codomain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n))) - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - pr1 (dep-cocone-b b) p = - tr - ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) - ( dependent-cogap _ _ (pr1 (stages-cocones' n) b) p) - pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = - tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s (succ-โ„• n) p) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) - ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) - pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = - ( ฮฒ s n p _) โˆ™ - ( ap - ( ฮจ s (succ-โ„• n) _) - ( inv - ( ( compute-inr-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) - ( s , refl , p)) โˆ™ - ( pr2 (pr2 (stages-cocones' n)) s p)))) - -- inv - -- ( ( ap - -- ( ฮป q โ†’ - -- tr - -- ( ev-pair - -- ( right-family-descent-data-pushout R) - -- ( right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - -- ( map-family-descent-data-pushout R - -- ( s , - -- ( map-cocone-standard-sequential-colimit - -- ( succ-โ„• n) - -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( q))) - -- ( ( compute-inr-dependent-cogap _ _ - -- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p)) โˆ™ - -- ( pr2 (pr2 (stages-cocones' n)) s p))) โˆ™ - -- ( ap - -- ( tr - -- ( ev-pair - -- ( right-family-descent-data-pushout R) - -- ( right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( is-section-map-inv-equiv - -- ( equiv-family-descent-data-pushout R - -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( ฮฆ s n p (dependent-cogap _ _ - -- ( pr1 (stages-cocones' n) (right-map-span-diagram ๐’ฎ s)) p)))) โˆ™ - -- ( is-section-map-inv-equiv - -- ( equiv-tr - -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - -- ( CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - -- ( _))) - dep-cocone-a : - (a : domain-span-diagram ๐’ฎ) โ†’ - dependent-cocone-span-diagram - ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n))) - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - pr1 (dep-cocone-a a) p = - tr - ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) - ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) - pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = - -- inv-map-family-descent-data-pushout R - -- ( s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• (succ-โ„• n)) p)) - -- ( ฮฆ s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p)) - ฮฆ' s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) - pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = - ( ฮฑ s (succ-โ„• n) p _) โˆ™ - ( ap - ( ฮฆ' s (succ-โ„• n) _) - ( inv - ( compute-inr-dependent-cogap _ _ - ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - ( s , refl , p)))) - -- map-eq-transpose-equiv - -- ( equiv-family-descent-data-pushout R - -- ( s , - -- map-cocone-standard-sequential-colimit - -- ( succ-โ„• (succ-โ„• n)) - -- ( concat-inv-s ๐’ฎ aโ‚€ s - -- ( succ-โ„• (succ-โ„• n)) - -- ( concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) - -- ( inv - -- ( ( ap - -- ( ฮฆ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - -- ( compute-inr-dependent-cogap _ _ - -- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p))) โˆ™ - -- ( coh-dep-cocone-a s - -- ( succ-โ„• n) - -- ( p) - -- ( dependent-cogap _ _ - -- (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)))) - - - tB : - (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - right-family-descent-data-pushout R - ( b , map-cocone-standard-sequential-colimit n p) - tB b zero-โ„• (map-raise ()) - tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) - - tA : - (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - left-family-descent-data-pushout R - ( a , map-cocone-standard-sequential-colimit n p) - tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ - tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) - - ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R - pr1 ind-singleton-zigzag-id-pushout' (a , p) = - dependent-cogap-standard-sequential-colimit - ( tA a , KA) - ( p) - where - KA : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ - dependent-identification - ( ev-pair (left-family-descent-data-pushout R) a) - ( coherence-cocone-standard-sequential-colimit n p) - ( tA a n p) - ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) - KA zero-โ„• (map-raise refl) = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' 0)) a) - ( map-raise refl)) - KA (succ-โ„• n) p = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) - ( p)) - pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = - dependent-cogap-standard-sequential-colimit - ( tB b , KB) - ( p) - where - KB : - (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - dependent-identification - ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit n p) - ( tB b n p) - ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) - KB zero-โ„• (map-raise ()) - KB (succ-โ„• n) p = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (stages-cocones' (succ-โ„• n)) b) - ( p)) - pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = - dependent-cogap-standard-sequential-colimit - ( tS , KS) - ( p) - where - [i] : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ - tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) - [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) - [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) - tS : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( pr1 - ( ind-singleton-zigzag-id-pushout') - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit n p)) ๏ผ - pr1 - ( pr2 ind-singleton-zigzag-id-pushout') - ( right-map-span-diagram ๐’ฎ s , - concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) - tS n p = - ( ap - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ - ( map-equiv - ( inv-equiv-ap-emb - ( emb-equiv - ( equiv-tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p)))) - ( [i] n p โˆ™ - inv - ( ( apd - ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) - ( CB s n p)) โˆ™ - ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) - KS : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - tr - ( ฮป p โ†’ - map-family-descent-data-pushout R - ( s , p) - ( pr1 - ( ind-singleton-zigzag-id-pushout') - ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ - pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) - ( coherence-cocone-standard-sequential-colimit n p) - ( tS n p) ๏ผ - tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) - KS n p = - map-compute-dependent-identification-eq-value _ _ - ( coherence-cocone-standard-sequential-colimit n p) - ( _) - ( _) - ( {!!}) - - is-identity-system-zigzag-id-pushout : - is-identity-system-descent-data-pushout - ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) - ( refl-id-pushout ๐’ฎ aโ‚€) - is-identity-system-zigzag-id-pushout = - is-identity-system-descent-data-pushout-ind-singleton up-c - ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) - ( refl-id-pushout ๐’ฎ aโ‚€) - ( ind-singleton-zigzag-id-pushout') + pasting-triangles-over : + htpy-over Q4 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( g2' โˆ˜ f1') + ( f2' โˆ˜ g1') + pasting-triangles-over = + concat-htpy-over + ( B2 ยทr f1) + ( f2 ยทl B1) + ( right-whisk-htpy-over B2 T2 f1') + ( left-whisk-htpy-over B1 T1 f2') + + module _ + (m : P2 โ†’ P3) + (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) + (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) + (M : (p : P2) โ†’ m' (s2 p) ๏ผ s3 (m p)) + (B1 : coherence-triangle-maps' g1 m f1) + (B2 : coherence-triangle-maps g2 f2 m) + (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') + (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) + where + + pasting-sections-triangles-over : + section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 โ†’ + section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 โ†’ + section-square-over s1 s2 s3 s4 G1 F1 F2 G2 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( pasting-triangles-over m m' B1 B2 T1 T2) + pasting-sections-triangles-over S1 S2 = + get-section-square-over s1 s2 s3 s4 G1 F1 F2 G2 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( pasting-triangles-over m m' B1 B2 T1 T2) + ( concat-section-htpy-over (B2 ยทr f1) (f2 ยทl B1) + ( right-whisk-htpy-over B2 T2 f1') + ( left-whisk-htpy-over B1 T1 f2') + s1 s4 + ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) + ( comp-section-map-over (f2 โˆ˜ m) f1 (f2' โˆ˜ m') f1' s1 s2 s4 + ( comp-section-map-over f2 m f2' m' s2 s3 s4 F2 M) + ( F1)) + ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) + {!!} + {!!}) ``` +^ remove this code fence +-- module _ +-- {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) +-- where + +-- type-stage-zigzag-construction-id-pushout : โ„• โ†’ UU (lsuc (l1 โŠ” l2 โŠ” l3)) +-- type-stage-zigzag-construction-id-pushout n = +-- ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) +-- ( ฮป Path-to-b โ†’ +-- ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) +-- ( ฮป Path-to-a โ†’ +-- ( ฮฃ ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ +-- Path-to-a (left-map-span-diagram ๐’ฎ s)) +-- ( ฮป _ โ†’ +-- rec-โ„• +-- ( raise-unit (lsuc (l1 โŠ” l2 โŠ” l3))) +-- ( ฮป _ _ โ†’ +-- ( codomain-span-diagram ๐’ฎ โ†’ +-- span-diagram +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3)) ร— +-- ( domain-span-diagram ๐’ฎ โ†’ +-- span-diagram +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3))) +-- ( n))))) + +-- module _ +-- {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) +-- (aโ‚€ : domain-span-diagram ๐’ฎ) +-- where + +-- stage-zigzag-construction-id-pushout : +-- (n : โ„•) โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ n +-- stage-zigzag-construction-id-pushout zero-โ„• = +-- Path-to-b , +-- Path-to-a , +-- ( ฮป s โ†’ raise-ex-falso _) , +-- raise-star +-- where +-- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-b _ = raise-empty _ +-- Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-a a = raise (l2 โŠ” l3) (aโ‚€ ๏ผ a) +-- stage-zigzag-construction-id-pushout (succ-โ„• n) = +-- Path-to-b , +-- Path-to-a , +-- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) , +-- span-diagram-B , +-- span-diagram-A +-- where +-- span-diagram-B : +-- codomain-span-diagram ๐’ฎ โ†’ +-- span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) +-- span-diagram-B b = +-- make-span-diagram +-- ( pr2 โˆ˜ pr2) +-- ( tot +-- ( ฮป s โ†’ +-- tot +-- ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ +-- pr1 +-- ( pr2 (pr2 (stage-zigzag-construction-id-pushout n))) +-- ( s) +-- ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) +-- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-b b = standard-pushout (span-diagram-B b) +-- span-diagram-A : +-- domain-span-diagram ๐’ฎ โ†’ +-- span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) +-- span-diagram-A a = +-- make-span-diagram +-- ( pr2 โˆ˜ pr2) +-- ( tot +-- ( ฮป s โ†’ +-- tot +-- ( ฮป r (p : pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a) โ†’ +-- inr-standard-pushout +-- ( span-diagram-B (right-map-span-diagram ๐’ฎ s)) +-- ( ( s) , +-- ( refl) , +-- ( tr +-- ( pr1 (pr2 (stage-zigzag-construction-id-pushout n))) +-- ( r) +-- ( p)))))) +-- Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-a a = standard-pushout (span-diagram-A a) + +-- span-diagram-path-to-b : +-- codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ +-- span-diagram +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- span-diagram-path-to-b b n = +-- pr1 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) b + +-- span-diagram-path-to-a : +-- domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ +-- span-diagram +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- ( l1 โŠ” l2 โŠ” l3) +-- span-diagram-path-to-a a n = +-- pr2 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) a + +-- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b + +-- Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a + +-- inl-Path-to-b : +-- (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) +-- inl-Path-to-b b n = +-- inl-standard-pushout +-- ( span-diagram-path-to-b b n) + +-- inl-Path-to-a : +-- (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) +-- inl-Path-to-a a n = +-- inl-standard-pushout +-- ( span-diagram-path-to-a a n) + +-- concat-inv-s : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ +-- Path-to-a (left-map-span-diagram ๐’ฎ s) n +-- concat-inv-s s n = pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s + +-- concat-s : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ +-- Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) +-- concat-s s n p = +-- inr-standard-pushout +-- ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) n) +-- ( s , refl , p) + +-- right-sequential-diagram-zigzag-id-pushout : +-- codomain-span-diagram ๐’ฎ โ†’ +-- sequential-diagram (l1 โŠ” l2 โŠ” l3) +-- pr1 (right-sequential-diagram-zigzag-id-pushout b) = Path-to-b b +-- pr2 (right-sequential-diagram-zigzag-id-pushout b) = inl-Path-to-b b + +-- left-sequential-diagram-zigzag-id-pushout : +-- domain-span-diagram ๐’ฎ โ†’ +-- sequential-diagram (l1 โŠ” l2 โŠ” l3) +-- pr1 (left-sequential-diagram-zigzag-id-pushout a) = Path-to-a a +-- pr2 (left-sequential-diagram-zigzag-id-pushout a) = inl-Path-to-a a + +-- zigzag-sequential-diagram-zigzag-id-pushout : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- zigzag-sequential-diagram +-- ( left-sequential-diagram-zigzag-id-pushout +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( shift-once-sequential-diagram +-- ( right-sequential-diagram-zigzag-id-pushout +-- ( right-map-span-diagram ๐’ฎ s))) +-- pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) = +-- concat-s s +-- pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = +-- concat-inv-s s (succ-โ„• n) +-- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = +-- glue-standard-pushout +-- ( span-diagram-path-to-a (left-map-span-diagram ๐’ฎ s) n) +-- ( s , refl , p) +-- pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = +-- glue-standard-pushout +-- ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) +-- ( s , refl , p) + +-- left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- left-id-pushout a = +-- standard-sequential-colimit (left-sequential-diagram-zigzag-id-pushout a) + +-- refl-id-pushout : left-id-pushout aโ‚€ +-- refl-id-pushout = +-- map-cocone-standard-sequential-colimit 0 (map-raise refl) + +-- right-id-pushout : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- right-id-pushout b = +-- standard-sequential-colimit (right-sequential-diagram-zigzag-id-pushout b) + +-- equiv-id-pushout : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- left-id-pushout (left-map-span-diagram ๐’ฎ s) โ‰ƒ +-- right-id-pushout (right-map-span-diagram ๐’ฎ s) +-- equiv-id-pushout s = +-- equiv-colimit-zigzag-sequential-diagram _ _ +-- ( up-standard-sequential-colimit) +-- ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) +-- ( zigzag-sequential-diagram-zigzag-id-pushout s) + +-- -- concat-inv-s-inf : +-- -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- -- right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ +-- -- left-id-pushout (left-map-span-diagram ๐’ฎ s) +-- -- concat-inv-s-inf s = +-- -- map-inv-equiv (equiv-id-pushout s) + +-- concat-s-inf : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- left-id-pushout (left-map-span-diagram ๐’ฎ s) โ†’ +-- right-id-pushout (right-map-span-diagram ๐’ฎ s) +-- concat-s-inf s = +-- map-equiv (equiv-id-pushout s) + +-- descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) +-- pr1 descent-data-zigzag-id-pushout = left-id-pushout +-- pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout +-- pr2 (pr2 descent-data-zigzag-id-pushout) = equiv-id-pushout +-- ``` + +-- ## Theorem + +-- ### TODO + +-- ```agda +-- nat-lemma : +-- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} +-- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} +-- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) +-- {x y : A} {p : x ๏ผ y} +-- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ +-- coherence-square-maps +-- ( tr P p) +-- ( h x) +-- ( h y) +-- ( tr Q q) +-- nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) + +-- apd-lemma : +-- {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} +-- (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ +-- apd (ฮป a โ†’ g a (f a)) p ๏ผ inv (preserves-tr g p (f x)) โˆ™ ap (g y) (apd f p) +-- apd-lemma f g refl = refl + +-- lem : +-- {l : Level} {X : UU l} {x y z u v : X} โ†’ +-- (p : y ๏ผ x) (q : y ๏ผ z) (r : z ๏ผ u) (s : x ๏ผ v) (t : u ๏ผ v) โ†’ +-- (inv p โˆ™ (q โˆ™ r) ๏ผ s โˆ™ inv t) โ†’ q โˆ™ r โˆ™ t ๏ผ p โˆ™ s +-- lem refl q r refl refl x = right-unit โˆ™ x + +-- module _ +-- {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} +-- {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} +-- (up-c : universal-property-pushout _ _ c) +-- (aโ‚€ : domain-span-diagram ๐’ฎ) +-- where + +-- module _ +-- {l5 : Level} +-- (R : descent-data-pushout +-- ( span-diagram-flattening-descent-data-pushout +-- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) +-- ( l5)) +-- (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) +-- where + +-- private +-- CB : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- concat-s-inf ๐’ฎ aโ‚€ s +-- ( map-cocone-standard-sequential-colimit n p) ๏ผ +-- map-cocone-standard-sequential-colimit (succ-โ„• n) +-- ( concat-s ๐’ฎ aโ‚€ s n p) +-- CB s = +-- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- ( up-standard-sequential-colimit) +-- ( shift-once-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) +-- ( hom-diagram-zigzag-sequential-diagram +-- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + +-- ฮจ : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) +-- ฮจ s n p = +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p)) โˆ˜ +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p)) + +-- ฮฆ : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , +-- concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) +-- ฮฆ s n p = +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ +-- ( tr +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- ( glue-pushout _ _ (s , refl , p))) โˆ˜ +-- ( tr +-- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + +-- ฮฆ' : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ฮฆ' s n p = +-- ( inv-map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ +-- ( ฮฆ s n p) + +-- coh-dep-cocone-a : +-- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- coherence-square-maps +-- ( ( tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( left-family-descent-data-pushout R) +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p))) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p)) +-- ( map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit (succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ +-- ( tr +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p))) +-- coh-dep-cocone-a s n p = +-- ( ( inv-htpy +-- ( ( tr-concat _ _) โˆ™h +-- ( ( tr _ _) ยทl +-- ( ( tr-concat _ _) โˆ™h +-- ( horizontal-concat-htpy +-- ( ฮป _ โ†’ substitution-law-tr _ _ _) +-- ( tr-concat _ _)))))) ยทr +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h +-- ( nat-lemma +-- ( concat-s-inf ๐’ฎ aโ‚€ s) +-- ( ev-pair (map-family-descent-data-pushout R) s) +-- ( [i] p)) โˆ™h +-- ( ( map-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s +-- ( succ-โ„• n) +-- ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl +-- ( ( tr-concat _ _) โˆ™h +-- ( ฮป q โ†’ substitution-law-tr _ _ _))) +-- where +-- [i] : +-- ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl +-- ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h +-- ( ( map-cocone-standard-sequential-colimit +-- { A = +-- left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ +-- ( left-map-span-diagram ๐’ฎ s)} +-- ( succ-โ„• n)) ยทl +-- ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ +-- ( ( CB s n) โˆ™h +-- ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr +-- ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h +-- ( ( map-cocone-standard-sequential-colimit +-- { A = +-- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ +-- ( right-map-span-diagram ๐’ฎ s)} +-- ( succ-โ„• (succ-โ„• n))) ยทl +-- ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h +-- ( ( inv-htpy (CB s (succ-โ„• n))) ยทr +-- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) +-- [i] = +-- ( distributive-left-whisker-comp-concat _ _ _) โˆ™h +-- ( right-transpose-htpy-concat _ _ _ +-- ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ +-- ( ฮป p โ†’ +-- inv +-- ( nat-coherence-square-maps _ _ _ _ +-- ( CB s (succ-โ„• n)) +-- ( glue-pushout _ _ (s , refl , p))))) โˆ™h +-- ( map-inv-equiv +-- ( equiv-right-transpose-htpy-concat _ _ _) +-- ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- ( up-standard-sequential-colimit) +-- ( shift-once-cocone-sequential-diagram +-- ( cocone-standard-sequential-colimit +-- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ +-- ( right-map-span-diagram ๐’ฎ s)))) +-- ( hom-diagram-zigzag-sequential-diagram +-- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) +-- ( n)) โˆ™h +-- ( ap-concat-htpy +-- ( CB s n) +-- ( ( ap-concat-htpy _ +-- ( ( distributive-left-whisker-comp-concat +-- ( map-cocone-standard-sequential-colimit +-- { A = +-- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ +-- ( right-map-span-diagram ๐’ฎ s)} +-- ( succ-โ„• (succ-โ„• n))) +-- ( _) +-- ( _)) โˆ™h +-- ( ap-concat-htpy _ +-- ( ( left-whisker-compยฒ _ +-- ( left-whisker-inv-htpy _ _)) โˆ™h +-- ( left-whisker-inv-htpy _ _))))) โˆ™h +-- ( inv-htpy-assoc-htpy _ _ _))) โˆ™h +-- ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h +-- ( ap-concat-htpy' _ +-- ( inv-htpy-assoc-htpy _ _ _)) + +-- ฮฑ : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- coherence-square-maps +-- ( ฮจ s n p) +-- ( tr +-- ( ev-pair +-- ( left-family-descent-data-pushout R) +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p)) +-- ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) +-- ( tr +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( left-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( glue-pushout _ _ (s , refl , p))) +-- ฮฑ s n p q = +-- map-eq-transpose-equiv +-- ( equiv-family-descent-data-pushout R +-- ( s , +-- map-cocone-standard-sequential-colimit +-- ( succ-โ„• n) +-- ( concat-inv-s ๐’ฎ aโ‚€ s +-- ( succ-โ„• n) +-- ( concat-s ๐’ฎ aโ‚€ s n p)))) +-- ( inv (coh-dep-cocone-a s n p q)) + +-- ฮฒ : +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (n : โ„•) โ†’ +-- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ +-- coherence-square-maps +-- ( ฮฆ' s n p) +-- ( tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) +-- ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) +-- ( tr +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( right-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- ( glue-pushout _ _ (s , refl , p))) +-- ฮฒ s n p q = +-- inv +-- ( ( ap +-- ( tr _ _) +-- ( is-section-map-inv-equiv +-- ( equiv-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) +-- ( _)) โˆ™ +-- ( is-section-map-inv-equiv +-- ( equiv-tr _ _) +-- ( _)))) + +-- -- Note for refactoring: after contracting away the last component and the +-- -- vertical map, the definition of prism2 will fail to typecheck, since +-- -- currently the coherence computes to โˆ™ refl, which needs to be taken +-- -- into account; contracting away this data would simplify the later +-- -- homotopy algebra. +-- stages-cocones' : +-- (n : โ„•) โ†’ +-- ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram +-- ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n)) +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) +-- ( ฮป dep-cocone-b โ†’ +-- ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram +-- ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n)) +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) +-- ( ฮป dep-cocone-a โ†’ +-- (s : spanning-type-span-diagram ๐’ฎ) โ†’ +-- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ +-- vertical-map-dependent-cocone _ _ _ _ +-- ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) +-- ( s , refl , p) ๏ผ +-- ฮฆ' s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p))) +-- stages-cocones' zero-โ„• = +-- dep-cocone-b , +-- dep-cocone-a , +-- ฮป s p โ†’ refl +-- where +-- dep-cocone-b : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b 0)) +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit 1 p)) +-- pr1 (dep-cocone-b b) (map-raise ()) +-- pr1 (pr2 (dep-cocone-b ._)) (s , refl , map-raise refl) = +-- tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s 0 (map-raise refl)) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit 0 (map-raise refl)) +-- ( rโ‚€)) +-- pr2 (pr2 (dep-cocone-b ._)) (s , refl , map-raise ()) +-- dep-cocone-a : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a 0)) +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit 1 p)) +-- pr1 (dep-cocone-a .aโ‚€) (map-raise refl) = +-- tr +-- ( ev-pair (left-family-descent-data-pushout R) aโ‚€) +-- ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) +-- ( rโ‚€) +-- pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = +-- ฮฆ' s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) +-- pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = +-- ( ฮฑ s 0 (map-raise refl) rโ‚€) โˆ™ +-- ( ap +-- ( ฮฆ' s 0 _) +-- ( inv +-- ( compute-inr-dependent-cogap _ _ +-- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) +-- ( s , refl , map-raise refl)))) +-- stages-cocones' (succ-โ„• n) = +-- dep-cocone-b , +-- dep-cocone-a , +-- ฮป s p โ†’ refl +-- where +-- dep-cocone-b : +-- (b : codomain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n))) +-- ( ฮป p โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- pr1 (dep-cocone-b b) p = +-- tr +-- ( ev-pair (right-family-descent-data-pushout R) b) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) +-- ( dependent-cogap _ _ (pr1 (stages-cocones' n) b) p) +-- pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = +-- tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s (succ-โ„• n) p) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) +-- ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) +-- pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = +-- ( ฮฒ s n p _) โˆ™ +-- ( ap +-- ( ฮจ s (succ-โ„• n) _) +-- ( inv +-- ( ( compute-inr-dependent-cogap _ _ +-- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) +-- ( s , refl , p)) โˆ™ +-- ( pr2 (pr2 (stages-cocones' n)) s p)))) +-- dep-cocone-a : +-- (a : domain-span-diagram ๐’ฎ) โ†’ +-- dependent-cocone-span-diagram +-- ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n))) +-- ( ฮป p โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) +-- pr1 (dep-cocone-a a) p = +-- tr +-- ( ev-pair (left-family-descent-data-pushout R) a) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) +-- ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) +-- pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = +-- ฮฆ' s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) +-- pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = +-- ( ฮฑ s (succ-โ„• n) p _) โˆ™ +-- ( ap +-- ( ฮฆ' s (succ-โ„• n) _) +-- ( inv +-- ( compute-inr-dependent-cogap _ _ +-- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) +-- ( s , refl , p)))) + + +-- tB : +-- (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ +-- right-family-descent-data-pushout R +-- ( b , map-cocone-standard-sequential-colimit n p) +-- tB b zero-โ„• (map-raise ()) +-- tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) + +-- tA : +-- (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ +-- left-family-descent-data-pushout R +-- ( a , map-cocone-standard-sequential-colimit n p) +-- tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ +-- tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) + +-- ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R +-- pr1 ind-singleton-zigzag-id-pushout' (a , p) = +-- dependent-cogap-standard-sequential-colimit +-- ( tA a , KA) +-- ( p) +-- where +-- KA : +-- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ +-- dependent-identification +-- ( ev-pair (left-family-descent-data-pushout R) a) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tA a n p) +-- ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) +-- KA zero-โ„• (map-raise refl) = +-- inv +-- ( compute-inl-dependent-cogap _ _ +-- ( pr1 (pr2 (stages-cocones' 0)) a) +-- ( map-raise refl)) +-- KA (succ-โ„• n) p = +-- inv +-- ( compute-inl-dependent-cogap _ _ +-- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) +-- ( p)) +-- pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = +-- dependent-cogap-standard-sequential-colimit +-- ( tB b , KB) +-- ( p) +-- where +-- KB : +-- (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ +-- dependent-identification +-- ( ev-pair (right-family-descent-data-pushout R) b) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tB b n p) +-- ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) +-- KB zero-โ„• (map-raise ()) +-- KB (succ-โ„• n) p = +-- inv +-- ( compute-inl-dependent-cogap _ _ +-- ( pr1 (stages-cocones' (succ-โ„• n)) b) +-- ( p)) +-- pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = +-- dependent-cogap-standard-sequential-colimit +-- ( tS , KS) +-- ( p) +-- where +-- [i] : +-- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p) +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ +-- tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) +-- [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) +-- [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) +-- tS : +-- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p) +-- ( pr1 +-- ( ind-singleton-zigzag-id-pushout') +-- ( left-map-span-diagram ๐’ฎ s , +-- map-cocone-standard-sequential-colimit n p)) ๏ผ +-- pr1 +-- ( pr2 ind-singleton-zigzag-id-pushout') +-- ( right-map-span-diagram ๐’ฎ s , +-- concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) +-- tS n p = +-- ( ap +-- ( map-family-descent-data-pushout R +-- ( s , map-cocone-standard-sequential-colimit n p)) +-- ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ +-- ( map-equiv +-- ( inv-equiv-ap-emb +-- ( emb-equiv +-- ( equiv-tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p)))) +-- ( [i] n p โˆ™ +-- inv +-- ( ( apd +-- ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) +-- ( CB s n p)) โˆ™ +-- ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) +-- KS : +-- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- tr +-- ( ฮป p โ†’ +-- map-family-descent-data-pushout R +-- ( s , p) +-- ( pr1 +-- ( ind-singleton-zigzag-id-pushout') +-- ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ +-- pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( tS n p) ๏ผ +-- tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) +-- KS n p = +-- map-compute-dependent-identification-eq-value _ _ +-- ( coherence-cocone-standard-sequential-colimit n p) +-- ( _) +-- ( _) +-- ( {!!}) + +-- tS-in-diagram : +-- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- ( tr (ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) +-- ( CB s n p) +-- ( map-family-descent-data-pushout R _ (tA (left-map-span-diagram ๐’ฎ s) n p))) ๏ผ +-- ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) +-- tS-in-diagram s zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) +-- tS-in-diagram s (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) + +-- module vertices +-- (s : spanning-type-span-diagram ๐’ฎ) +-- where +-- PAn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- PAn = Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) +-- QAn : {n : โ„•} โ†’ PAn n โ†’ UU l5 +-- QAn {n} p = left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) +-- PBn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) +-- PBn = Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• +-- QBn : {n : โ„•} โ†’ PBn n โ†’ UU l5 +-- QBn {n} p = right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) +-- fn : {n : โ„•} โ†’ PAn n โ†’ PBn n +-- fn = concat-s ๐’ฎ aโ‚€ s _ +-- gn : {n : โ„•} โ†’ PAn n โ†’ PAn (succ-โ„• n) +-- gn = inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) _ +-- hn : {n : โ„•} โ†’ PBn n โ†’ PBn (succ-โ„• n) +-- hn = inl-Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) _ +-- mn : {n : โ„•} โ†’ PBn n โ†’ PAn (succ-โ„• n) +-- mn {n} = concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) +-- sAn : {n : โ„•} (p : PAn n) โ†’ QAn p +-- sAn = tA (left-map-span-diagram ๐’ฎ s) _ +-- sBn : {n : โ„•} (p : PBn n) โ†’ QBn p +-- sBn = tB (right-map-span-diagram ๐’ฎ s) _ +-- f'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QBn (fn p) +-- f'n {n} {p} = ฮจ s n p +-- g'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QAn (gn p) +-- g'n {n} {p} = +-- tr +-- ( ev-pair +-- ( left-family-descent-data-pushout R) +-- ( left-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit n p) +-- h'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QBn (hn p) +-- h'n {n} {p} = +-- tr +-- ( ev-pair +-- ( right-family-descent-data-pushout R) +-- ( right-map-span-diagram ๐’ฎ s)) +-- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) +-- m'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QAn (mn p) +-- m'n = ฮฆ' s _ _ + +-- module sides +-- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) +-- where +-- open vertices s +-- left : +-- {p : PAn n} โ†’ f'n (sAn p) ๏ผ sBn (fn p) +-- left = tS-in-diagram s n _ +-- right : +-- {p : PAn (succ-โ„• n)} โ†’ +-- f'n (sAn p) ๏ผ sBn (fn p) +-- right = tS-in-diagram s (succ-โ„• n) _ +-- bottom : +-- {p : PAn n} โ†’ hn (fn p) ๏ผ fn (gn p) +-- bottom = +-- naturality-map-hom-diagram-zigzag-sequential-diagram +-- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) +-- ( n) +-- ( _) +-- bottom1 : +-- {p : PAn n} โ†’ gn p ๏ผ mn (fn p) +-- bottom1 = glue-pushout _ _ _ +-- bottom2 : +-- {p : PBn n} โ†’ hn p ๏ผ fn (mn p) +-- bottom2 = glue-pushout _ _ _ +-- far : +-- {p : PAn n} โ†’ g'n (sAn p) ๏ผ sAn (gn p) +-- far = far' n _ +-- where +-- far' : (n : โ„•) (p : PAn n) โ†’ g'n (sAn p) ๏ผ sAn (gn p) +-- far' zero-โ„• (map-raise refl) = inv (compute-inl-dependent-cogap _ _ _ _) +-- far' (succ-โ„• n) p = inv (compute-inl-dependent-cogap _ _ _ _) +-- near : +-- {p : PBn n} โ†’ h'n (sBn p) ๏ผ sBn (hn p) +-- near = inv (compute-inl-dependent-cogap _ _ _ _) +-- mid : +-- {p : PBn n} โ†’ m'n (sBn p) ๏ผ sAn (mn p) +-- mid = mid' _ _ +-- where +-- mid' : (n : โ„•) (p : PBn n) โ†’ m'n (sBn p) ๏ผ sAn (mn p) +-- mid' zero-โ„• p = inv (compute-inr-dependent-cogap _ _ _ _) +-- mid' (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) +-- top1 : +-- {p : PAn n} (q : QAn p) โ†’ +-- tr QAn bottom1 (g'n q) ๏ผ m'n (f'n q) +-- top1 = ฮฑ s n _ +-- top2 : +-- {p : PBn n} (q : QBn p) โ†’ +-- tr QBn bottom2 (h'n q) ๏ผ f'n (m'n q) +-- top2 = ฮฒ s n _ +-- top : +-- {p : PAn n} (q : QAn p) โ†’ +-- tr QBn bottom (h'n (f'n q)) ๏ผ f'n (g'n q) +-- top = {!!} + +-- module CUBE +-- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) +-- where +-- open vertices s +-- open sides s n + +-- CUBE : (p : PAn n) โ†’ UU _ +-- CUBE p = +-- ( top (sAn p) โˆ™ ap f'n far โˆ™ right) ๏ผ +-- ( ap (tr QBn bottom โˆ˜ h'n) left โˆ™ +-- ap (tr QBn bottom) near โˆ™ +-- apd sBn bottom) + +-- PRISM1 : (p : PAn n) โ†’ UU _ +-- PRISM1 p = +-- ( top1 (sAn p) โˆ™ ap m'n left โˆ™ mid) ๏ผ +-- ( ap (tr QAn bottom1) far โˆ™ apd sAn bottom1) + +-- PRISM2 : (p : PBn n) โ†’ UU _ +-- PRISM2 p = +-- top2 (sBn p) โˆ™ ap f'n mid โˆ™ right ๏ผ +-- ap (tr QBn bottom2) near โˆ™ apd sBn bottom2 + +-- module cube +-- (s : spanning-type-span-diagram ๐’ฎ) +-- where abstract +-- open vertices s +-- open sides s +-- open CUBE s + +-- -- THE COMMENTED CODE WORKS, DON'T DELETE IT! +-- -- It just takes too long to typecheck it in its current state +-- prism1 : (n : โ„•) โ†’ (p : PAn n) โ†’ PRISM1 n p +-- prism1 = {!!} +-- -- prism1 zero-โ„• (map-raise refl) = +-- -- lem _ _ _ _ _ +-- -- ( ( ap +-- -- ( _โˆ™ (top1 0 (sAn _) โˆ™ ap m'n (left 0))) +-- -- ( ( inv (ap-inv (tr QAn (bottom1 0)) (far 0))) โˆ™ +-- -- ( apยฒ (tr QAn (bottom1 0)) (inv-inv _)))) โˆ™ +-- -- ( [i]) โˆ™ +-- -- ( ap +-- -- ( apd sAn (bottom1 0) โˆ™_) +-- -- ( inv (inv-inv _)))) +-- -- where +-- -- open import foundation.action-on-higher-identifications-functions +-- -- [i] = +-- -- inv +-- -- ( compute-glue-dependent-cogap _ _ +-- -- ( pr1 (pr2 (stages-cocones' 0)) (left-map-span-diagram ๐’ฎ s)) +-- -- ( s , refl , (map-raise refl))) +-- -- prism1 (succ-โ„• n) p = +-- -- lem _ _ _ _ _ +-- -- ( ( ap +-- -- ( _โˆ™ (top1 (succ-โ„• n) (sAn _) โˆ™ ap m'n (left (succ-โ„• n)))) +-- -- ( ( inv (ap-inv (tr QAn (bottom1 (succ-โ„• n))) (far (succ-โ„• n)))) โˆ™ +-- -- ( apยฒ (tr QAn (bottom1 (succ-โ„• n))) (inv-inv _)))) โˆ™ +-- -- ( [i]) โˆ™ +-- -- ( ap +-- -- ( apd sAn (bottom1 (succ-โ„• n)) โˆ™_) +-- -- ( inv (inv-inv _)))) +-- -- where +-- -- open import foundation.action-on-higher-identifications-functions +-- -- [i] = +-- -- inv +-- -- ( compute-glue-dependent-cogap _ _ +-- -- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) (left-map-span-diagram ๐’ฎ s)) +-- -- ( s , refl , p)) + +-- prism2 : (n : โ„•) โ†’ (p : PBn n) โ†’ PRISM2 n p +-- prism2 = {!!} +-- -- prism2 0 p = +-- -- lem _ _ _ _ _ +-- -- ( ( ap +-- -- ( _โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (mid 0))) +-- -- ( ( inv (ap-inv (tr QBn (bottom2 0)) (near 0))) โˆ™ +-- -- ( apยฒ (tr (QBn {1}) (bottom2 0)) (inv-inv _)))) โˆ™ +-- -- ( inv [ii]) โˆ™ +-- -- ( ap +-- -- ( apd sBn (bottom2 0) โˆ™_) +-- -- ( inv (inv-inv _)))) +-- -- where +-- -- open import foundation.action-on-higher-identifications-functions +-- -- [i] = +-- -- -- inv +-- -- ( compute-glue-dependent-cogap _ _ +-- -- ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) +-- -- ( s , refl , p)) +-- -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (inv q))) right-unit +-- -- prism2 (succ-โ„• n) p = +-- -- lem _ _ _ _ _ +-- -- ( ( ap +-- -- ( _โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (mid (succ-โ„• n)))) +-- -- ( ( inv (ap-inv (tr QBn (bottom2 (succ-โ„• n))) (near (succ-โ„• n)))) โˆ™ +-- -- ( apยฒ (tr QBn (bottom2 (succ-โ„• n))) (inv-inv _)))) โˆ™ +-- -- ( inv [ii]) โˆ™ +-- -- ( ap +-- -- ( apd sBn (bottom2 (succ-โ„• n)) โˆ™_) +-- -- ( inv (inv-inv _)))) +-- -- where +-- -- open import foundation.action-on-higher-identifications-functions +-- -- [i] = +-- -- -- inv +-- -- ( compute-glue-dependent-cogap _ _ +-- -- ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) +-- -- ( s , refl , p)) +-- -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) right-unit + +-- cube : +-- (n : โ„•) โ†’ (p : PAn n) โ†’ CUBE n p +-- cube = {!!} + +-- KS-in-diagram : +-- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ +-- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ +-- sides.top s n (vertices.sAn s p) โˆ™ +-- ap (vertices.f'n s) (sides.far s n) +-- โˆ™ sides.right s n +-- ๏ผ +-- ap (tr (vertices.QBn s) (sides.bottom s n) โˆ˜ vertices.h'n s) +-- (sides.left s n) +-- โˆ™ ap (tr (vertices.QBn s) (sides.bottom s n)) (sides.near s n) +-- โˆ™ apd (vertices.sBn s) (sides.bottom s n) +-- KS-in-diagram = cube.cube + +-- is-identity-system-zigzag-id-pushout : +-- is-identity-system-descent-data-pushout +-- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) +-- ( refl-id-pushout ๐’ฎ aโ‚€) +-- is-identity-system-zigzag-id-pushout = +-- is-identity-system-descent-data-pushout-ind-singleton up-c +-- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) +-- ( refl-id-pushout ๐’ฎ aโ‚€) +-- ( ind-singleton-zigzag-id-pushout') +-- ``` diff --git a/src/synthetic-homotopy-theory/zigzags-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/zigzags-sequential-diagrams.lagda.md index 71068b80e1..c521df41bf 100644 --- a/src/synthetic-homotopy-theory/zigzags-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/zigzags-sequential-diagrams.lagda.md @@ -247,10 +247,9 @@ module _ (z : zigzag-sequential-diagram A B) where - hom-diagram-zigzag-sequential-diagram : hom-sequential-diagram A B - pr1 hom-diagram-zigzag-sequential-diagram = - map-zigzag-sequential-diagram z - pr2 hom-diagram-zigzag-sequential-diagram n = + naturality-map-hom-diagram-zigzag-sequential-diagram : + naturality-hom-sequential-diagram A B (map-zigzag-sequential-diagram z) + naturality-map-hom-diagram-zigzag-sequential-diagram n = horizontal-pasting-up-diagonal-coherence-triangle-maps ( map-sequential-diagram A n) ( map-zigzag-sequential-diagram z n) @@ -259,6 +258,12 @@ module _ ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) ( lower-triangle-zigzag-sequential-diagram z n) + hom-diagram-zigzag-sequential-diagram : hom-sequential-diagram A B + pr1 hom-diagram-zigzag-sequential-diagram = + map-zigzag-sequential-diagram z + pr2 hom-diagram-zigzag-sequential-diagram = + naturality-map-hom-diagram-zigzag-sequential-diagram + module _ {l1 l2 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} (z : zigzag-sequential-diagram A B) From be588383c80d127d9841a3d09197388bad1bc82b Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 16 Jan 2025 17:19:23 +0100 Subject: [PATCH 13/33] More infra --- ...nstruction-identity-type-pushouts.lagda.md | 2396 +++++++++-------- 1 file changed, 1329 insertions(+), 1067 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index cb4e84aa09..0c756569a9 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -64,8 +64,10 @@ colimits of pushouts. ```agda open import foundation.commuting-triangles-of-maps +open import foundation.whiskering-homotopies-concatenation open import foundation.homotopy-induction open import foundation.dependent-homotopies + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} @@ -79,6 +81,20 @@ module _ htpy-over : UU (l1 โŠ” l3 โŠ” l4) htpy-over = {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) + {f g : A โ†’ B} + (H : f ~ g) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ B' (g a)) + where + + inv-htpy-over : htpy-over B' H f' g' โ†’ htpy-over B' (inv-htpy H) g' f' + inv-htpy-over H' a' = + map-eq-transpose-equiv-inv (equiv-tr B' (H _)) (inv (H' a')) + module _ {l1 l2 l3 l4 l5 l6 : Level} {A : UU l1} {B : UU l2} {X : UU l3} @@ -106,15 +122,43 @@ module _ {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) where + LWMOTIF : {a : A} (a' : A' a) (g : A โ†’ B) (H : f ~ g) โ†’ UU (l5 โŠ” l6) + LWMOTIF {a} a' g H = + {g'a' : B' (g a)} โ†’ + (H' : tr B' (H a) (f' a') ๏ผ g'a') โ†’ + tr X' (ap s (H a)) (s' (f' a')) ๏ผ s' (g'a') + left-whisk-htpy-over : htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g') - left-whisk-htpy-over = + left-whisk-htpy-over {a} a' = ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} (H' : htpy-over B' H f' g') โ†’ - htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g')) - ( ฮป H' โ†’ s' ยทl H') + ( LWMOTIF a') + ( ap s') ( H) - ( H') + ( H' a') + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f : A โ†’ B} + {f' g' : {a : A} โ†’ A' a โ†’ B' (f a)} + (H' : {a : A} โ†’ f' {a} ~ g') + {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + where + + open import foundation.function-extensionality + + compute-left-whisk-htpy-over : + {a : A} (a' : A' a) โ†’ + left-whisk-htpy-over {B' = B'} {X' = X'} {f = f} refl-htpy H' s' a' ๏ผ ap s' (H' a') + compute-left-whisk-htpy-over a' = + htpy-eq + ( htpy-eq-implicit + ( compute-ind-htpy f + ( LWMOTIF {B' = B'} {X' = X'} refl-htpy H' s' a') + ( ap s')) + ( g' a')) + ( H' a') module _ {l1 l2 l3 l4 : Level} @@ -131,48 +175,6 @@ module _ concat-htpy-over {a} a' = concat-dependent-identification B' (H a) (K a) (H' a') (K' a') -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - (f : A โ†’ B) (g : A โ†’ X) (m : B โ†’ X) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (g' : {a : A} โ†’ A' a โ†’ X' (g a)) - (m' : {b : B} โ†’ B' b โ†’ X' (m b)) - (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sX : (x : X) โ†’ X' x) - (F : (a : A) โ†’ f' (sA a) ๏ผ sB (f a)) - (G : (a : A) โ†’ g' (sA a) ๏ผ sX (g a)) - (M : (b : B) โ†’ m' (sB b) ๏ผ sX (m b)) - where - - section-triangle-over : - (H : coherence-triangle-maps g m f) โ†’ - (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ - UU (l1 โŠ” l6) - section-triangle-over H H' = - (a : A) โ†’ - H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ - ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) - - section-triangle-over' : - (H : coherence-triangle-maps' g m f) โ†’ - (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ - UU (l1 โŠ” l6) - section-triangle-over' H H' = - (a : A) โ†’ - ( H' (sA a) โˆ™ G a) ๏ผ - ( ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a)) - - -- actually โ‰ section-triangle-over ๐Ÿค” - -- section-triangle-over-inv : - -- (H : coherence-triangle-maps g m f) โ†’ - -- (H' : {a : A} (a' : A' a) โ†’ dependent-identification X' (H a) (g' a') (m' (f' a'))) โ†’ - -- UU (l1 โŠ” l6) - -- section-triangle-over-inv H H' = - -- (a : A) โ†’ - -- H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ - -- ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) - module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} @@ -201,6 +203,7 @@ module _ comp-section-map-over G F = g' ยทl F โˆ™h G ยทr f + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} @@ -221,6 +224,159 @@ module _ H' (sA a) โˆ™ G a ๏ผ ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + {A' : A โ†’ UU l5} {B' : B โ†’ UU l6} {C' : C โ†’ UU l7} {D' : D โ†’ UU l8} + {f : A โ†’ B} {g : B โ†’ C} {h : C โ†’ D} + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {b : B} โ†’ B' b โ†’ C' (g b)} + {h' : {c : C} โ†’ C' c โ†’ D' (h c)} + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (sC : (c : C) โ†’ C' c) + (sD : (d : D) โ†’ D' d) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sB sC) + (H : section-map-over h h' sC sD) + where + + assoc-comp-section-map-over : + section-htpy-over + ( refl-htpy {f = h โˆ˜ g โˆ˜ f}) + ( refl-htpy {f = h' โˆ˜ g' โˆ˜ f'}) + sA sD + ( comp-section-map-over (h โˆ˜ g) f (h' โˆ˜ g') f' sA sB sD + ( comp-section-map-over h g h' g' sB sC sD H G) + ( F)) + ( comp-section-map-over h (g โˆ˜ f) h' (g' โˆ˜ f') sA sC sD H + ( comp-section-map-over g f g' f' sA sB sC G F)) + assoc-comp-section-map-over = + inv-htpy + ( right-unit-htpy โˆ™h + left-unit-law-left-whisker-comp _ โˆ™h + inv-htpy-assoc-htpy _ _ _ โˆ™h + right-whisker-concat-htpy + ( ( right-whisker-concat-htpy + ( inv-preserves-comp-left-whisker-comp h' g' F) + ( h' ยทl G ยทr f)) โˆ™h + ( inv-htpy + ( distributive-left-whisker-comp-concat h' + ( g' ยทl F) + ( G ยทr f)))) + ( H ยทr g ยทr f)) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (s : X โ†’ A) + (s' : {x : X} โ†’ X' x โ†’ A' (s x)) + (sX : (x : X) โ†’ X' x) + (S : section-map-over s s' sX sA) + where + + right-whisk-section-htpy-over : + section-htpy-over (H ยทr s) + ( right-whisk-htpy-over H H' s') + sX sB + ( comp-section-map-over f s f' s' sX sA sB F S) + ( comp-section-map-over g s g' s' sX sA sB G S) + right-whisk-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ + section-htpy-over (H ยทr s) + ( right-whisk-htpy-over H H' s') + sX sB + ( comp-section-map-over f s f' s' sX sA sB F S) + ( comp-section-map-over g s g' s' sX sA sB G S)) + ( ฮป H' G ฮฑ x โ†’ + ind-htpy (f' {s x}) + ( ฮป g'sx H'sx โ†’ + (Gsx : g'sx (sA (s x)) ๏ผ sB (f (s x))) + (ฮฑsx : H'sx (sA (s x)) โˆ™ Gsx ๏ผ ap (tr B' refl) (F (s x)) โˆ™ apd sB refl) โ†’ + H'sx (s' (sX x)) โˆ™ ((ap g'sx (S x)) โˆ™ Gsx) ๏ผ + ap (tr B' refl) (ap f' (S x) โˆ™ (F (s x))) โˆ™ apd sB refl) + ( ฮป Gsx ฮฑsx โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (ap f' (S x) โˆ™_) (inv (ฮฑsx โˆ™ (right-unit โˆ™ ap-id _)))))) + ( H') + ( G (s x)) + ( ฮฑ (s x))) + ( H) + ( H') + ( G) + ( ฮฑ) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (s : B โ†’ X) + (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + (sX : (x : X) โ†’ X' x) + (S : section-map-over s s' sB sX) + where + + open import foundation.function-extensionality + + left-whisk-section-htpy-over : + section-htpy-over (s ยทl H) + ( left-whisk-htpy-over H H' s') + sA sX + ( comp-section-map-over s f s' f' sA sB sX S F) + ( comp-section-map-over s g s' g' sA sB sX S G) + left-whisk-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ + (H' : htpy-over B' H f' g') + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ + section-htpy-over (s ยทl H) + ( left-whisk-htpy-over H H' s') + sA sX + ( comp-section-map-over s f s' f' sA sB sX S F) + ( comp-section-map-over s g s' g' sA sB sX S G)) + ( ฮป H' G ฮฑ a โ†’ + ap (_โˆ™ (ap s' (G a) โˆ™ S (f a))) + ( compute-left-whisk-htpy-over H' s' (sA a)) โˆ™ + ind-htpy f' + ( ฮป g'a H'a โ†’ + (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ + (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ + ap s' (H'a (sA a)) โˆ™ (ap s' Ga โˆ™ S (f a)) ๏ผ ap (tr X' refl) (ap s' (F a) โˆ™ S (f a)) โˆ™ apd sX refl) + ( ฮป Ga ฮฑa โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (_โˆ™ S (f a)) (inv (ap (ap s') (ฮฑa โˆ™ (right-unit โˆ™ ap-id _))))))) + ( H') + ( G a) + ( ฮฑ a)) + ( H) + ( H') + ( G) + ( ฮฑ) + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} @@ -291,6 +447,73 @@ module _ ( ฮฑ) ( ฮฒ) +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + (f : A โ†’ B) (g : A โ†’ X) (m : B โ†’ X) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ X' (g a)) + (m' : {b : B} โ†’ B' b โ†’ X' (m b)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sX : (x : X) โ†’ X' x) + (F : (a : A) โ†’ f' (sA a) ๏ผ sB (f a)) + (G : (a : A) โ†’ g' (sA a) ๏ผ sX (g a)) + (M : (b : B) โ†’ m' (sB b) ๏ผ sX (m b)) + where + + section-triangle-over : + (H : coherence-triangle-maps g m f) โ†’ + (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ + UU (l1 โŠ” l6) + section-triangle-over H H' = + (a : A) โ†’ + H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + + unget-section-triangle-over : + (H : coherence-triangle-maps g m f) โ†’ + (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ + section-triangle-over H H' โ†’ + section-htpy-over H H' sA sX G + ( comp-section-map-over m f m' f' sA sB sX M F) + unget-section-triangle-over H H' ฮฑ = inv-htpy-assoc-htpy _ _ _ โˆ™h ฮฑ + + section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + UU (l1 โŠ” l6) + section-triangle-over' H H' = + (a : A) โ†’ + H' (sA a) โˆ™ G a ๏ผ + ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a) + + unget-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-triangle-over' H H' โ†’ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) + unget-section-triangle-over' H H' ฮฑ = + ฮฑ โˆ™h + ( ฮป a โ†’ + ap + ( _โˆ™ apd sX (H a)) + ( ( ap + ( _โˆ™ ap (tr X' (H a)) (M (f a))) + ( ap-comp (tr X' (H a)) m' (F a))) โˆ™ + ( inv (ap-concat (tr X' (H a)) (ap m' (F a)) (M (f a)))))) + + -- actually โ‰ section-triangle-over ๐Ÿค” + -- section-triangle-over-inv : + -- (H : coherence-triangle-maps g m f) โ†’ + -- (H' : {a : A} (a' : A' a) โ†’ dependent-identification X' (H a) (g' a') (m' (f' a'))) โ†’ + -- UU (l1 โŠ” l6) + -- section-triangle-over-inv H H' = + -- (a : A) โ†’ + -- H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + -- ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + module _ {l1 l2 l3 l4 l5 l6 l7 l8 : Level} {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} @@ -326,7 +549,11 @@ module _ ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) โ†’ section-square-over - get-section-square-over = {!!} + get-section-square-over ฮฑ p = + assoc _ _ _ โˆ™ + ฮฑ p โˆ™ + ap (_โˆ™ apd s4 (H p)) + (ap-concat (tr Q4 (H p)) _ _ โˆ™ ap (_โˆ™ _) (inv (ap-comp _ g2' (F1 p)))) module _ (m : P2 โ†’ P3) @@ -384,1022 +611,1057 @@ module _ ( comp-section-map-over f2 m f2' m' s2 s3 s4 F2 M) ( F1)) ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) - {!!} - {!!}) + ( [ii]) + ( concat-section-htpy-over refl-htpy (f2 ยทl B1) refl-htpy + ( left-whisk-htpy-over B1 T1 f2') + s1 s4 _ _ _ + ( assoc-comp-section-map-over _ _ _ _ F1 M F2) + ( [iv]))) + where + [i] = unget-section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 S2 + [ii] = right-whisk-section-htpy-over B2 T2 s2 s4 _ _ [i] f1 f1' s1 F1 + [iii] = unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 + [iv] = left-whisk-section-htpy-over B1 T1 s1 s3 _ _ [iii] f2 f2' s4 F2 + +module _ + {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + where + + type-stage-zigzag-construction-id-pushout : โ„• โ†’ UU (lsuc (l1 โŠ” l2 โŠ” l3)) + type-stage-zigzag-construction-id-pushout n = + ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) + ( ฮป Path-to-b โ†’ + ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) + ( ฮป Path-to-a โ†’ + ( ฮฃ ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s)) + ( ฮป _ โ†’ + rec-โ„• + ( raise-unit (lsuc (l1 โŠ” l2 โŠ” l3))) + ( ฮป _ _ โ†’ + ( codomain-span-diagram ๐’ฎ โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3)) ร— + ( domain-span-diagram ๐’ฎ โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3))) + ( n))))) + +module _ + {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) + (aโ‚€ : domain-span-diagram ๐’ฎ) + where + + stage-zigzag-construction-id-pushout : + (n : โ„•) โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ n + stage-zigzag-construction-id-pushout zero-โ„• = + Path-to-b , + Path-to-a , + ( ฮป s โ†’ raise-ex-falso _) , + raise-star + where + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b _ = raise-empty _ + Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a = raise (l2 โŠ” l3) (aโ‚€ ๏ผ a) + stage-zigzag-construction-id-pushout (succ-โ„• n) = + Path-to-b , + Path-to-a , + ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) , + span-diagram-B , + span-diagram-A + where + span-diagram-B : + codomain-span-diagram ๐’ฎ โ†’ + span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) + span-diagram-B b = + make-span-diagram + ( pr2 โˆ˜ pr2) + ( tot + ( ฮป s โ†’ + tot + ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ + pr1 + ( pr2 (pr2 (stage-zigzag-construction-id-pushout n))) + ( s) + ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b b = standard-pushout (span-diagram-B b) + span-diagram-A : + domain-span-diagram ๐’ฎ โ†’ + span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) + span-diagram-A a = + make-span-diagram + ( pr2 โˆ˜ pr2) + ( tot + ( ฮป s โ†’ + tot + ( ฮป r (p : pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a) โ†’ + inr-standard-pushout + ( span-diagram-B (right-map-span-diagram ๐’ฎ s)) + ( ( s) , + ( refl) , + ( tr + ( pr1 (pr2 (stage-zigzag-construction-id-pushout n))) + ( r) + ( p)))))) + Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a = standard-pushout (span-diagram-A a) + + span-diagram-path-to-b : + codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + span-diagram-path-to-b b n = + pr1 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) b + + span-diagram-path-to-a : + domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ + span-diagram + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + ( l1 โŠ” l2 โŠ” l3) + span-diagram-path-to-a a n = + pr2 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) a + + Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b + + Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) + Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a + + inl-Path-to-b : + (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) + inl-Path-to-b b n = + inl-standard-pushout + ( span-diagram-path-to-b b n) + + inl-Path-to-a : + (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) + inl-Path-to-a a n = + inl-standard-pushout + ( span-diagram-path-to-a a n) + + concat-inv-s : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s) n + concat-inv-s s n = pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s + + concat-s : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ + Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) + concat-s s n p = + inr-standard-pushout + ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) n) + ( s , refl , p) + + right-sequential-diagram-zigzag-id-pushout : + codomain-span-diagram ๐’ฎ โ†’ + sequential-diagram (l1 โŠ” l2 โŠ” l3) + pr1 (right-sequential-diagram-zigzag-id-pushout b) = Path-to-b b + pr2 (right-sequential-diagram-zigzag-id-pushout b) = inl-Path-to-b b + + left-sequential-diagram-zigzag-id-pushout : + domain-span-diagram ๐’ฎ โ†’ + sequential-diagram (l1 โŠ” l2 โŠ” l3) + pr1 (left-sequential-diagram-zigzag-id-pushout a) = Path-to-a a + pr2 (left-sequential-diagram-zigzag-id-pushout a) = inl-Path-to-a a + + zigzag-sequential-diagram-zigzag-id-pushout : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + zigzag-sequential-diagram + ( left-sequential-diagram-zigzag-id-pushout + ( left-map-span-diagram ๐’ฎ s)) + ( shift-once-sequential-diagram + ( right-sequential-diagram-zigzag-id-pushout + ( right-map-span-diagram ๐’ฎ s))) + pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) = + concat-s s + pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = + concat-inv-s s (succ-โ„• n) + pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = + glue-standard-pushout + ( span-diagram-path-to-a (left-map-span-diagram ๐’ฎ s) n) + ( s , refl , p) + pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = + glue-standard-pushout + ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) + ( s , refl , p) + + left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + left-id-pushout a = + standard-sequential-colimit (left-sequential-diagram-zigzag-id-pushout a) + + refl-id-pushout : left-id-pushout aโ‚€ + refl-id-pushout = + map-cocone-standard-sequential-colimit 0 (map-raise refl) + + right-id-pushout : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) + right-id-pushout b = + standard-sequential-colimit (right-sequential-diagram-zigzag-id-pushout b) + + equiv-id-pushout : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + left-id-pushout (left-map-span-diagram ๐’ฎ s) โ‰ƒ + right-id-pushout (right-map-span-diagram ๐’ฎ s) + equiv-id-pushout s = + equiv-colimit-zigzag-sequential-diagram _ _ + ( up-standard-sequential-colimit) + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( zigzag-sequential-diagram-zigzag-id-pushout s) + + -- concat-inv-s-inf : + -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ + -- right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ + -- left-id-pushout (left-map-span-diagram ๐’ฎ s) + -- concat-inv-s-inf s = + -- map-inv-equiv (equiv-id-pushout s) + + concat-s-inf : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + left-id-pushout (left-map-span-diagram ๐’ฎ s) โ†’ + right-id-pushout (right-map-span-diagram ๐’ฎ s) + concat-s-inf s = + map-equiv (equiv-id-pushout s) + + descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) + pr1 descent-data-zigzag-id-pushout = left-id-pushout + pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout + pr2 (pr2 descent-data-zigzag-id-pushout) = equiv-id-pushout +``` + +## Theorem + +### TODO + +```agda +nat-lemma : + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) + {x y : A} {p : x ๏ผ y} + {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ + coherence-square-maps + ( tr P p) + ( h x) + ( h y) + ( tr Q q) +nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) + +apd-lemma : + {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} + (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ + apd (ฮป a โ†’ g a (f a)) p ๏ผ inv (preserves-tr g p (f x)) โˆ™ ap (g y) (apd f p) +apd-lemma f g refl = refl + +lem : + {l : Level} {X : UU l} {x y z u v : X} โ†’ + (p : y ๏ผ x) (q : y ๏ผ z) (r : z ๏ผ u) (s : x ๏ผ v) (t : u ๏ผ v) โ†’ + (inv p โˆ™ (q โˆ™ r) ๏ผ s โˆ™ inv t) โ†’ q โˆ™ r โˆ™ t ๏ผ p โˆ™ s +lem refl q r refl refl x = right-unit โˆ™ x + +module _ + {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} + {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} + (up-c : universal-property-pushout _ _ c) + (aโ‚€ : domain-span-diagram ๐’ฎ) + where + + module _ + {l5 : Level} + (R : descent-data-pushout + ( span-diagram-flattening-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) + ( l5)) + (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) + where + + private + CB : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + concat-s-inf ๐’ฎ aโ‚€ s + ( map-cocone-standard-sequential-colimit n p) ๏ผ + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p) + CB s = + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + + ฮจ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) + ฮจ s n p = + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s n p)) โˆ˜ + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + + ฮฆ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ฮฆ s n p = + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , p))) โˆ˜ + ( tr + ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + + ฮฆ' : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ฮฆ' s n p = + ( inv-map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ + ( ฮฆ s n p) + + coh-dep-cocone-a : + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + coherence-square-maps + ( ( tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p))) โˆ˜ + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p))) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ( map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit (succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) + ( ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p))) + coh-dep-cocone-a s n p = + ( ( inv-htpy + ( ( tr-concat _ _) โˆ™h + ( ( tr _ _) ยทl + ( ( tr-concat _ _) โˆ™h + ( horizontal-concat-htpy + ( ฮป _ โ†’ substitution-law-tr _ _ _) + ( tr-concat _ _)))))) ยทr + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h + ( nat-lemma + ( concat-s-inf ๐’ฎ aโ‚€ s) + ( ev-pair (map-family-descent-data-pushout R) s) + ( [i] p)) โˆ™h + ( ( map-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s + ( succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl + ( ( tr-concat _ _) โˆ™h + ( ฮป q โ†’ substitution-law-tr _ _ _))) + where + [i] : + ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl + ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h + ( ( map-cocone-standard-sequential-colimit + { A = + left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( left-map-span-diagram ๐’ฎ s)} + ( succ-โ„• n)) ยทl + ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ + ( ( CB s n) โˆ™h + ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr + ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h + ( ( map-cocone-standard-sequential-colimit + { A = + right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) ยทl + ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h + ( ( inv-htpy (CB s (succ-โ„• n))) ยทr + ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) + [i] = + ( distributive-left-whisker-comp-concat _ _ _) โˆ™h + ( right-transpose-htpy-concat _ _ _ + ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ + ( ฮป p โ†’ + inv + ( nat-coherence-square-maps _ _ _ _ + ( CB s (succ-โ„• n)) + ( glue-pushout _ _ (s , refl , p))))) โˆ™h + ( map-inv-equiv + ( equiv-right-transpose-htpy-concat _ _ _) + ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit + ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)))) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( n)) โˆ™h + ( ap-concat-htpy + ( CB s n) + ( ( ap-concat-htpy _ + ( ( distributive-left-whisker-comp-concat + ( map-cocone-standard-sequential-colimit + { A = + right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + ( right-map-span-diagram ๐’ฎ s)} + ( succ-โ„• (succ-โ„• n))) + ( _) + ( _)) โˆ™h + ( ap-concat-htpy _ + ( ( left-whisker-compยฒ _ + ( left-whisker-inv-htpy _ _)) โˆ™h + ( left-whisker-inv-htpy _ _))))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))) โˆ™h + ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h + ( ap-concat-htpy' _ + ( inv-htpy-assoc-htpy _ _ _)) + + ฮฑ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + coherence-square-maps + ( ฮจ s n p) + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p)) + ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) + ( tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฑ s n p q = + map-eq-transpose-equiv + ( equiv-family-descent-data-pushout R + ( s , + map-cocone-standard-sequential-colimit + ( succ-โ„• n) + ( concat-inv-s ๐’ฎ aโ‚€ s + ( succ-โ„• n) + ( concat-s ๐’ฎ aโ‚€ s n p)))) + ( inv (coh-dep-cocone-a s n p q)) + + ฮฒ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + coherence-square-maps + ( ฮฆ' s n p) + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฒ s n p q = + inv + ( ( ap + ( tr _ _) + ( is-section-map-inv-equiv + ( equiv-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + ( _)) โˆ™ + ( is-section-map-inv-equiv + ( equiv-tr _ _) + ( _)))) + + -- Note for refactoring: after contracting away the last component and the + -- vertical map, the definition of prism2 will fail to typecheck, since + -- currently the coherence computes to โˆ™ refl, which needs to be taken + -- into account; contracting away this data would simplify the later + -- homotopy algebra. + stages-cocones' : + (n : โ„•) โ†’ + ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram + ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n)) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( ฮป dep-cocone-b โ†’ + ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram + ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n)) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) + ( ฮป dep-cocone-a โ†’ + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + vertical-map-dependent-cocone _ _ _ _ + ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p) ๏ผ + ฮฆ' s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p))) + stages-cocones' zero-โ„• = + dep-cocone-b , + dep-cocone-a , + ฮป s p โ†’ refl + where + dep-cocone-b : + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b 0)) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit 1 p)) + pr1 (dep-cocone-b b) (map-raise ()) + pr1 (pr2 (dep-cocone-b ._)) (s , refl , map-raise refl) = + tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s 0 (map-raise refl)) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit 0 (map-raise refl)) + ( rโ‚€)) + pr2 (pr2 (dep-cocone-b ._)) (s , refl , map-raise ()) + dep-cocone-a : + (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a 0)) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit 1 p)) + pr1 (dep-cocone-a .aโ‚€) (map-raise refl) = + tr + ( ev-pair (left-family-descent-data-pushout R) aโ‚€) + ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) + ( rโ‚€) + pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = + ฮฆ' s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) + pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = + ( ฮฑ s 0 (map-raise refl) rโ‚€) โˆ™ + ( ap + ( ฮฆ' s 0 _) + ( inv + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + ( s , refl , map-raise refl)))) + stages-cocones' (succ-โ„• n) = + dep-cocone-b , + dep-cocone-a , + ฮป s p โ†’ refl + where + dep-cocone-b : + (b : codomain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n))) + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + pr1 (dep-cocone-b b) p = + tr + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (stages-cocones' n) b) p) + pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = + tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s (succ-โ„• n) p) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) + pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = + ( ฮฒ s n p _) โˆ™ + ( ap + ( ฮจ s (succ-โ„• n) _) + ( inv + ( ( compute-inr-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p)) โˆ™ + ( pr2 (pr2 (stages-cocones' n)) s p)))) + dep-cocone-a : + (a : domain-span-diagram ๐’ฎ) โ†’ + dependent-cocone-span-diagram + ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n))) + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + pr1 (dep-cocone-a a) p = + tr + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) + ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) + pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = + ฮฆ' s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) + pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = + ( ฮฑ s (succ-โ„• n) p _) โˆ™ + ( ap + ( ฮฆ' s (succ-โ„• n) _) + ( inv + ( compute-inr-dependent-cogap _ _ + ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) + ( s , refl , p)))) + + + tB : + (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + right-family-descent-data-pushout R + ( b , map-cocone-standard-sequential-colimit n p) + tB b zero-โ„• (map-raise ()) + tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) + + tA : + (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + left-family-descent-data-pushout R + ( a , map-cocone-standard-sequential-colimit n p) + tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ + tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) + + ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R + pr1 ind-singleton-zigzag-id-pushout' (a , p) = + dependent-cogap-standard-sequential-colimit + ( tA a , KA) + ( p) + where + KA : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + dependent-identification + ( ev-pair (left-family-descent-data-pushout R) a) + ( coherence-cocone-standard-sequential-colimit n p) + ( tA a n p) + ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) + KA zero-โ„• (map-raise refl) = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' 0)) a) + ( map-raise refl)) + KA (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) + ( p)) + pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = + dependent-cogap-standard-sequential-colimit + ( tB b , KB) + ( p) + where + KB : + (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + dependent-identification + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( tB b n p) + ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) + KB zero-โ„• (map-raise ()) + KB (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (stages-cocones' (succ-โ„• n)) b) + ( p)) + pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = + dependent-cogap-standard-sequential-colimit + ( tS , KS) + ( p) + where + [i] : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p) + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ + tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) + [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) + [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) + tS : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p) + ( pr1 + ( ind-singleton-zigzag-id-pushout') + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit n p)) ๏ผ + pr1 + ( pr2 ind-singleton-zigzag-id-pushout') + ( right-map-span-diagram ๐’ฎ s , + concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) + tS n p = + ( ap + ( map-family-descent-data-pushout R + ( s , map-cocone-standard-sequential-colimit n p)) + ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ + ( map-equiv + ( inv-equiv-ap-emb + ( emb-equiv + ( equiv-tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( CB s n p)))) + ( [i] n p โˆ™ + inv + ( ( apd + ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) + ( CB s n p)) โˆ™ + ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) + KS : + (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + tr + ( ฮป p โ†’ + map-family-descent-data-pushout R + ( s , p) + ( pr1 + ( ind-singleton-zigzag-id-pushout') + ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ + pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) + ( coherence-cocone-standard-sequential-colimit n p) + ( tS n p) ๏ผ + tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) + KS n p = + map-compute-dependent-identification-eq-value _ _ + ( coherence-cocone-standard-sequential-colimit n p) + ( _) + ( _) + ( {!!}) + + tS-in-diagram : + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + ( tr (ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + ( CB s n p) + ( map-family-descent-data-pushout R _ (tA (left-map-span-diagram ๐’ฎ s) n p))) ๏ผ + ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) + tS-in-diagram s zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) + tS-in-diagram s (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) + + module vertices + (s : spanning-type-span-diagram ๐’ฎ) + where + PAn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) + PAn = Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) + QAn : {n : โ„•} โ†’ PAn n โ†’ UU l5 + QAn {n} p = left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) + PBn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) + PBn = Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• + QBn : {n : โ„•} โ†’ PBn n โ†’ UU l5 + QBn {n} p = right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + fn : {n : โ„•} โ†’ PAn n โ†’ PBn n + fn = concat-s ๐’ฎ aโ‚€ s _ + gn : {n : โ„•} โ†’ PAn n โ†’ PAn (succ-โ„• n) + gn = inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) _ + hn : {n : โ„•} โ†’ PBn n โ†’ PBn (succ-โ„• n) + hn = inl-Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) _ + mn : {n : โ„•} โ†’ PBn n โ†’ PAn (succ-โ„• n) + mn {n} = concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) + sAn : {n : โ„•} (p : PAn n) โ†’ QAn p + sAn = tA (left-map-span-diagram ๐’ฎ s) _ + sBn : {n : โ„•} (p : PBn n) โ†’ QBn p + sBn = tB (right-map-span-diagram ๐’ฎ s) _ + f'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QBn (fn p) + f'n {n} {p} = ฮจ s n p + g'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QAn (gn p) + g'n {n} {p} = + tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p) + h'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QBn (hn p) + h'n {n} {p} = + tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) + m'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QAn (mn p) + m'n = ฮฆ' s _ _ + + module sides + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) + where + open vertices s + left : + {p : PAn n} โ†’ f'n (sAn p) ๏ผ sBn (fn p) + left = tS-in-diagram s n _ + right : + {p : PAn (succ-โ„• n)} โ†’ + f'n (sAn p) ๏ผ sBn (fn p) + right = tS-in-diagram s (succ-โ„• n) _ + bottom : + {p : PAn n} โ†’ hn (fn p) ๏ผ fn (gn p) + bottom = + naturality-map-hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + ( n) + ( _) + bottom1 : + {p : PAn n} โ†’ gn p ๏ผ mn (fn p) + bottom1 = glue-pushout _ _ _ + bottom2 : + {p : PBn n} โ†’ hn p ๏ผ fn (mn p) + bottom2 = glue-pushout _ _ _ + far : + {p : PAn n} โ†’ g'n (sAn p) ๏ผ sAn (gn p) + far = far' n _ + where + far' : (n : โ„•) (p : PAn n) โ†’ g'n (sAn p) ๏ผ sAn (gn p) + far' zero-โ„• (map-raise refl) = inv (compute-inl-dependent-cogap _ _ _ _) + far' (succ-โ„• n) p = inv (compute-inl-dependent-cogap _ _ _ _) + near : + {p : PBn n} โ†’ h'n (sBn p) ๏ผ sBn (hn p) + near = inv (compute-inl-dependent-cogap _ _ _ _) + mid : + {p : PBn n} โ†’ m'n (sBn p) ๏ผ sAn (mn p) + mid = mid' _ _ + where + mid' : (n : โ„•) (p : PBn n) โ†’ m'n (sBn p) ๏ผ sAn (mn p) + mid' zero-โ„• p = inv (compute-inr-dependent-cogap _ _ _ _) + mid' (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) + top1 : + {p : PAn n} (q : QAn p) โ†’ + tr QAn bottom1 (g'n q) ๏ผ m'n (f'n q) + top1 = ฮฑ s n _ + top2 : + {p : PBn n} (q : QBn p) โ†’ + tr QBn bottom2 (h'n q) ๏ผ f'n (m'n q) + top2 = ฮฒ s n _ + top : + {p : PAn n} (q : QAn p) โ†’ + tr QBn bottom (h'n (f'n q)) ๏ผ f'n (g'n q) + top = + pasting-triangles-over gn fn fn hn g'n f'n f'n h'n mn m'n + ( inv-htpy (ฮป p โ†’ bottom1 {p})) + ( ฮป p โ†’ bottom2 {p}) + ( inv-htpy-over QAn (ฮป _ โ†’ bottom1) g'n (m'n โˆ˜ f'n) top1) + ( top2) + + module CUBE + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) + where + open vertices s + open sides s n + + CUBE : UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + CUBE = + section-square-over gn fn fn hn g'n f'n f'n h'n sAn sBn sAn sBn + ( ฮป p โ†’ far {p}) + ( ฮป p โ†’ left {p}) + ( ฮป p โ†’ right {p}) + ( ฮป p โ†’ near {p}) + ( ฮป p โ†’ bottom {p}) + ( top) + + PRISM1 : UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + PRISM1 = + section-triangle-over fn gn mn f'n g'n m'n sAn sBn sAn + ( ฮป p โ†’ left {p}) + ( ฮป p โ†’ far {p}) + ( ฮป p โ†’ mid {p}) + ( ฮป p โ†’ bottom1 {p}) + ( top1) + + PRISM2 : UU (l1 โŠ” l2 โŠ” l3 โŠ” l5) + PRISM2 = + section-triangle-over mn hn fn m'n h'n f'n sBn sAn sBn + ( ฮป p โ†’ mid {p}) + ( ฮป p โ†’ near {p}) + ( ฮป p โ†’ right {p}) + ( ฮป p โ†’ bottom2 {p}) + ( top2) + + module cube + (s : spanning-type-span-diagram ๐’ฎ) + where abstract + open vertices s + open sides s + open CUBE s + + -- THE COMMENTED CODE WORKS, DON'T DELETE IT! + -- It just takes too long to typecheck it in its current state + prism1 : (n : โ„•) โ†’ PRISM1 n + prism1 = {!!} + -- prism1 zero-โ„• (map-raise refl) = + -- lem _ _ _ _ _ + -- ( ( ap + -- ( _โˆ™ (top1 0 (sAn _) โˆ™ ap m'n (left 0))) + -- ( ( inv (ap-inv (tr QAn (bottom1 0)) (far 0))) โˆ™ + -- ( apยฒ (tr QAn (bottom1 0)) (inv-inv _)))) โˆ™ + -- ( [i]) โˆ™ + -- ( ap + -- ( apd sAn (bottom1 0) โˆ™_) + -- ( inv (inv-inv _)))) + -- where + -- open import foundation.action-on-higher-identifications-functions + -- [i] = + -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (pr2 (stages-cocones' 0)) (left-map-span-diagram ๐’ฎ s)) + -- ( s , refl , (map-raise refl))) + -- prism1 (succ-โ„• n) p = + -- lem _ _ _ _ _ + -- ( ( ap + -- ( _โˆ™ (top1 (succ-โ„• n) (sAn _) โˆ™ ap m'n (left (succ-โ„• n)))) + -- ( ( inv (ap-inv (tr QAn (bottom1 (succ-โ„• n))) (far (succ-โ„• n)))) โˆ™ + -- ( apยฒ (tr QAn (bottom1 (succ-โ„• n))) (inv-inv _)))) โˆ™ + -- ( [i]) โˆ™ + -- ( ap + -- ( apd sAn (bottom1 (succ-โ„• n)) โˆ™_) + -- ( inv (inv-inv _)))) + -- where + -- open import foundation.action-on-higher-identifications-functions + -- [i] = + -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) (left-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) + + prism2 : (n : โ„•) โ†’ PRISM2 n + prism2 = {!!} + -- prism2 0 p = + -- lem _ _ _ _ _ + -- ( ( ap + -- ( _โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (mid 0))) + -- ( ( inv (ap-inv (tr QBn (bottom2 0)) (near 0))) โˆ™ + -- ( apยฒ (tr (QBn {1}) (bottom2 0)) (inv-inv _)))) โˆ™ + -- ( inv [ii]) โˆ™ + -- ( ap + -- ( apd sBn (bottom2 0) โˆ™_) + -- ( inv (inv-inv _)))) + -- where + -- open import foundation.action-on-higher-identifications-functions + -- [i] = + -- -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) + -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (inv q))) right-unit + -- prism2 (succ-โ„• n) p = + -- lem _ _ _ _ _ + -- ( ( ap + -- ( _โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (mid (succ-โ„• n)))) + -- ( ( inv (ap-inv (tr QBn (bottom2 (succ-โ„• n))) (near (succ-โ„• n)))) โˆ™ + -- ( apยฒ (tr QBn (bottom2 (succ-โ„• n))) (inv-inv _)))) โˆ™ + -- ( inv [ii]) โˆ™ + -- ( ap + -- ( apd sBn (bottom2 (succ-โ„• n)) โˆ™_) + -- ( inv (inv-inv _)))) + -- where + -- open import foundation.action-on-higher-identifications-functions + -- [i] = + -- -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) + -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) right-unit + + cube : (n : โ„•) โ†’ CUBE n + cube n = + pasting-sections-triangles-over gn fn fn hn g'n f'n f'n h'n mn m'n sAn sBn sAn sBn + ( ฮป p โ†’ far n {p}) + ( ฮป p โ†’ left n {p}) + ( ฮป p โ†’ right n {p}) + ( ฮป p โ†’ near n {p}) + ( ฮป p โ†’ mid n {p}) + ( inv-htpy (ฮป p โ†’ bottom1 n {p})) + ( ฮป p โ†’ bottom2 n {p}) + ( {!inv-htpy-over!}) + ( top2 n) + ( {!!}) + ( {!!}) + + KS-in-diagram : + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + sides.top s n (vertices.sAn s p) โˆ™ + ap (vertices.f'n s) (sides.far s n) + โˆ™ sides.right s n + ๏ผ + ap (tr (vertices.QBn s) (sides.bottom s n) โˆ˜ vertices.h'n s) + (sides.left s n) + โˆ™ ap (tr (vertices.QBn s) (sides.bottom s n)) (sides.near s n) + โˆ™ apd (vertices.sBn s) (sides.bottom s n) + KS-in-diagram = cube.cube + + is-identity-system-zigzag-id-pushout : + is-identity-system-descent-data-pushout + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) + ( refl-id-pushout ๐’ฎ aโ‚€) + is-identity-system-zigzag-id-pushout = + is-identity-system-descent-data-pushout-ind-singleton up-c + ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) + ( refl-id-pushout ๐’ฎ aโ‚€) + ( ind-singleton-zigzag-id-pushout') ``` -^ remove this code fence --- module _ --- {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) --- where - --- type-stage-zigzag-construction-id-pushout : โ„• โ†’ UU (lsuc (l1 โŠ” l2 โŠ” l3)) --- type-stage-zigzag-construction-id-pushout n = --- ฮฃ ( codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) --- ( ฮป Path-to-b โ†’ --- ฮฃ ( domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3)) --- ( ฮป Path-to-a โ†’ --- ( ฮฃ ( (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- Path-to-b (right-map-span-diagram ๐’ฎ s) โ†’ --- Path-to-a (left-map-span-diagram ๐’ฎ s)) --- ( ฮป _ โ†’ --- rec-โ„• --- ( raise-unit (lsuc (l1 โŠ” l2 โŠ” l3))) --- ( ฮป _ _ โ†’ --- ( codomain-span-diagram ๐’ฎ โ†’ --- span-diagram --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3)) ร— --- ( domain-span-diagram ๐’ฎ โ†’ --- span-diagram --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3))) --- ( n))))) - --- module _ --- {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) --- (aโ‚€ : domain-span-diagram ๐’ฎ) --- where - --- stage-zigzag-construction-id-pushout : --- (n : โ„•) โ†’ type-stage-zigzag-construction-id-pushout ๐’ฎ n --- stage-zigzag-construction-id-pushout zero-โ„• = --- Path-to-b , --- Path-to-a , --- ( ฮป s โ†’ raise-ex-falso _) , --- raise-star --- where --- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-b _ = raise-empty _ --- Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-a a = raise (l2 โŠ” l3) (aโ‚€ ๏ผ a) --- stage-zigzag-construction-id-pushout (succ-โ„• n) = --- Path-to-b , --- Path-to-a , --- ( ฮป s p โ†’ inr-pushout _ _ (s , refl , p)) , --- span-diagram-B , --- span-diagram-A --- where --- span-diagram-B : --- codomain-span-diagram ๐’ฎ โ†’ --- span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) --- span-diagram-B b = --- make-span-diagram --- ( pr2 โˆ˜ pr2) --- ( tot --- ( ฮป s โ†’ --- tot --- ( ฮป r (p : pr1 (stage-zigzag-construction-id-pushout n) b) โ†’ --- pr1 --- ( pr2 (pr2 (stage-zigzag-construction-id-pushout n))) --- ( s) --- ( tr (pr1 (stage-zigzag-construction-id-pushout n)) r p)))) --- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-b b = standard-pushout (span-diagram-B b) --- span-diagram-A : --- domain-span-diagram ๐’ฎ โ†’ --- span-diagram (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) (l1 โŠ” l2 โŠ” l3) --- span-diagram-A a = --- make-span-diagram --- ( pr2 โˆ˜ pr2) --- ( tot --- ( ฮป s โ†’ --- tot --- ( ฮป r (p : pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a) โ†’ --- inr-standard-pushout --- ( span-diagram-B (right-map-span-diagram ๐’ฎ s)) --- ( ( s) , --- ( refl) , --- ( tr --- ( pr1 (pr2 (stage-zigzag-construction-id-pushout n))) --- ( r) --- ( p)))))) --- Path-to-a : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-a a = standard-pushout (span-diagram-A a) - --- span-diagram-path-to-b : --- codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ --- span-diagram --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- span-diagram-path-to-b b n = --- pr1 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) b - --- span-diagram-path-to-a : --- domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ --- span-diagram --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- ( l1 โŠ” l2 โŠ” l3) --- span-diagram-path-to-a a n = --- pr2 (pr2 (pr2 (pr2 (stage-zigzag-construction-id-pushout (succ-โ„• n))))) a - --- Path-to-b : codomain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-b b n = pr1 (stage-zigzag-construction-id-pushout n) b - --- Path-to-a : domain-span-diagram ๐’ฎ โ†’ โ„• โ†’ UU (l1 โŠ” l2 โŠ” l3) --- Path-to-a a n = pr1 (pr2 (stage-zigzag-construction-id-pushout n)) a - --- inl-Path-to-b : --- (b : codomain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-b b n โ†’ Path-to-b b (succ-โ„• n) --- inl-Path-to-b b n = --- inl-standard-pushout --- ( span-diagram-path-to-b b n) - --- inl-Path-to-a : --- (a : domain-span-diagram ๐’ฎ) (n : โ„•) โ†’ Path-to-a a n โ†’ Path-to-a a (succ-โ„• n) --- inl-Path-to-a a n = --- inl-standard-pushout --- ( span-diagram-path-to-a a n) - --- concat-inv-s : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- Path-to-b (right-map-span-diagram ๐’ฎ s) n โ†’ --- Path-to-a (left-map-span-diagram ๐’ฎ s) n --- concat-inv-s s n = pr1 (pr2 (pr2 (stage-zigzag-construction-id-pushout n))) s - --- concat-s : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- Path-to-a (left-map-span-diagram ๐’ฎ s) n โ†’ --- Path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) --- concat-s s n p = --- inr-standard-pushout --- ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) n) --- ( s , refl , p) - --- right-sequential-diagram-zigzag-id-pushout : --- codomain-span-diagram ๐’ฎ โ†’ --- sequential-diagram (l1 โŠ” l2 โŠ” l3) --- pr1 (right-sequential-diagram-zigzag-id-pushout b) = Path-to-b b --- pr2 (right-sequential-diagram-zigzag-id-pushout b) = inl-Path-to-b b - --- left-sequential-diagram-zigzag-id-pushout : --- domain-span-diagram ๐’ฎ โ†’ --- sequential-diagram (l1 โŠ” l2 โŠ” l3) --- pr1 (left-sequential-diagram-zigzag-id-pushout a) = Path-to-a a --- pr2 (left-sequential-diagram-zigzag-id-pushout a) = inl-Path-to-a a - --- zigzag-sequential-diagram-zigzag-id-pushout : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- zigzag-sequential-diagram --- ( left-sequential-diagram-zigzag-id-pushout --- ( left-map-span-diagram ๐’ฎ s)) --- ( shift-once-sequential-diagram --- ( right-sequential-diagram-zigzag-id-pushout --- ( right-map-span-diagram ๐’ฎ s))) --- pr1 (zigzag-sequential-diagram-zigzag-id-pushout s) = --- concat-s s --- pr1 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s)) n = --- concat-inv-s s (succ-โ„• n) --- pr1 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = --- glue-standard-pushout --- ( span-diagram-path-to-a (left-map-span-diagram ๐’ฎ s) n) --- ( s , refl , p) --- pr2 (pr2 (pr2 (zigzag-sequential-diagram-zigzag-id-pushout s))) n p = --- glue-standard-pushout --- ( span-diagram-path-to-b (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) --- ( s , refl , p) - --- left-id-pushout : domain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- left-id-pushout a = --- standard-sequential-colimit (left-sequential-diagram-zigzag-id-pushout a) - --- refl-id-pushout : left-id-pushout aโ‚€ --- refl-id-pushout = --- map-cocone-standard-sequential-colimit 0 (map-raise refl) - --- right-id-pushout : codomain-span-diagram ๐’ฎ โ†’ UU (l1 โŠ” l2 โŠ” l3) --- right-id-pushout b = --- standard-sequential-colimit (right-sequential-diagram-zigzag-id-pushout b) - --- equiv-id-pushout : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- left-id-pushout (left-map-span-diagram ๐’ฎ s) โ‰ƒ --- right-id-pushout (right-map-span-diagram ๐’ฎ s) --- equiv-id-pushout s = --- equiv-colimit-zigzag-sequential-diagram _ _ --- ( up-standard-sequential-colimit) --- ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) --- ( zigzag-sequential-diagram-zigzag-id-pushout s) - --- -- concat-inv-s-inf : --- -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- -- right-id-pushout (right-map-span-diagram ๐’ฎ s) โ†’ --- -- left-id-pushout (left-map-span-diagram ๐’ฎ s) --- -- concat-inv-s-inf s = --- -- map-inv-equiv (equiv-id-pushout s) - --- concat-s-inf : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- left-id-pushout (left-map-span-diagram ๐’ฎ s) โ†’ --- right-id-pushout (right-map-span-diagram ๐’ฎ s) --- concat-s-inf s = --- map-equiv (equiv-id-pushout s) - --- descent-data-zigzag-id-pushout : descent-data-pushout ๐’ฎ (l1 โŠ” l2 โŠ” l3) --- pr1 descent-data-zigzag-id-pushout = left-id-pushout --- pr1 (pr2 descent-data-zigzag-id-pushout) = right-id-pushout --- pr2 (pr2 descent-data-zigzag-id-pushout) = equiv-id-pushout --- ``` - --- ## Theorem - --- ### TODO - --- ```agda --- nat-lemma : --- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} --- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} --- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) --- {x y : A} {p : x ๏ผ y} --- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ --- coherence-square-maps --- ( tr P p) --- ( h x) --- ( h y) --- ( tr Q q) --- nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) - --- apd-lemma : --- {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} --- (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ --- apd (ฮป a โ†’ g a (f a)) p ๏ผ inv (preserves-tr g p (f x)) โˆ™ ap (g y) (apd f p) --- apd-lemma f g refl = refl - --- lem : --- {l : Level} {X : UU l} {x y z u v : X} โ†’ --- (p : y ๏ผ x) (q : y ๏ผ z) (r : z ๏ผ u) (s : x ๏ผ v) (t : u ๏ผ v) โ†’ --- (inv p โˆ™ (q โˆ™ r) ๏ผ s โˆ™ inv t) โ†’ q โˆ™ r โˆ™ t ๏ผ p โˆ™ s --- lem refl q r refl refl x = right-unit โˆ™ x - --- module _ --- {l1 l2 l3 l4 : Level} {๐’ฎ : span-diagram l1 l2 l3} --- {X : UU l4} {c : cocone-span-diagram ๐’ฎ X} --- (up-c : universal-property-pushout _ _ c) --- (aโ‚€ : domain-span-diagram ๐’ฎ) --- where - --- module _ --- {l5 : Level} --- (R : descent-data-pushout --- ( span-diagram-flattening-descent-data-pushout --- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€)) --- ( l5)) --- (rโ‚€ : left-family-descent-data-pushout R (aโ‚€ , refl-id-pushout ๐’ฎ aโ‚€)) --- where - --- private --- CB : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- concat-s-inf ๐’ฎ aโ‚€ s --- ( map-cocone-standard-sequential-colimit n p) ๏ผ --- map-cocone-standard-sequential-colimit (succ-โ„• n) --- ( concat-s ๐’ฎ aโ‚€ s n p) --- CB s = --- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- ( up-standard-sequential-colimit) --- ( shift-once-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s)))) --- ( hom-diagram-zigzag-sequential-diagram --- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - --- ฮจ : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) --- ฮจ s n p = --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s n p)) โˆ˜ --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p)) - --- ฮฆ : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , --- concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) --- ฮฆ s n p = --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ --- ( tr --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- ( glue-pushout _ _ (s , refl , p))) โˆ˜ --- ( tr --- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - --- ฮฆ' : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ฮฆ' s n p = --- ( inv-map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ --- ( ฮฆ s n p) - --- coh-dep-cocone-a : --- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- coherence-square-maps --- ( ( tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p))) โˆ˜ --- ( tr --- ( ev-pair --- ( left-family-descent-data-pushout R) --- ( left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p))) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p)) --- ( map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit (succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) --- ( ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ --- ( tr --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s n p))) --- coh-dep-cocone-a s n p = --- ( ( inv-htpy --- ( ( tr-concat _ _) โˆ™h --- ( ( tr _ _) ยทl --- ( ( tr-concat _ _) โˆ™h --- ( horizontal-concat-htpy --- ( ฮป _ โ†’ substitution-law-tr _ _ _) --- ( tr-concat _ _)))))) ยทr --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h --- ( nat-lemma --- ( concat-s-inf ๐’ฎ aโ‚€ s) --- ( ev-pair (map-family-descent-data-pushout R) s) --- ( [i] p)) โˆ™h --- ( ( map-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s --- ( succ-โ„• n) --- ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl --- ( ( tr-concat _ _) โˆ™h --- ( ฮป q โ†’ substitution-law-tr _ _ _))) --- where --- [i] : --- ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl --- ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h --- ( ( map-cocone-standard-sequential-colimit --- { A = --- left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ --- ( left-map-span-diagram ๐’ฎ s)} --- ( succ-โ„• n)) ยทl --- ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ --- ( ( CB s n) โˆ™h --- ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr --- ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h --- ( ( map-cocone-standard-sequential-colimit --- { A = --- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ --- ( right-map-span-diagram ๐’ฎ s)} --- ( succ-โ„• (succ-โ„• n))) ยทl --- ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h --- ( ( inv-htpy (CB s (succ-โ„• n))) ยทr --- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) --- [i] = --- ( distributive-left-whisker-comp-concat _ _ _) โˆ™h --- ( right-transpose-htpy-concat _ _ _ --- ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ --- ( ฮป p โ†’ --- inv --- ( nat-coherence-square-maps _ _ _ _ --- ( CB s (succ-โ„• n)) --- ( glue-pushout _ _ (s , refl , p))))) โˆ™h --- ( map-inv-equiv --- ( equiv-right-transpose-htpy-concat _ _ _) --- ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- ( up-standard-sequential-colimit) --- ( shift-once-cocone-sequential-diagram --- ( cocone-standard-sequential-colimit --- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ --- ( right-map-span-diagram ๐’ฎ s)))) --- ( hom-diagram-zigzag-sequential-diagram --- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) --- ( n)) โˆ™h --- ( ap-concat-htpy --- ( CB s n) --- ( ( ap-concat-htpy _ --- ( ( distributive-left-whisker-comp-concat --- ( map-cocone-standard-sequential-colimit --- { A = --- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ --- ( right-map-span-diagram ๐’ฎ s)} --- ( succ-โ„• (succ-โ„• n))) --- ( _) --- ( _)) โˆ™h --- ( ap-concat-htpy _ --- ( ( left-whisker-compยฒ _ --- ( left-whisker-inv-htpy _ _)) โˆ™h --- ( left-whisker-inv-htpy _ _))))) โˆ™h --- ( inv-htpy-assoc-htpy _ _ _))) โˆ™h --- ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h --- ( ap-concat-htpy' _ --- ( inv-htpy-assoc-htpy _ _ _)) - --- ฮฑ : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- coherence-square-maps --- ( ฮจ s n p) --- ( tr --- ( ev-pair --- ( left-family-descent-data-pushout R) --- ( left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p)) --- ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) --- ( tr --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( left-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( glue-pushout _ _ (s , refl , p))) --- ฮฑ s n p q = --- map-eq-transpose-equiv --- ( equiv-family-descent-data-pushout R --- ( s , --- map-cocone-standard-sequential-colimit --- ( succ-โ„• n) --- ( concat-inv-s ๐’ฎ aโ‚€ s --- ( succ-โ„• n) --- ( concat-s ๐’ฎ aโ‚€ s n p)))) --- ( inv (coh-dep-cocone-a s n p q)) - --- ฮฒ : --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (n : โ„•) โ†’ --- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ --- coherence-square-maps --- ( ฮฆ' s n p) --- ( tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) --- ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) --- ( tr --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( right-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- ( glue-pushout _ _ (s , refl , p))) --- ฮฒ s n p q = --- inv --- ( ( ap --- ( tr _ _) --- ( is-section-map-inv-equiv --- ( equiv-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) --- ( _)) โˆ™ --- ( is-section-map-inv-equiv --- ( equiv-tr _ _) --- ( _)))) - --- -- Note for refactoring: after contracting away the last component and the --- -- vertical map, the definition of prism2 will fail to typecheck, since --- -- currently the coherence computes to โˆ™ refl, which needs to be taken --- -- into account; contracting away this data would simplify the later --- -- homotopy algebra. --- stages-cocones' : --- (n : โ„•) โ†’ --- ฮฃ ( (b : codomain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram --- ( span-diagram-path-to-b ๐’ฎ aโ‚€ b n)) --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) --- ( ฮป dep-cocone-b โ†’ --- ฮฃ ( (a : domain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram --- ( span-diagram-path-to-a ๐’ฎ aโ‚€ a n)) --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit (succ-โ„• n) p))) --- ( ฮป dep-cocone-a โ†’ --- (s : spanning-type-span-diagram ๐’ฎ) โ†’ --- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ --- vertical-map-dependent-cocone _ _ _ _ --- ( dep-cocone-a (left-map-span-diagram ๐’ฎ s)) --- ( s , refl , p) ๏ผ --- ฮฆ' s n p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p))) --- stages-cocones' zero-โ„• = --- dep-cocone-b , --- dep-cocone-a , --- ฮป s p โ†’ refl --- where --- dep-cocone-b : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b 0)) --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit 1 p)) --- pr1 (dep-cocone-b b) (map-raise ()) --- pr1 (pr2 (dep-cocone-b ._)) (s , refl , map-raise refl) = --- tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s 0 (map-raise refl)) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit 0 (map-raise refl)) --- ( rโ‚€)) --- pr2 (pr2 (dep-cocone-b ._)) (s , refl , map-raise ()) --- dep-cocone-a : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a 0)) --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit 1 p)) --- pr1 (dep-cocone-a .aโ‚€) (map-raise refl) = --- tr --- ( ev-pair (left-family-descent-data-pushout R) aโ‚€) --- ( coherence-cocone-standard-sequential-colimit 0 (map-raise refl)) --- ( rโ‚€) --- pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = --- ฮฆ' s 0 p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) --- pr2 (pr2 (dep-cocone-a .aโ‚€)) (s , refl , map-raise refl) = --- ( ฮฑ s 0 (map-raise refl) rโ‚€) โˆ™ --- ( ap --- ( ฮฆ' s 0 _) --- ( inv --- ( compute-inr-dependent-cogap _ _ --- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) --- ( s , refl , map-raise refl)))) --- stages-cocones' (succ-โ„• n) = --- dep-cocone-b , --- dep-cocone-a , --- ฮป s p โ†’ refl --- where --- dep-cocone-b : --- (b : codomain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram (span-diagram-path-to-b ๐’ฎ aโ‚€ b (succ-โ„• n))) --- ( ฮป p โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- pr1 (dep-cocone-b b) p = --- tr --- ( ev-pair (right-family-descent-data-pushout R) b) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) --- ( dependent-cogap _ _ (pr1 (stages-cocones' n) b) p) --- pr1 (pr2 (dep-cocone-b b)) (s , refl , p) = --- tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s (succ-โ„• n) p) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) --- ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) p)) --- pr2 (pr2 (dep-cocone-b b)) (s , refl , p) = --- ( ฮฒ s n p _) โˆ™ --- ( ap --- ( ฮจ s (succ-โ„• n) _) --- ( inv --- ( ( compute-inr-dependent-cogap _ _ --- ( pr1 (pr2 (stages-cocones' n)) (left-map-span-diagram ๐’ฎ s)) --- ( s , refl , p)) โˆ™ --- ( pr2 (pr2 (stages-cocones' n)) s p)))) --- dep-cocone-a : --- (a : domain-span-diagram ๐’ฎ) โ†’ --- dependent-cocone-span-diagram --- ( cocone-pushout-span-diagram (span-diagram-path-to-a ๐’ฎ aโ‚€ a (succ-โ„• n))) --- ( ฮป p โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) --- pr1 (dep-cocone-a a) p = --- tr --- ( ev-pair (left-family-descent-data-pushout R) a) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) --- ( dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) p) --- pr1 (pr2 (dep-cocone-a a)) (s , refl , p) = --- ฮฆ' s (succ-โ„• n) p (dependent-cogap _ _ (dep-cocone-b (right-map-span-diagram ๐’ฎ s)) p) --- pr2 (pr2 (dep-cocone-a a)) (s , refl , p) = --- ( ฮฑ s (succ-โ„• n) p _) โˆ™ --- ( ap --- ( ฮฆ' s (succ-โ„• n) _) --- ( inv --- ( compute-inr-dependent-cogap _ _ --- ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) --- ( s , refl , p)))) - - --- tB : --- (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ --- right-family-descent-data-pushout R --- ( b , map-cocone-standard-sequential-colimit n p) --- tB b zero-โ„• (map-raise ()) --- tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) - --- tA : --- (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ --- left-family-descent-data-pushout R --- ( a , map-cocone-standard-sequential-colimit n p) --- tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ --- tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) - --- ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R --- pr1 ind-singleton-zigzag-id-pushout' (a , p) = --- dependent-cogap-standard-sequential-colimit --- ( tA a , KA) --- ( p) --- where --- KA : --- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ --- dependent-identification --- ( ev-pair (left-family-descent-data-pushout R) a) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tA a n p) --- ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) --- KA zero-โ„• (map-raise refl) = --- inv --- ( compute-inl-dependent-cogap _ _ --- ( pr1 (pr2 (stages-cocones' 0)) a) --- ( map-raise refl)) --- KA (succ-โ„• n) p = --- inv --- ( compute-inl-dependent-cogap _ _ --- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) --- ( p)) --- pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = --- dependent-cogap-standard-sequential-colimit --- ( tB b , KB) --- ( p) --- where --- KB : --- (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ --- dependent-identification --- ( ev-pair (right-family-descent-data-pushout R) b) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tB b n p) --- ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) --- KB zero-โ„• (map-raise ()) --- KB (succ-โ„• n) p = --- inv --- ( compute-inl-dependent-cogap _ _ --- ( pr1 (stages-cocones' (succ-โ„• n)) b) --- ( p)) --- pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = --- dependent-cogap-standard-sequential-colimit --- ( tS , KS) --- ( p) --- where --- [i] : --- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s n p) --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ --- tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) --- [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) --- [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) --- tS : --- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p) --- ( pr1 --- ( ind-singleton-zigzag-id-pushout') --- ( left-map-span-diagram ๐’ฎ s , --- map-cocone-standard-sequential-colimit n p)) ๏ผ --- pr1 --- ( pr2 ind-singleton-zigzag-id-pushout') --- ( right-map-span-diagram ๐’ฎ s , --- concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) --- tS n p = --- ( ap --- ( map-family-descent-data-pushout R --- ( s , map-cocone-standard-sequential-colimit n p)) --- ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ --- ( map-equiv --- ( inv-equiv-ap-emb --- ( emb-equiv --- ( equiv-tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( CB s n p)))) --- ( [i] n p โˆ™ --- inv --- ( ( apd --- ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) --- ( CB s n p)) โˆ™ --- ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) --- KS : --- (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- tr --- ( ฮป p โ†’ --- map-family-descent-data-pushout R --- ( s , p) --- ( pr1 --- ( ind-singleton-zigzag-id-pushout') --- ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ --- pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) --- ( coherence-cocone-standard-sequential-colimit n p) --- ( tS n p) ๏ผ --- tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) --- KS n p = --- map-compute-dependent-identification-eq-value _ _ --- ( coherence-cocone-standard-sequential-colimit n p) --- ( _) --- ( _) --- ( {!!}) - --- tS-in-diagram : --- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- ( tr (ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) --- ( CB s n p) --- ( map-family-descent-data-pushout R _ (tA (left-map-span-diagram ๐’ฎ s) n p))) ๏ผ --- ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) --- tS-in-diagram s zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) --- tS-in-diagram s (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) - --- module vertices --- (s : spanning-type-span-diagram ๐’ฎ) --- where --- PAn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) --- PAn = Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) --- QAn : {n : โ„•} โ†’ PAn n โ†’ UU l5 --- QAn {n} p = left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) --- PBn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) --- PBn = Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• --- QBn : {n : โ„•} โ†’ PBn n โ†’ UU l5 --- QBn {n} p = right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) --- fn : {n : โ„•} โ†’ PAn n โ†’ PBn n --- fn = concat-s ๐’ฎ aโ‚€ s _ --- gn : {n : โ„•} โ†’ PAn n โ†’ PAn (succ-โ„• n) --- gn = inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) _ --- hn : {n : โ„•} โ†’ PBn n โ†’ PBn (succ-โ„• n) --- hn = inl-Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) _ --- mn : {n : โ„•} โ†’ PBn n โ†’ PAn (succ-โ„• n) --- mn {n} = concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) --- sAn : {n : โ„•} (p : PAn n) โ†’ QAn p --- sAn = tA (left-map-span-diagram ๐’ฎ s) _ --- sBn : {n : โ„•} (p : PBn n) โ†’ QBn p --- sBn = tB (right-map-span-diagram ๐’ฎ s) _ --- f'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QBn (fn p) --- f'n {n} {p} = ฮจ s n p --- g'n : {n : โ„•} {p : PAn n} โ†’ QAn p โ†’ QAn (gn p) --- g'n {n} {p} = --- tr --- ( ev-pair --- ( left-family-descent-data-pushout R) --- ( left-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit n p) --- h'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QBn (hn p) --- h'n {n} {p} = --- tr --- ( ev-pair --- ( right-family-descent-data-pushout R) --- ( right-map-span-diagram ๐’ฎ s)) --- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p) --- m'n : {n : โ„•} {p : PBn n} โ†’ QBn p โ†’ QAn (mn p) --- m'n = ฮฆ' s _ _ - --- module sides --- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) --- where --- open vertices s --- left : --- {p : PAn n} โ†’ f'n (sAn p) ๏ผ sBn (fn p) --- left = tS-in-diagram s n _ --- right : --- {p : PAn (succ-โ„• n)} โ†’ --- f'n (sAn p) ๏ผ sBn (fn p) --- right = tS-in-diagram s (succ-โ„• n) _ --- bottom : --- {p : PAn n} โ†’ hn (fn p) ๏ผ fn (gn p) --- bottom = --- naturality-map-hom-diagram-zigzag-sequential-diagram --- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) --- ( n) --- ( _) --- bottom1 : --- {p : PAn n} โ†’ gn p ๏ผ mn (fn p) --- bottom1 = glue-pushout _ _ _ --- bottom2 : --- {p : PBn n} โ†’ hn p ๏ผ fn (mn p) --- bottom2 = glue-pushout _ _ _ --- far : --- {p : PAn n} โ†’ g'n (sAn p) ๏ผ sAn (gn p) --- far = far' n _ --- where --- far' : (n : โ„•) (p : PAn n) โ†’ g'n (sAn p) ๏ผ sAn (gn p) --- far' zero-โ„• (map-raise refl) = inv (compute-inl-dependent-cogap _ _ _ _) --- far' (succ-โ„• n) p = inv (compute-inl-dependent-cogap _ _ _ _) --- near : --- {p : PBn n} โ†’ h'n (sBn p) ๏ผ sBn (hn p) --- near = inv (compute-inl-dependent-cogap _ _ _ _) --- mid : --- {p : PBn n} โ†’ m'n (sBn p) ๏ผ sAn (mn p) --- mid = mid' _ _ --- where --- mid' : (n : โ„•) (p : PBn n) โ†’ m'n (sBn p) ๏ผ sAn (mn p) --- mid' zero-โ„• p = inv (compute-inr-dependent-cogap _ _ _ _) --- mid' (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) --- top1 : --- {p : PAn n} (q : QAn p) โ†’ --- tr QAn bottom1 (g'n q) ๏ผ m'n (f'n q) --- top1 = ฮฑ s n _ --- top2 : --- {p : PBn n} (q : QBn p) โ†’ --- tr QBn bottom2 (h'n q) ๏ผ f'n (m'n q) --- top2 = ฮฒ s n _ --- top : --- {p : PAn n} (q : QAn p) โ†’ --- tr QBn bottom (h'n (f'n q)) ๏ผ f'n (g'n q) --- top = {!!} - --- module CUBE --- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) --- where --- open vertices s --- open sides s n - --- CUBE : (p : PAn n) โ†’ UU _ --- CUBE p = --- ( top (sAn p) โˆ™ ap f'n far โˆ™ right) ๏ผ --- ( ap (tr QBn bottom โˆ˜ h'n) left โˆ™ --- ap (tr QBn bottom) near โˆ™ --- apd sBn bottom) - --- PRISM1 : (p : PAn n) โ†’ UU _ --- PRISM1 p = --- ( top1 (sAn p) โˆ™ ap m'n left โˆ™ mid) ๏ผ --- ( ap (tr QAn bottom1) far โˆ™ apd sAn bottom1) - --- PRISM2 : (p : PBn n) โ†’ UU _ --- PRISM2 p = --- top2 (sBn p) โˆ™ ap f'n mid โˆ™ right ๏ผ --- ap (tr QBn bottom2) near โˆ™ apd sBn bottom2 - --- module cube --- (s : spanning-type-span-diagram ๐’ฎ) --- where abstract --- open vertices s --- open sides s --- open CUBE s - --- -- THE COMMENTED CODE WORKS, DON'T DELETE IT! --- -- It just takes too long to typecheck it in its current state --- prism1 : (n : โ„•) โ†’ (p : PAn n) โ†’ PRISM1 n p --- prism1 = {!!} --- -- prism1 zero-โ„• (map-raise refl) = --- -- lem _ _ _ _ _ --- -- ( ( ap --- -- ( _โˆ™ (top1 0 (sAn _) โˆ™ ap m'n (left 0))) --- -- ( ( inv (ap-inv (tr QAn (bottom1 0)) (far 0))) โˆ™ --- -- ( apยฒ (tr QAn (bottom1 0)) (inv-inv _)))) โˆ™ --- -- ( [i]) โˆ™ --- -- ( ap --- -- ( apd sAn (bottom1 0) โˆ™_) --- -- ( inv (inv-inv _)))) --- -- where --- -- open import foundation.action-on-higher-identifications-functions --- -- [i] = --- -- inv --- -- ( compute-glue-dependent-cogap _ _ --- -- ( pr1 (pr2 (stages-cocones' 0)) (left-map-span-diagram ๐’ฎ s)) --- -- ( s , refl , (map-raise refl))) --- -- prism1 (succ-โ„• n) p = --- -- lem _ _ _ _ _ --- -- ( ( ap --- -- ( _โˆ™ (top1 (succ-โ„• n) (sAn _) โˆ™ ap m'n (left (succ-โ„• n)))) --- -- ( ( inv (ap-inv (tr QAn (bottom1 (succ-โ„• n))) (far (succ-โ„• n)))) โˆ™ --- -- ( apยฒ (tr QAn (bottom1 (succ-โ„• n))) (inv-inv _)))) โˆ™ --- -- ( [i]) โˆ™ --- -- ( ap --- -- ( apd sAn (bottom1 (succ-โ„• n)) โˆ™_) --- -- ( inv (inv-inv _)))) --- -- where --- -- open import foundation.action-on-higher-identifications-functions --- -- [i] = --- -- inv --- -- ( compute-glue-dependent-cogap _ _ --- -- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) (left-map-span-diagram ๐’ฎ s)) --- -- ( s , refl , p)) - --- prism2 : (n : โ„•) โ†’ (p : PBn n) โ†’ PRISM2 n p --- prism2 = {!!} --- -- prism2 0 p = --- -- lem _ _ _ _ _ --- -- ( ( ap --- -- ( _โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (mid 0))) --- -- ( ( inv (ap-inv (tr QBn (bottom2 0)) (near 0))) โˆ™ --- -- ( apยฒ (tr (QBn {1}) (bottom2 0)) (inv-inv _)))) โˆ™ --- -- ( inv [ii]) โˆ™ --- -- ( ap --- -- ( apd sBn (bottom2 0) โˆ™_) --- -- ( inv (inv-inv _)))) --- -- where --- -- open import foundation.action-on-higher-identifications-functions --- -- [i] = --- -- -- inv --- -- ( compute-glue-dependent-cogap _ _ --- -- ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) --- -- ( s , refl , p)) --- -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (inv q))) right-unit --- -- prism2 (succ-โ„• n) p = --- -- lem _ _ _ _ _ --- -- ( ( ap --- -- ( _โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (mid (succ-โ„• n)))) --- -- ( ( inv (ap-inv (tr QBn (bottom2 (succ-โ„• n))) (near (succ-โ„• n)))) โˆ™ --- -- ( apยฒ (tr QBn (bottom2 (succ-โ„• n))) (inv-inv _)))) โˆ™ --- -- ( inv [ii]) โˆ™ --- -- ( ap --- -- ( apd sBn (bottom2 (succ-โ„• n)) โˆ™_) --- -- ( inv (inv-inv _)))) --- -- where --- -- open import foundation.action-on-higher-identifications-functions --- -- [i] = --- -- -- inv --- -- ( compute-glue-dependent-cogap _ _ --- -- ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) --- -- ( s , refl , p)) --- -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) right-unit - --- cube : --- (n : โ„•) โ†’ (p : PAn n) โ†’ CUBE n p --- cube = {!!} - --- KS-in-diagram : --- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ --- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ --- sides.top s n (vertices.sAn s p) โˆ™ --- ap (vertices.f'n s) (sides.far s n) --- โˆ™ sides.right s n --- ๏ผ --- ap (tr (vertices.QBn s) (sides.bottom s n) โˆ˜ vertices.h'n s) --- (sides.left s n) --- โˆ™ ap (tr (vertices.QBn s) (sides.bottom s n)) (sides.near s n) --- โˆ™ apd (vertices.sBn s) (sides.bottom s n) --- KS-in-diagram = cube.cube - --- is-identity-system-zigzag-id-pushout : --- is-identity-system-descent-data-pushout --- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) --- ( refl-id-pushout ๐’ฎ aโ‚€) --- is-identity-system-zigzag-id-pushout = --- is-identity-system-descent-data-pushout-ind-singleton up-c --- ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) --- ( refl-id-pushout ๐’ฎ aโ‚€) --- ( ind-singleton-zigzag-id-pushout') --- ``` From b12c102a3b81d09f63d4fa6958b2ba240ce6ff30 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 16 Jan 2025 23:38:10 +0100 Subject: [PATCH 14/33] Paste prisms into cubes --- ...nstruction-identity-type-pushouts.lagda.md | 116 ++++++++++++++++-- 1 file changed, 104 insertions(+), 12 deletions(-) diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index 0c756569a9..daa3941fdb 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -224,6 +224,58 @@ module _ H' (sA a) โˆ™ G a ๏ผ ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + where + + inv-section-htpy-over : + section-htpy-over H H' sA sB F G โ†’ + section-htpy-over + ( inv-htpy H) + ( inv-htpy-over B' H f' g' H') + ( sA) + ( sB) + ( G) + ( F) + inv-section-htpy-over ฮฑ = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ + (H' : htpy-over B' H f' g') โ†’ + (G : section-map-over g g' sA sB) โ†’ + section-htpy-over H H' sA sB F G โ†’ + section-htpy-over + ( inv-htpy H) + ( inv-htpy-over B' H f' g' H') + sA sB G F) + ( ฮป H' G ฮฑ a โ†’ + ind-htpy f' + ( ฮป g'a H'a โ†’ + (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ + (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ + map-eq-transpose-equiv-inv (equiv-tr B' refl) (inv (H'a (sA a))) โˆ™ F a ๏ผ + ap (tr B' refl) Ga โˆ™ apd sB refl) + ( ฮป Ga ฮฑa โ†’ + ap (_โˆ™ F a) (compute-refl-eq-transpose-equiv-inv (equiv-tr B' refl)) โˆ™ + inv (right-unit โˆ™ ap-id _ โˆ™ (ฮฑa โˆ™ right-unit โˆ™ ap-id _))) + ( H') + ( G a) + ( ฮฑ a)) + ( H) + ( H') + ( G) + ( ฮฑ) + module _ {l1 l2 l3 l4 l5 l6 l7 l8 : Level} {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} @@ -487,6 +539,27 @@ module _ H' (sA a) โˆ™ G a ๏ผ ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a) + + open import foundation.functoriality-dependent-function-types + equiv-get-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-triangle-over' H H' โ‰ƒ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) + equiv-get-section-triangle-over' H H' = + equiv-ฮ -equiv-family + ( ฮป a โ†’ + equiv-concat' + ( H' (sA a) โˆ™ G a) + ( ap + ( _โˆ™ apd sX (H a)) + ( ( ap + ( _โˆ™ ap (tr X' (H a)) (M (f a))) + ( ap-comp (tr X' (H a)) m' (F a))) โˆ™ + ( inv (ap-concat (tr X' (H a)) (ap m' (F a)) (M (f a))))))) + unget-section-triangle-over' : (H : coherence-triangle-maps' g m f) โ†’ (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ @@ -494,15 +567,18 @@ module _ section-htpy-over H H' sA sX ( comp-section-map-over m f m' f' sA sB sX M F) ( G) - unget-section-triangle-over' H H' ฮฑ = - ฮฑ โˆ™h - ( ฮป a โ†’ - ap - ( _โˆ™ apd sX (H a)) - ( ( ap - ( _โˆ™ ap (tr X' (H a)) (M (f a))) - ( ap-comp (tr X' (H a)) m' (F a))) โˆ™ - ( inv (ap-concat (tr X' (H a)) (ap m' (F a)) (M (f a)))))) + unget-section-triangle-over' H H' = + map-equiv (equiv-get-section-triangle-over' H H') + + get-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) โ†’ + section-triangle-over' H H' + get-section-triangle-over' H H' = + map-inv-equiv (equiv-get-section-triangle-over' H H') -- actually โ‰ section-triangle-over ๐Ÿค” -- section-triangle-over-inv : @@ -1637,10 +1713,26 @@ module _ ( ฮป p โ†’ mid n {p}) ( inv-htpy (ฮป p โ†’ bottom1 n {p})) ( ฮป p โ†’ bottom2 n {p}) - ( {!inv-htpy-over!}) + ( inv-htpy-over QAn (ฮป p โ†’ bottom1 n {p}) g'n (m'n โˆ˜ f'n) (top1 n)) ( top2 n) - ( {!!}) - ( {!!}) + ( get-section-triangle-over' fn gn mn f'n g'n m'n sAn sBn sAn + ( ฮป p โ†’ left n {p}) + ( ฮป p โ†’ far n {p}) + ( ฮป p โ†’ mid n {p}) + ( inv-htpy (ฮป p โ†’ bottom1 n {p})) + ( inv-htpy-over QAn (ฮป p โ†’ bottom1 n {p}) g'n (m'n โˆ˜ f'n) (top1 n)) + ( inv-section-htpy-over + ( ฮป p โ†’ bottom1 n {p}) + ( top1 n) + sAn sAn _ _ + (unget-section-triangle-over fn gn mn f'n g'n m'n sAn sBn sAn + ( ฮป p โ†’ left n {p}) + ( ฮป p โ†’ far n {p}) + ( ฮป p โ†’ mid n {p}) + ( ฮป p โ†’ bottom1 n {p}) + ( top1 n) + ( prism1 n)))) + ( prism2 n) KS-in-diagram : (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ From a8d452a5e3bcb7cafae95388b9dbe9031f5db60a Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Fri, 17 Jan 2025 14:56:15 +0100 Subject: [PATCH 15/33] Move stuff-over --- .../stuff-over.lagda.md | 664 ++++++++++++++++++ ...nstruction-identity-type-pushouts.lagda.md | 637 +---------------- 2 files changed, 666 insertions(+), 635 deletions(-) create mode 100644 src/synthetic-homotopy-theory/stuff-over.lagda.md diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md new file mode 100644 index 0000000000..3e74048c0c --- /dev/null +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -0,0 +1,664 @@ +# Stuff over other stuff + +```agda +module synthetic-homotopy-theory.stuff-over where +``` + +
Imports + +```agda +open import foundation.action-on-identifications-dependent-functions +open import foundation.action-on-identifications-functions +open import foundation.commuting-squares-of-maps +open import foundation.commuting-triangles-of-maps +open import foundation.dependent-identifications +open import foundation.equivalences +open import foundation.function-extensionality +open import foundation.function-types +open import foundation.functoriality-dependent-function-types +open import foundation.homotopies +open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.transport-along-identifications +open import foundation.transposition-identifications-along-equivalences +open import foundation.universe-levels +open import foundation.whiskering-homotopies-composition +open import foundation.whiskering-homotopies-concatenation +``` + +
+ +```agda +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) + {f g : A โ†’ B} + (H : f ~ g) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ B' (g a)) + where + + htpy-over : UU (l1 โŠ” l3 โŠ” l4) + htpy-over = {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) + {f g : A โ†’ B} + (H : f ~ g) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ B' (g a)) + where + + inv-htpy-over : htpy-over B' H f' g' โ†’ htpy-over B' (inv-htpy H) g' f' + inv-htpy-over H' a' = + map-eq-transpose-equiv-inv (equiv-tr B' (H _)) (inv (H' a')) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (s : X โ†’ A) (s' : {x : X} โ†’ X' x โ†’ A' (s x)) + where + + right-whisk-htpy-over : htpy-over B' (H ยทr s) (f' โˆ˜ s') (g' โˆ˜ s') + right-whisk-htpy-over a' = H' (s' a') + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + where + + LWMOTIF : {a : A} (a' : A' a) (g : A โ†’ B) (H : f ~ g) โ†’ UU (l5 โŠ” l6) + LWMOTIF {a} a' g H = + {g'a' : B' (g a)} โ†’ + (H' : tr B' (H a) (f' a') ๏ผ g'a') โ†’ + tr X' (ap s (H a)) (s' (f' a')) ๏ผ s' (g'a') + + left-whisk-htpy-over : htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g') + left-whisk-htpy-over {a} a' = + ind-htpy f + ( LWMOTIF a') + ( ap s') + ( H) + ( H' a') + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f : A โ†’ B} + {f' g' : {a : A} โ†’ A' a โ†’ B' (f a)} + (H' : {a : A} โ†’ f' {a} ~ g') + {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + where + + compute-left-whisk-htpy-over : + {a : A} (a' : A' a) โ†’ + left-whisk-htpy-over {B' = B'} {X' = X'} {f = f} refl-htpy H' s' a' ๏ผ ap s' (H' a') + compute-left-whisk-htpy-over a' = + htpy-eq + ( htpy-eq-implicit + ( compute-ind-htpy f + ( LWMOTIF {B' = B'} {X' = X'} refl-htpy H' s' a') + ( ap s')) + ( g' a')) + ( H' a') + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g h : A โ†’ B} + (H : f ~ g) (K : g ~ h) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {h' : {a : A} โ†’ A' a โ†’ B' (h a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' h') + where + + concat-htpy-over : htpy-over B' (H โˆ™h K) f' h' + concat-htpy-over {a} a' = + concat-dependent-identification B' (H a) (K a) (H' a') (K' a') + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + (f : A โ†’ B) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + where + + section-map-over : UU (l1 โŠ” l4) + section-map-over = (a : A) โ†’ f' (sA a) ๏ผ sB (f a) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} + (g : B โ†’ C) (f : A โ†’ B) + (g' : {b : B} โ†’ B' b โ†’ C' (g b)) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) + where + + comp-section-map-over : + section-map-over g g' sB sC โ†’ section-map-over f f' sA sB โ†’ + section-map-over (g โˆ˜ f) (g' โˆ˜ f') sA sC + comp-section-map-over G F = + g' ยทl F โˆ™h G ยทr f + + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + where + + section-htpy-over : UU (l1 โŠ” l4) + section-htpy-over = + (a : A) โ†’ + H' (sA a) โˆ™ G a ๏ผ + ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + where + + inv-section-htpy-over : + section-htpy-over H H' sA sB F G โ†’ + section-htpy-over + ( inv-htpy H) + ( inv-htpy-over B' H f' g' H') + ( sA) + ( sB) + ( G) + ( F) + inv-section-htpy-over ฮฑ = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ + (H' : htpy-over B' H f' g') โ†’ + (G : section-map-over g g' sA sB) โ†’ + section-htpy-over H H' sA sB F G โ†’ + section-htpy-over + ( inv-htpy H) + ( inv-htpy-over B' H f' g' H') + sA sB G F) + ( ฮป H' G ฮฑ a โ†’ + ind-htpy f' + ( ฮป g'a H'a โ†’ + (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ + (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ + map-eq-transpose-equiv-inv (equiv-tr B' refl) (inv (H'a (sA a))) โˆ™ F a ๏ผ + ap (tr B' refl) Ga โˆ™ apd sB refl) + ( ฮป Ga ฮฑa โ†’ + ap (_โˆ™ F a) (compute-refl-eq-transpose-equiv-inv (equiv-tr B' refl)) โˆ™ + inv (right-unit โˆ™ ap-id _ โˆ™ (ฮฑa โˆ™ right-unit โˆ™ ap-id _))) + ( H') + ( G a) + ( ฮฑ a)) + ( H) + ( H') + ( G) + ( ฮฑ) + +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + {A' : A โ†’ UU l5} {B' : B โ†’ UU l6} {C' : C โ†’ UU l7} {D' : D โ†’ UU l8} + {f : A โ†’ B} {g : B โ†’ C} {h : C โ†’ D} + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {b : B} โ†’ B' b โ†’ C' (g b)) + (h' : {c : C} โ†’ C' c โ†’ D' (h c)) + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (sC : (c : C) โ†’ C' c) + (sD : (d : D) โ†’ D' d) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sB sC) + (H : section-map-over h h' sC sD) + where + + assoc-comp-section-map-over : + section-htpy-over + ( refl-htpy {f = h โˆ˜ g โˆ˜ f}) + ( refl-htpy {f = h' โˆ˜ g' โˆ˜ f'}) + sA sD + ( comp-section-map-over (h โˆ˜ g) f (h' โˆ˜ g') f' sA sB sD + ( comp-section-map-over h g h' g' sB sC sD H G) + ( F)) + ( comp-section-map-over h (g โˆ˜ f) h' (g' โˆ˜ f') sA sC sD H + ( comp-section-map-over g f g' f' sA sB sC G F)) + assoc-comp-section-map-over = + inv-htpy + ( right-unit-htpy โˆ™h + left-unit-law-left-whisker-comp _ โˆ™h + inv-htpy-assoc-htpy ((h' โˆ˜ g') ยทl F) (h' ยทl G ยทr f) (H ยทr (g โˆ˜ f)) โˆ™h + right-whisker-concat-htpy + ( ( right-whisker-concat-htpy + ( inv-preserves-comp-left-whisker-comp h' g' F) + ( h' ยทl G ยทr f)) โˆ™h + ( inv-htpy + ( distributive-left-whisker-comp-concat h' + ( g' ยทl F) + ( G ยทr f)))) + ( H ยทr g ยทr f)) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (s : X โ†’ A) + (s' : {x : X} โ†’ X' x โ†’ A' (s x)) + (sX : (x : X) โ†’ X' x) + (S : section-map-over s s' sX sA) + where + + right-whisk-section-htpy-over : + section-htpy-over (H ยทr s) + ( right-whisk-htpy-over H H' s s') + sX sB + ( comp-section-map-over f s f' s' sX sA sB F S) + ( comp-section-map-over g s g' s' sX sA sB G S) + right-whisk-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ + section-htpy-over (H ยทr s) + ( right-whisk-htpy-over H H' s s') + sX sB + ( comp-section-map-over f s f' s' sX sA sB F S) + ( comp-section-map-over g s g' s' sX sA sB G S)) + ( ฮป H' G ฮฑ x โ†’ + ind-htpy (f' {s x}) + ( ฮป g'sx H'sx โ†’ + (Gsx : g'sx (sA (s x)) ๏ผ sB (f (s x))) + (ฮฑsx : H'sx (sA (s x)) โˆ™ Gsx ๏ผ ap (tr B' refl) (F (s x)) โˆ™ apd sB refl) โ†’ + H'sx (s' (sX x)) โˆ™ ((ap g'sx (S x)) โˆ™ Gsx) ๏ผ + ap (tr B' refl) (ap f' (S x) โˆ™ (F (s x))) โˆ™ apd sB refl) + ( ฮป Gsx ฮฑsx โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (ap f' (S x) โˆ™_) (inv (ฮฑsx โˆ™ (right-unit โˆ™ ap-id _)))))) + ( H') + ( G (s x)) + ( ฮฑ (s x))) + ( H) + ( H') + ( G) + ( ฮฑ) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + {f g : A โ†’ B} + (H : f ~ g) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + (H' : htpy-over B' H f' g') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (s : B โ†’ X) + (s' : {b : B} โ†’ B' b โ†’ X' (s b)) + (sX : (x : X) โ†’ X' x) + (S : section-map-over s s' sB sX) + where + + left-whisk-section-htpy-over : + section-htpy-over (s ยทl H) + ( left-whisk-htpy-over H H' s') + sA sX + ( comp-section-map-over s f s' f' sA sB sX S F) + ( comp-section-map-over s g s' g' sA sB sX S G) + left-whisk-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ + (H' : htpy-over B' H f' g') + (G : section-map-over g g' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ + section-htpy-over (s ยทl H) + ( left-whisk-htpy-over H H' s') + sA sX + ( comp-section-map-over s f s' f' sA sB sX S F) + ( comp-section-map-over s g s' g' sA sB sX S G)) + ( ฮป H' G ฮฑ a โ†’ + ap (_โˆ™ (ap s' (G a) โˆ™ S (f a))) + ( compute-left-whisk-htpy-over H' s' (sA a)) โˆ™ + ind-htpy f' + ( ฮป g'a H'a โ†’ + (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ + (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ + ap s' (H'a (sA a)) โˆ™ (ap s' Ga โˆ™ S (f a)) ๏ผ ap (tr X' refl) (ap s' (F a) โˆ™ S (f a)) โˆ™ apd sX refl) + ( ฮป Ga ฮฑa โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (_โˆ™ S (f a)) (inv (ap (ap s') (ฮฑa โˆ™ (right-unit โˆ™ ap-id _))))))) + ( H') + ( G a) + ( ฮฑ a)) + ( H) + ( H') + ( G) + ( ฮฑ) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f g i : A โ†’ B} + (H : f ~ g) (K : g ~ i) + {f' : {a : A} โ†’ A' a โ†’ B' (f a)} + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {i' : {a : A} โ†’ A' a โ†’ B' (i a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') + (sA : (a : A) โ†’ A' a) + (sB : (b : B) โ†’ B' b) + (F : section-map-over f f' sA sB) + (G : section-map-over g g' sA sB) + (I : section-map-over i i' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (ฮฒ : section-htpy-over K K' sA sB G I) + where + + concat-section-htpy-over : + section-htpy-over + ( H โˆ™h K) + ( concat-htpy-over H K H' K') + ( sA) + ( sB) + ( F) + ( I) + concat-section-htpy-over = + ind-htpy f + ( ฮป g H โ†’ + {i : A โ†’ B} (K : g ~ i) + {g' : {a : A} โ†’ A' a โ†’ B' (g a)} + {i' : {a : A} โ†’ A' a โ†’ B' (i a)} + (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') + (G : section-map-over g g' sA sB) + (I : section-map-over i i' sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) + (ฮฒ : section-htpy-over K K' sA sB G I) โ†’ + section-htpy-over + ( H โˆ™h K) + ( concat-htpy-over H K H' K') + sA sB F I) + ( ฮป K H' K' G I ฮฑ ฮฒ a โ†’ + ind-htpy (f' {a}) + ( ฮป g'a H' โ†’ + {ia : B} (K : f a ๏ผ ia) + {i'a : A' a โ†’ B' ia} + (K' : (a' : A' a) โ†’ dependent-identification B' K (g'a a') (i'a a')) + (G : g'a (sA a) ๏ผ sB (f a)) + (I : i'a (sA a) ๏ผ sB ia) + (ฮฑ : H' (sA a) โˆ™ G ๏ผ ap id (F a) โˆ™ refl) + (ฮฒ : K' (sA a) โˆ™ I ๏ผ ap (tr B' K) G โˆ™ apd sB K) โ†’ + concat-dependent-identification B' refl K (H' (sA a)) (K' (sA a)) โˆ™ I ๏ผ + ap (tr B' K) (F a) โˆ™ apd sB K) + ( ฮป K K' G I ฮฑ ฮฒ โ†’ ฮฒ โˆ™ ap (ฮป p โ†’ ap (tr B' K) p โˆ™ apd sB K) (ฮฑ โˆ™ (right-unit โˆ™ ap-id (F a)))) + ( H' {a}) + ( K a) + ( K' {a}) + ( G a) + ( I a) + ( ฮฑ a) + ( ฮฒ a)) + ( H) + ( K) + ( H') + ( K') + ( G) + ( I) + ( ฮฑ) + ( ฮฒ) + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} + (f : A โ†’ B) (g : A โ†’ X) (m : B โ†’ X) + (f' : {a : A} โ†’ A' a โ†’ B' (f a)) + (g' : {a : A} โ†’ A' a โ†’ X' (g a)) + (m' : {b : B} โ†’ B' b โ†’ X' (m b)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sX : (x : X) โ†’ X' x) + (F : (a : A) โ†’ f' (sA a) ๏ผ sB (f a)) + (G : (a : A) โ†’ g' (sA a) ๏ผ sX (g a)) + (M : (b : B) โ†’ m' (sB b) ๏ผ sX (m b)) + where + + section-triangle-over : + (H : coherence-triangle-maps g m f) โ†’ + (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ + UU (l1 โŠ” l6) + section-triangle-over H H' = + (a : A) โ†’ + H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + + unget-section-triangle-over : + (H : coherence-triangle-maps g m f) โ†’ + (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ + section-triangle-over H H' โ†’ + section-htpy-over H H' sA sX G + ( comp-section-map-over m f m' f' sA sB sX M F) + unget-section-triangle-over H H' ฮฑ = + inv-htpy-assoc-htpy (H' ยทr sA) (m' ยทl F) (M ยทr f) โˆ™h ฮฑ + + section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + UU (l1 โŠ” l6) + section-triangle-over' H H' = + (a : A) โ†’ + H' (sA a) โˆ™ G a ๏ผ + ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a) + + + equiv-get-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-triangle-over' H H' โ‰ƒ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) + equiv-get-section-triangle-over' H H' = + equiv-ฮ -equiv-family + ( ฮป a โ†’ + equiv-concat' + ( H' (sA a) โˆ™ G a) + ( ap + ( _โˆ™ apd sX (H a)) + ( ( ap + ( _โˆ™ ap (tr X' (H a)) (M (f a))) + ( ap-comp (tr X' (H a)) m' (F a))) โˆ™ + ( inv (ap-concat (tr X' (H a)) (ap m' (F a)) (M (f a))))))) + + unget-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-triangle-over' H H' โ†’ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) + unget-section-triangle-over' H H' = + map-equiv (equiv-get-section-triangle-over' H H') + + get-section-triangle-over' : + (H : coherence-triangle-maps' g m f) โ†’ + (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ + section-htpy-over H H' sA sX + ( comp-section-map-over m f m' f' sA sB sX M F) + ( G) โ†’ + section-triangle-over' H H' + get-section-triangle-over' H H' = + map-inv-equiv (equiv-get-section-triangle-over' H H') + + -- actually โ‰ section-triangle-over ๐Ÿค” + -- section-triangle-over-inv : + -- (H : coherence-triangle-maps g m f) โ†’ + -- (H' : {a : A} (a' : A' a) โ†’ dependent-identification X' (H a) (g' a') (m' (f' a'))) โ†’ + -- UU (l1 โŠ” l6) + -- section-triangle-over-inv H H' = + -- (a : A) โ†’ + -- H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ + -- ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) + +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} + {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} + (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) + (g1' : {p : P1} โ†’ Q1 p โ†’ Q3 (g1 p)) + (f1' : {p : P1} โ†’ Q1 p โ†’ Q2 (f1 p)) + (f2' : {p : P3} โ†’ Q3 p โ†’ Q4 (f2 p)) + (g2' : {p : P2} โ†’ Q2 p โ†’ Q4 (g2 p)) + where + + square-over : coherence-square-maps g1 f1 f2 g2 โ†’ UU (l1 โŠ” l5 โŠ” l8) + square-over H = htpy-over Q4 H (g2' โˆ˜ f1') (f2' โˆ˜ g1') + + module _ + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) + (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) + (H : coherence-square-maps g1 f1 f2 g2) + (H' : square-over H) + where + + section-square-over : UU (l1 โŠ” l8) + section-square-over = + (p : P1) โ†’ + H' (s1 p) โˆ™ ap f2' (G1 p) โˆ™ (F2 (g1 p)) ๏ผ + ( ap (tr Q4 (H p) โˆ˜ g2') (F1 p) โˆ™ + ap (tr Q4 (H p)) (G2 (f1 p)) โˆ™ + apd s4 (H p)) + + get-section-square-over : + section-htpy-over H H' s1 s4 + ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) + ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) โ†’ + section-square-over + get-section-square-over ฮฑ = + assoc-htpy (H' ยทr s1) (f2' ยทl G1) (F2 ยทr g1) โˆ™h + ฮฑ โˆ™h + ( ฮป p โ†’ + ap + ( _โˆ™ apd s4 (H p)) + ( ap-concat (tr Q4 (H p)) (ap g2' (F1 p)) (G2 (f1 p)) โˆ™ + ap (_โˆ™ _) (inv (ap-comp _ g2' (F1 p))))) + + module _ + (m : P2 โ†’ P3) + (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) + (B1 : coherence-triangle-maps' g1 m f1) + (B2 : coherence-triangle-maps g2 f2 m) + (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') + (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) + where + + pasting-triangles-over : + htpy-over Q4 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( g2' โˆ˜ f1') + ( f2' โˆ˜ g1') + pasting-triangles-over = + concat-htpy-over + ( B2 ยทr f1) + ( f2 ยทl B1) + ( right-whisk-htpy-over B2 T2 f1 f1') + ( left-whisk-htpy-over B1 T1 f2') + + module _ + (m : P2 โ†’ P3) + (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) + (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) + (M : (p : P2) โ†’ m' (s2 p) ๏ผ s3 (m p)) + (B1 : coherence-triangle-maps' g1 m f1) + (B2 : coherence-triangle-maps g2 f2 m) + (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') + (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) + where + + pasting-sections-triangles-over : + section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 โ†’ + section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 โ†’ + section-square-over s1 s2 s3 s4 G1 F1 F2 G2 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( pasting-triangles-over m m' B1 B2 T1 T2) + pasting-sections-triangles-over S1 S2 = + get-section-square-over s1 s2 s3 s4 G1 F1 F2 G2 + ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) + ( pasting-triangles-over m m' B1 B2 T1 T2) + ( concat-section-htpy-over (B2 ยทr f1) (f2 ยทl B1) + ( right-whisk-htpy-over B2 T2 f1 f1') + ( left-whisk-htpy-over B1 T1 f2') + s1 s4 + ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) + ( comp-section-map-over (f2 โˆ˜ m) f1 (f2' โˆ˜ m') f1' s1 s2 s4 + ( comp-section-map-over f2 m f2' m' s2 s3 s4 F2 M) + ( F1)) + ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) + ( [ii]) + ( concat-section-htpy-over refl-htpy (f2 ยทl B1) refl-htpy + ( left-whisk-htpy-over B1 T1 f2') + s1 s4 _ _ _ + ( assoc-comp-section-map-over f1' m' f2' s1 s2 s3 s4 F1 M F2) + ( [iv]))) + where + [i] = unget-section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 S2 + [ii] = right-whisk-section-htpy-over B2 T2 s2 s4 _ _ [i] f1 f1' s1 F1 + [iii] = unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 + [iv] = left-whisk-section-htpy-over B1 T1 s1 s3 _ _ [iii] f2 f2' s4 F2 +``` diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index daa3941fdb..4f53e6bfd7 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -51,6 +51,8 @@ open import synthetic-homotopy-theory.shifts-sequential-diagrams open import synthetic-homotopy-theory.sections-descent-data-pushouts open import synthetic-homotopy-theory.universal-property-pushouts open import synthetic-homotopy-theory.zigzags-sequential-diagrams + +open import synthetic-homotopy-theory.stuff-over ```
@@ -63,641 +65,6 @@ colimits of pushouts. ## Definitions ```agda -open import foundation.commuting-triangles-of-maps -open import foundation.whiskering-homotopies-concatenation -open import foundation.homotopy-induction -open import foundation.dependent-homotopies - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} - {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) - {f g : A โ†’ B} - (H : f ~ g) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (g' : {a : A} โ†’ A' a โ†’ B' (g a)) - where - - htpy-over : UU (l1 โŠ” l3 โŠ” l4) - htpy-over = {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} - {A' : A โ†’ UU l3} (B' : B โ†’ UU l4) - {f g : A โ†’ B} - (H : f ~ g) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (g' : {a : A} โ†’ A' a โ†’ B' (g a)) - where - - inv-htpy-over : htpy-over B' H f' g' โ†’ htpy-over B' (inv-htpy H) g' f' - inv-htpy-over H' a' = - map-eq-transpose-equiv-inv (equiv-tr B' (H _)) (inv (H' a')) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - {s : X โ†’ A} (s' : {x : X} โ†’ X' x โ†’ A' (s x)) - where - - right-whisk-htpy-over : htpy-over B' (H ยทr s) (f' โˆ˜ s') (g' โˆ˜ s') - right-whisk-htpy-over a' = H' (s' a') - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) - where - - LWMOTIF : {a : A} (a' : A' a) (g : A โ†’ B) (H : f ~ g) โ†’ UU (l5 โŠ” l6) - LWMOTIF {a} a' g H = - {g'a' : B' (g a)} โ†’ - (H' : tr B' (H a) (f' a') ๏ผ g'a') โ†’ - tr X' (ap s (H a)) (s' (f' a')) ๏ผ s' (g'a') - - left-whisk-htpy-over : htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g') - left-whisk-htpy-over {a} a' = - ind-htpy f - ( LWMOTIF a') - ( ap s') - ( H) - ( H' a') - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f : A โ†’ B} - {f' g' : {a : A} โ†’ A' a โ†’ B' (f a)} - (H' : {a : A} โ†’ f' {a} ~ g') - {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) - where - - open import foundation.function-extensionality - - compute-left-whisk-htpy-over : - {a : A} (a' : A' a) โ†’ - left-whisk-htpy-over {B' = B'} {X' = X'} {f = f} refl-htpy H' s' a' ๏ผ ap s' (H' a') - compute-left-whisk-htpy-over a' = - htpy-eq - ( htpy-eq-implicit - ( compute-ind-htpy f - ( LWMOTIF {B' = B'} {X' = X'} refl-htpy H' s' a') - ( ap s')) - ( g' a')) - ( H' a') - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - {f g h : A โ†’ B} - (H : f ~ g) (K : g ~ h) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - {h' : {a : A} โ†’ A' a โ†’ B' (h a)} - (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' h') - where - - concat-htpy-over : htpy-over B' (H โˆ™h K) f' h' - concat-htpy-over {a} a' = - concat-dependent-identification B' (H a) (K a) (H' a') (K' a') - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - (f : A โ†’ B) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - where - - section-map-over : UU (l1 โŠ” l4) - section-map-over = (a : A) โ†’ f' (sA a) ๏ผ sB (f a) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} - (g : B โ†’ C) (f : A โ†’ B) - (g' : {b : B} โ†’ B' b โ†’ C' (g b)) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) - where - - comp-section-map-over : - section-map-over g g' sB sC โ†’ section-map-over f f' sA sB โ†’ - section-map-over (g โˆ˜ f) (g' โˆ˜ f') sA sC - comp-section-map-over G F = - g' ยทl F โˆ™h G ยทr f - - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sA sB) - where - - section-htpy-over : UU (l1 โŠ” l4) - section-htpy-over = - (a : A) โ†’ - H' (sA a) โˆ™ G a ๏ผ - ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sA sB) - where - - inv-section-htpy-over : - section-htpy-over H H' sA sB F G โ†’ - section-htpy-over - ( inv-htpy H) - ( inv-htpy-over B' H f' g' H') - ( sA) - ( sB) - ( G) - ( F) - inv-section-htpy-over ฮฑ = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ - (H' : htpy-over B' H f' g') โ†’ - (G : section-map-over g g' sA sB) โ†’ - section-htpy-over H H' sA sB F G โ†’ - section-htpy-over - ( inv-htpy H) - ( inv-htpy-over B' H f' g' H') - sA sB G F) - ( ฮป H' G ฮฑ a โ†’ - ind-htpy f' - ( ฮป g'a H'a โ†’ - (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ - (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ - map-eq-transpose-equiv-inv (equiv-tr B' refl) (inv (H'a (sA a))) โˆ™ F a ๏ผ - ap (tr B' refl) Ga โˆ™ apd sB refl) - ( ฮป Ga ฮฑa โ†’ - ap (_โˆ™ F a) (compute-refl-eq-transpose-equiv-inv (equiv-tr B' refl)) โˆ™ - inv (right-unit โˆ™ ap-id _ โˆ™ (ฮฑa โˆ™ right-unit โˆ™ ap-id _))) - ( H') - ( G a) - ( ฮฑ a)) - ( H) - ( H') - ( G) - ( ฮฑ) - -module _ - {l1 l2 l3 l4 l5 l6 l7 l8 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - {A' : A โ†’ UU l5} {B' : B โ†’ UU l6} {C' : C โ†’ UU l7} {D' : D โ†’ UU l8} - {f : A โ†’ B} {g : B โ†’ C} {h : C โ†’ D} - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {b : B} โ†’ B' b โ†’ C' (g b)} - {h' : {c : C} โ†’ C' c โ†’ D' (h c)} - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (sC : (c : C) โ†’ C' c) - (sD : (d : D) โ†’ D' d) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sB sC) - (H : section-map-over h h' sC sD) - where - - assoc-comp-section-map-over : - section-htpy-over - ( refl-htpy {f = h โˆ˜ g โˆ˜ f}) - ( refl-htpy {f = h' โˆ˜ g' โˆ˜ f'}) - sA sD - ( comp-section-map-over (h โˆ˜ g) f (h' โˆ˜ g') f' sA sB sD - ( comp-section-map-over h g h' g' sB sC sD H G) - ( F)) - ( comp-section-map-over h (g โˆ˜ f) h' (g' โˆ˜ f') sA sC sD H - ( comp-section-map-over g f g' f' sA sB sC G F)) - assoc-comp-section-map-over = - inv-htpy - ( right-unit-htpy โˆ™h - left-unit-law-left-whisker-comp _ โˆ™h - inv-htpy-assoc-htpy _ _ _ โˆ™h - right-whisker-concat-htpy - ( ( right-whisker-concat-htpy - ( inv-preserves-comp-left-whisker-comp h' g' F) - ( h' ยทl G ยทr f)) โˆ™h - ( inv-htpy - ( distributive-left-whisker-comp-concat h' - ( g' ยทl F) - ( G ยทr f)))) - ( H ยทr g ยทr f)) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - (s : X โ†’ A) - (s' : {x : X} โ†’ X' x โ†’ A' (s x)) - (sX : (x : X) โ†’ X' x) - (S : section-map-over s s' sX sA) - where - - right-whisk-section-htpy-over : - section-htpy-over (H ยทr s) - ( right-whisk-htpy-over H H' s') - sX sB - ( comp-section-map-over f s f' s' sX sA sB F S) - ( comp-section-map-over g s g' s' sX sA sB G S) - right-whisk-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ - section-htpy-over (H ยทr s) - ( right-whisk-htpy-over H H' s') - sX sB - ( comp-section-map-over f s f' s' sX sA sB F S) - ( comp-section-map-over g s g' s' sX sA sB G S)) - ( ฮป H' G ฮฑ x โ†’ - ind-htpy (f' {s x}) - ( ฮป g'sx H'sx โ†’ - (Gsx : g'sx (sA (s x)) ๏ผ sB (f (s x))) - (ฮฑsx : H'sx (sA (s x)) โˆ™ Gsx ๏ผ ap (tr B' refl) (F (s x)) โˆ™ apd sB refl) โ†’ - H'sx (s' (sX x)) โˆ™ ((ap g'sx (S x)) โˆ™ Gsx) ๏ผ - ap (tr B' refl) (ap f' (S x) โˆ™ (F (s x))) โˆ™ apd sB refl) - ( ฮป Gsx ฮฑsx โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (ap f' (S x) โˆ™_) (inv (ฮฑsx โˆ™ (right-unit โˆ™ ap-id _)))))) - ( H') - ( G (s x)) - ( ฮฑ (s x))) - ( H) - ( H') - ( G) - ( ฮฑ) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f g : A โ†’ B} - (H : f ~ g) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - (s : B โ†’ X) - (s' : {b : B} โ†’ B' b โ†’ X' (s b)) - (sX : (x : X) โ†’ X' x) - (S : section-map-over s s' sB sX) - where - - open import foundation.function-extensionality - - left-whisk-section-htpy-over : - section-htpy-over (s ยทl H) - ( left-whisk-htpy-over H H' s') - sA sX - ( comp-section-map-over s f s' f' sA sB sX S F) - ( comp-section-map-over s g s' g' sA sB sX S G) - left-whisk-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ - (H' : htpy-over B' H f' g') - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ - section-htpy-over (s ยทl H) - ( left-whisk-htpy-over H H' s') - sA sX - ( comp-section-map-over s f s' f' sA sB sX S F) - ( comp-section-map-over s g s' g' sA sB sX S G)) - ( ฮป H' G ฮฑ a โ†’ - ap (_โˆ™ (ap s' (G a) โˆ™ S (f a))) - ( compute-left-whisk-htpy-over H' s' (sA a)) โˆ™ - ind-htpy f' - ( ฮป g'a H'a โ†’ - (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ - (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ - ap s' (H'a (sA a)) โˆ™ (ap s' Ga โˆ™ S (f a)) ๏ผ ap (tr X' refl) (ap s' (F a) โˆ™ S (f a)) โˆ™ apd sX refl) - ( ฮป Ga ฮฑa โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (_โˆ™ S (f a)) (inv (ap (ap s') (ฮฑa โˆ™ (right-unit โˆ™ ap-id _))))))) - ( H') - ( G a) - ( ฮฑ a)) - ( H) - ( H') - ( G) - ( ฮฑ) - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - {f g i : A โ†’ B} - (H : f ~ g) (K : g ~ i) - {f' : {a : A} โ†’ A' a โ†’ B' (f a)} - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - {i' : {a : A} โ†’ A' a โ†’ B' (i a)} - (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') - (sA : (a : A) โ†’ A' a) - (sB : (b : B) โ†’ B' b) - (F : section-map-over f f' sA sB) - (G : section-map-over g g' sA sB) - (I : section-map-over i i' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - (ฮฒ : section-htpy-over K K' sA sB G I) - where - - concat-section-htpy-over : - section-htpy-over - ( H โˆ™h K) - ( concat-htpy-over H K H' K') - ( sA) - ( sB) - ( F) - ( I) - concat-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {i : A โ†’ B} (K : g ~ i) - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - {i' : {a : A} โ†’ A' a โ†’ B' (i a)} - (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') - (G : section-map-over g g' sA sB) - (I : section-map-over i i' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - (ฮฒ : section-htpy-over K K' sA sB G I) โ†’ - section-htpy-over - ( H โˆ™h K) - ( concat-htpy-over H K H' K') - sA sB F I) - ( ฮป K H' K' G I ฮฑ ฮฒ a โ†’ - ind-htpy (f' {a}) - ( ฮป g'a H' โ†’ - {ia : B} (K : f a ๏ผ ia) - {i'a : A' a โ†’ B' ia} - (K' : (a' : A' a) โ†’ dependent-identification B' K (g'a a') (i'a a')) - (G : g'a (sA a) ๏ผ sB (f a)) - (I : i'a (sA a) ๏ผ sB ia) - (ฮฑ : H' (sA a) โˆ™ G ๏ผ ap id (F a) โˆ™ refl) - (ฮฒ : K' (sA a) โˆ™ I ๏ผ ap (tr B' K) G โˆ™ apd sB K) โ†’ - concat-dependent-identification B' refl K (H' (sA a)) (K' (sA a)) โˆ™ I ๏ผ - ap (tr B' K) (F a) โˆ™ apd sB K) - ( ฮป K K' G I ฮฑ ฮฒ โ†’ ฮฒ โˆ™ ap (ฮป p โ†’ ap (tr B' K) p โˆ™ apd sB K) (ฮฑ โˆ™ (right-unit โˆ™ ap-id (F a)))) - ( H' {a}) - ( K a) - ( K' {a}) - ( G a) - ( I a) - ( ฮฑ a) - ( ฮฒ a)) - ( H) - ( K) - ( H') - ( K') - ( G) - ( I) - ( ฮฑ) - ( ฮฒ) - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - (f : A โ†’ B) (g : A โ†’ X) (m : B โ†’ X) - (f' : {a : A} โ†’ A' a โ†’ B' (f a)) - (g' : {a : A} โ†’ A' a โ†’ X' (g a)) - (m' : {b : B} โ†’ B' b โ†’ X' (m b)) - (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sX : (x : X) โ†’ X' x) - (F : (a : A) โ†’ f' (sA a) ๏ผ sB (f a)) - (G : (a : A) โ†’ g' (sA a) ๏ผ sX (g a)) - (M : (b : B) โ†’ m' (sB b) ๏ผ sX (m b)) - where - - section-triangle-over : - (H : coherence-triangle-maps g m f) โ†’ - (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ - UU (l1 โŠ” l6) - section-triangle-over H H' = - (a : A) โ†’ - H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ - ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) - - unget-section-triangle-over : - (H : coherence-triangle-maps g m f) โ†’ - (H' : htpy-over X' H g' (m' โˆ˜ f')) โ†’ - section-triangle-over H H' โ†’ - section-htpy-over H H' sA sX G - ( comp-section-map-over m f m' f' sA sB sX M F) - unget-section-triangle-over H H' ฮฑ = inv-htpy-assoc-htpy _ _ _ โˆ™h ฮฑ - - section-triangle-over' : - (H : coherence-triangle-maps' g m f) โ†’ - (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ - UU (l1 โŠ” l6) - section-triangle-over' H H' = - (a : A) โ†’ - H' (sA a) โˆ™ G a ๏ผ - ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a) - - - open import foundation.functoriality-dependent-function-types - equiv-get-section-triangle-over' : - (H : coherence-triangle-maps' g m f) โ†’ - (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ - section-triangle-over' H H' โ‰ƒ - section-htpy-over H H' sA sX - ( comp-section-map-over m f m' f' sA sB sX M F) - ( G) - equiv-get-section-triangle-over' H H' = - equiv-ฮ -equiv-family - ( ฮป a โ†’ - equiv-concat' - ( H' (sA a) โˆ™ G a) - ( ap - ( _โˆ™ apd sX (H a)) - ( ( ap - ( _โˆ™ ap (tr X' (H a)) (M (f a))) - ( ap-comp (tr X' (H a)) m' (F a))) โˆ™ - ( inv (ap-concat (tr X' (H a)) (ap m' (F a)) (M (f a))))))) - - unget-section-triangle-over' : - (H : coherence-triangle-maps' g m f) โ†’ - (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ - section-triangle-over' H H' โ†’ - section-htpy-over H H' sA sX - ( comp-section-map-over m f m' f' sA sB sX M F) - ( G) - unget-section-triangle-over' H H' = - map-equiv (equiv-get-section-triangle-over' H H') - - get-section-triangle-over' : - (H : coherence-triangle-maps' g m f) โ†’ - (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ - section-htpy-over H H' sA sX - ( comp-section-map-over m f m' f' sA sB sX M F) - ( G) โ†’ - section-triangle-over' H H' - get-section-triangle-over' H H' = - map-inv-equiv (equiv-get-section-triangle-over' H H') - - -- actually โ‰ section-triangle-over ๐Ÿค” - -- section-triangle-over-inv : - -- (H : coherence-triangle-maps g m f) โ†’ - -- (H' : {a : A} (a' : A' a) โ†’ dependent-identification X' (H a) (g' a') (m' (f' a'))) โ†’ - -- UU (l1 โŠ” l6) - -- section-triangle-over-inv H H' = - -- (a : A) โ†’ - -- H' (sA a) โˆ™ ap m' (F a) โˆ™ (M (f a)) ๏ผ - -- ap (tr X' (H a)) (G a) โˆ™ apd sX (H a) - -module _ - {l1 l2 l3 l4 l5 l6 l7 l8 : Level} - {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} - {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} - (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) - (g1' : {p : P1} โ†’ Q1 p โ†’ Q3 (g1 p)) - (f1' : {p : P1} โ†’ Q1 p โ†’ Q2 (f1 p)) - (f2' : {p : P3} โ†’ Q3 p โ†’ Q4 (f2 p)) - (g2' : {p : P2} โ†’ Q2 p โ†’ Q4 (g2 p)) - where - - module _ - (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) - (s4 : (p : P4) โ†’ Q4 p) - (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) - (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) - (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) - (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) - (H : coherence-square-maps g1 f1 f2 g2) - (H' : htpy-over Q4 H (g2' โˆ˜ f1') (f2' โˆ˜ g1')) - where - - section-square-over : UU (l1 โŠ” l8) - section-square-over = - (p : P1) โ†’ - H' (s1 p) โˆ™ ap f2' (G1 p) โˆ™ (F2 (g1 p)) ๏ผ - ( ap (tr Q4 (H p) โˆ˜ g2') (F1 p) โˆ™ - ap (tr Q4 (H p)) (G2 (f1 p)) โˆ™ - apd s4 (H p)) - - get-section-square-over : - section-htpy-over H H' s1 s4 - ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) - ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) โ†’ - section-square-over - get-section-square-over ฮฑ p = - assoc _ _ _ โˆ™ - ฮฑ p โˆ™ - ap (_โˆ™ apd s4 (H p)) - (ap-concat (tr Q4 (H p)) _ _ โˆ™ ap (_โˆ™ _) (inv (ap-comp _ g2' (F1 p)))) - - module _ - (m : P2 โ†’ P3) - (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) - (B1 : coherence-triangle-maps' g1 m f1) - (B2 : coherence-triangle-maps g2 f2 m) - (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') - (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) - where - - pasting-triangles-over : - htpy-over Q4 - ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) - ( g2' โˆ˜ f1') - ( f2' โˆ˜ g1') - pasting-triangles-over = - concat-htpy-over - ( B2 ยทr f1) - ( f2 ยทl B1) - ( right-whisk-htpy-over B2 T2 f1') - ( left-whisk-htpy-over B1 T1 f2') - - module _ - (m : P2 โ†’ P3) - (m' : {p : P2} โ†’ Q2 p โ†’ Q3 (m p)) - (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) - (s4 : (p : P4) โ†’ Q4 p) - (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) - (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) - (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) - (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) - (M : (p : P2) โ†’ m' (s2 p) ๏ผ s3 (m p)) - (B1 : coherence-triangle-maps' g1 m f1) - (B2 : coherence-triangle-maps g2 f2 m) - (T1 : htpy-over Q3 B1 (m' โˆ˜ f1') g1') - (T2 : htpy-over Q4 B2 g2' (f2' โˆ˜ m')) - where - - pasting-sections-triangles-over : - section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 โ†’ - section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 โ†’ - section-square-over s1 s2 s3 s4 G1 F1 F2 G2 - ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) - ( pasting-triangles-over m m' B1 B2 T1 T2) - pasting-sections-triangles-over S1 S2 = - get-section-square-over s1 s2 s3 s4 G1 F1 F2 G2 - ( horizontal-pasting-up-diagonal-coherence-triangle-maps g1 f1 f2 g2 B1 B2) - ( pasting-triangles-over m m' B1 B2 T1 T2) - ( concat-section-htpy-over (B2 ยทr f1) (f2 ยทl B1) - ( right-whisk-htpy-over B2 T2 f1') - ( left-whisk-htpy-over B1 T1 f2') - s1 s4 - ( comp-section-map-over g2 f1 g2' f1' s1 s2 s4 G2 F1) - ( comp-section-map-over (f2 โˆ˜ m) f1 (f2' โˆ˜ m') f1' s1 s2 s4 - ( comp-section-map-over f2 m f2' m' s2 s3 s4 F2 M) - ( F1)) - ( comp-section-map-over f2 g1 f2' g1' s1 s3 s4 F2 G1) - ( [ii]) - ( concat-section-htpy-over refl-htpy (f2 ยทl B1) refl-htpy - ( left-whisk-htpy-over B1 T1 f2') - s1 s4 _ _ _ - ( assoc-comp-section-map-over _ _ _ _ F1 M F2) - ( [iv]))) - where - [i] = unget-section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 S2 - [ii] = right-whisk-section-htpy-over B2 T2 s2 s4 _ _ [i] f1 f1' s1 F1 - [iii] = unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 - [iv] = left-whisk-section-htpy-over B1 T1 s1 s3 _ _ [iii] f2 f2' s4 F2 module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) From 78685af2e1e9f36bb12e2b4668727971f85acb0e Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Fri, 17 Jan 2025 18:36:13 +0100 Subject: [PATCH 16/33] Attempt to factorize out the functoriality lemma --- .../functoriality-stuff.lagda.md | 204 ++++++++++++++++++ ...nstruction-identity-type-pushouts.lagda.md | 28 ++- 2 files changed, 231 insertions(+), 1 deletion(-) create mode 100644 src/synthetic-homotopy-theory/functoriality-stuff.lagda.md diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md new file mode 100644 index 0000000000..f3bb11a0e5 --- /dev/null +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -0,0 +1,204 @@ +# Functoriality stuff + +```agda +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} + +module synthetic-homotopy-theory.functoriality-stuff where +``` + +
Imports + +```agda +open import elementary-number-theory.natural-numbers + +open import foundation.action-on-identifications-dependent-functions +open import foundation.action-on-identifications-functions +-- open import foundation.commuting-squares-of-maps +-- open import foundation.commuting-triangles-of-maps +-- open import foundation.dependent-identifications +open import foundation.dependent-pair-types +open import foundation.embeddings +open import foundation.equivalences +-- open import foundation.function-extensionality +open import foundation.function-types +-- open import foundation.functoriality-dependent-function-types +open import foundation.homotopies +-- open import foundation.homotopy-induction +open import foundation.identity-types +open import foundation.transport-along-identifications +-- open import foundation.transposition-identifications-along-equivalences +open import foundation.universe-levels +-- open import foundation.whiskering-homotopies-composition +-- open import foundation.whiskering-homotopies-concatenation + +open import synthetic-homotopy-theory.cocones-under-sequential-diagrams +open import synthetic-homotopy-theory.dependent-sequential-diagrams +open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits +open import synthetic-homotopy-theory.descent-data-sequential-colimits +open import synthetic-homotopy-theory.functoriality-sequential-colimits +open import synthetic-homotopy-theory.morphisms-sequential-diagrams +open import synthetic-homotopy-theory.sequential-diagrams +open import synthetic-homotopy-theory.stuff-over +open import synthetic-homotopy-theory.universal-property-sequential-colimits +``` + +## Theorem + +```agda +module _ + {l1 l2 : Level} + {A : sequential-diagram l1} + (P : descent-data-sequential-colimit A l2) + where + + section-descent-data-sequential-colimit : UU (l1 โŠ” l2) + section-descent-data-sequential-colimit = + ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-descent-data-sequential-colimit P n a) + ( ฮป s โ†’ + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + map-family-descent-data-sequential-colimit P n a (s n a) ๏ผ + s (succ-โ„• n) (map-sequential-diagram A n a)) + +module _ + {l1 l2 l3 : Level} + {A : sequential-diagram l1} + {X : UU l2} {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + (P : X โ†’ UU l3) + where + + sect-family-sect-dd-sequential-colimit : + section-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c P) โ†’ + ((x : X) โ†’ P x) + sect-family-sect-dd-sequential-colimit s = + map-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( s) +``` + +```agda +module big-thm + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} + {B : sequential-diagram l2} + {X : UU l3} {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {Y : UU l4} {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (H : hom-sequential-diagram A B) + where + + -- the squares induce a map + + fโˆž : X โ†’ Y + fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' H + + Cn : (n : โ„•) โ†’ + fโˆž โˆ˜ map-cocone-sequential-diagram c n ~ + map-cocone-sequential-diagram c' n โˆ˜ map-hom-sequential-diagram B H n + Cn = + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H + + module _ + (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) + (f'โˆž : {x : X} โ†’ P x โ†’ Q (fโˆž x)) + where + + An : โ„• โ†’ UU l1 + An = family-sequential-diagram A + Bn : โ„• โ†’ UU l2 + Bn = family-sequential-diagram B + an : {n : โ„•} โ†’ An n โ†’ An (succ-โ„• n) + an = map-sequential-diagram A _ + bn : {n : โ„•} โ†’ Bn n โ†’ Bn (succ-โ„• n) + bn = map-sequential-diagram B _ + fn : {n : โ„•} โ†’ An n โ†’ Bn n + fn = map-hom-sequential-diagram B H _ + Hn : {n : โ„•} โ†’ bn {n} โˆ˜ fn ~ fn โˆ˜ an + Hn = naturality-map-hom-sequential-diagram B H _ + + -- a map-over induces squares-over + + -- first, the sequences-over: + ๐’ŸP : descent-data-sequential-colimit A l5 + ๐’ŸP = descent-data-family-cocone-sequential-diagram c P + ๐’ซ = dependent-sequential-diagram-descent-data ๐’ŸP + ๐’ŸQ : descent-data-sequential-colimit B l6 + ๐’ŸQ = descent-data-family-cocone-sequential-diagram c' Q + ๐’ฌ = dependent-sequential-diagram-descent-data ๐’ŸQ + + Pn : {n : โ„•} โ†’ An n โ†’ UU l5 + Pn = family-descent-data-sequential-colimit ๐’ŸP _ + Qn : {n : โ„•} โ†’ Bn n โ†’ UU l6 + Qn = family-descent-data-sequential-colimit ๐’ŸQ _ + + pn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Pn (an a) + pn = map-family-descent-data-sequential-colimit ๐’ŸP _ + qn : {n : โ„•} (b : Bn n) โ†’ Qn b โ†’ Qn (bn b) + qn = map-family-descent-data-sequential-colimit ๐’ŸQ _ + + -- then, the maps over homs + f'โˆžn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Qn (fn a) + f'โˆžn a = + ( tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' + ( H) + ( _) + ( a))) โˆ˜ + ( f'โˆž) + + -- then, the squares-over + f'โˆžn-square-over : + {n : โ„•} โ†’ + square-over {Q4 = Qn} (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) Hn + f'โˆžn-square-over p = {!qn!} + + thm : + (sA : section-dependent-sequential-diagram A ๐’ซ) โ†’ + (sB : section-dependent-sequential-diagram B ๐’ฌ) โ†’ + (S : (n : โ„•) โ†’ + section-map-over (fn {n}) (f'โˆžn _) + ( map-section-dependent-sequential-diagram A ๐’ซ sA n) + ( map-section-dependent-sequential-diagram B ๐’ฌ sB n)) โ†’ + ((n : โ„•) โ†’ + section-square-over (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) + ( map-section-dependent-sequential-diagram A ๐’ซ sA n) + ( map-section-dependent-sequential-diagram B ๐’ฌ sB n) + ( map-section-dependent-sequential-diagram A ๐’ซ sA (succ-โ„• n)) + ( map-section-dependent-sequential-diagram B ๐’ฌ sB (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram A ๐’ซ sA n) + ( S n) + ( S (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram B ๐’ฌ sB n) + ( Hn) + ( f'โˆžn-square-over)) โ†’ + section-map-over fโˆž f'โˆž + ( sect-family-sect-dd-sequential-colimit up-c P sA) + ( sect-family-sect-dd-sequential-colimit up-c' Q sB) + thm sA sB S ฮฑ = + map-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( ( ฮป n a โ†’ + ap f'โˆž + ( pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( sA)) n a) โˆ™ + map-equiv + ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) + ( S n a โˆ™ + inv + ( apd sBโˆž (Cn n a) โˆ™ + pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c') + ( sB)) n (fn a)))) , + {!!}) + where + sAโˆž : (x : X) โ†’ P x + sAโˆž = sect-family-sect-dd-sequential-colimit up-c P sA + sBโˆž : (y : Y) โ†’ Q y + sBโˆž = sect-family-sect-dd-sequential-colimit up-c' Q sB +``` diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index 4f53e6bfd7..cbcdc8980b 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -1,7 +1,7 @@ # The zigzag construction of identity types of pushouts ```agda -{-# OPTIONS --lossy-unification #-} +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts where ``` @@ -52,6 +52,7 @@ open import synthetic-homotopy-theory.sections-descent-data-pushouts open import synthetic-homotopy-theory.universal-property-pushouts open import synthetic-homotopy-theory.zigzags-sequential-diagrams +open import synthetic-homotopy-theory.functoriality-stuff open import synthetic-homotopy-theory.stuff-over ``` @@ -1114,6 +1115,31 @@ module _ โˆ™ apd (vertices.sBn s) (sides.bottom s n) KS-in-diagram = cube.cube + alt-ind-coherence : + (s : spanning-type-span-diagram ๐’ฎ) + (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ + {!!} + -- map-family-descent-data-pushout R _ (pr1 ind-singleton-zigzag-id-pushout' (left-map-span-diagram ๐’ฎ s , p)) ๏ผ + -- pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p) + alt-ind-coherence s p = + big-thm.thm + ( up-standard-sequential-colimit) + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( ฮป {p} โ†’ map-family-descent-data-pushout R (s , p)) + ( {!!}) + ( {!!}) + ( {!!}) + ( {!!}) + ( p) + is-identity-system-zigzag-id-pushout : is-identity-system-descent-data-pushout ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) From f50bfb6d9cc65ed67972853a285dcdcf2a47c16b Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Mon, 27 Jan 2025 17:57:51 +0100 Subject: [PATCH 17/33] Very minute progress --- src/synthetic-homotopy-theory.lagda.md | 4 + ...cocones-under-sequential-diagrams.lagda.md | 89 +++ ...rsal-property-sequential-colimits.lagda.md | 59 +- ...cent-property-sequential-colimits.lagda.md | 3 +- ...ttening-lemma-sequential-colimits.lagda.md | 1 - ...functoriality-sequential-colimits.lagda.md | 2 +- .../functoriality-stuff.lagda.md | 562 +++++++++++++++++- .../stuff-over.lagda.md | 11 +- ...nstruction-identity-type-pushouts.lagda.md | 125 ++-- 9 files changed, 738 insertions(+), 118 deletions(-) diff --git a/src/synthetic-homotopy-theory.lagda.md b/src/synthetic-homotopy-theory.lagda.md index f05ba2976d..52b42811e2 100644 --- a/src/synthetic-homotopy-theory.lagda.md +++ b/src/synthetic-homotopy-theory.lagda.md @@ -51,6 +51,7 @@ open import synthetic-homotopy-theory.descent-circle-function-types public open import synthetic-homotopy-theory.descent-circle-subtypes public open import synthetic-homotopy-theory.descent-data-equivalence-types-over-pushouts public open import synthetic-homotopy-theory.descent-data-function-types-over-pushouts public +open import synthetic-homotopy-theory.descent-data-function-types-over-sequential-colimits public open import synthetic-homotopy-theory.descent-data-identity-types-over-pushouts public open import synthetic-homotopy-theory.descent-data-pushouts public open import synthetic-homotopy-theory.descent-data-sequential-colimits public @@ -72,6 +73,7 @@ open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits publi open import synthetic-homotopy-theory.free-loops public open import synthetic-homotopy-theory.functoriality-loop-spaces public open import synthetic-homotopy-theory.functoriality-sequential-colimits public +open import synthetic-homotopy-theory.functoriality-stuff public open import synthetic-homotopy-theory.functoriality-suspensions public open import synthetic-homotopy-theory.groups-of-loops-in-1-types public open import synthetic-homotopy-theory.hatchers-acyclic-type public @@ -120,6 +122,7 @@ open import synthetic-homotopy-theory.smash-products-of-pointed-types public open import synthetic-homotopy-theory.spectra public open import synthetic-homotopy-theory.sphere-prespectrum public open import synthetic-homotopy-theory.spheres public +open import synthetic-homotopy-theory.stuff-over public open import synthetic-homotopy-theory.suspension-prespectra public open import synthetic-homotopy-theory.suspension-structures public open import synthetic-homotopy-theory.suspensions-of-pointed-types public @@ -139,5 +142,6 @@ open import synthetic-homotopy-theory.universal-property-sequential-colimits pub open import synthetic-homotopy-theory.universal-property-suspensions public open import synthetic-homotopy-theory.universal-property-suspensions-of-pointed-types public open import synthetic-homotopy-theory.wedges-of-pointed-types public +open import synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts public open import synthetic-homotopy-theory.zigzags-sequential-diagrams public ``` diff --git a/src/synthetic-homotopy-theory/cocones-under-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/cocones-under-sequential-diagrams.lagda.md index ca4adb47b0..c9bcd3532d 100644 --- a/src/synthetic-homotopy-theory/cocones-under-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/cocones-under-sequential-diagrams.lagda.md @@ -24,6 +24,7 @@ open import foundation.torsorial-type-families open import foundation.transport-along-identifications open import foundation.universe-levels open import foundation.whiskering-homotopies-composition +open import foundation.whiskering-homotopies-concatenation open import synthetic-homotopy-theory.dependent-sequential-diagrams open import synthetic-homotopy-theory.equifibered-sequential-diagrams @@ -208,6 +209,40 @@ module _ ( coherence-htpy-htpy-cocone-sequential-diagram K n) ``` +### Homotopies of homotopies of cocones under a sequential diagram + +```agda +module _ + {l1 l2 : Level} {A : sequential-diagram l1} {X : UU l2} + {c c' : cocone-sequential-diagram A X} + (H H' : htpy-cocone-sequential-diagram c c') + where + + coherence-htpyยฒ-cocone-sequential-diagram : + ((n : โ„•) โ†’ + htpy-htpy-cocone-sequential-diagram H n ~ + htpy-htpy-cocone-sequential-diagram H' n) โ†’ + UU (l1 โŠ” l2) + coherence-htpyยฒ-cocone-sequential-diagram ฮฑ = + (n : โ„•) โ†’ + coherence-square-homotopies + ( left-whisker-concat-htpy + ( coherence-cocone-sequential-diagram c n) + ( ฮฑ (succ-โ„• n) ยทr map-sequential-diagram A n)) + ( coherence-htpy-htpy-cocone-sequential-diagram H n) + ( coherence-htpy-htpy-cocone-sequential-diagram H' n) + ( right-whisker-concat-htpy + ( ฮฑ n) + ( coherence-cocone-sequential-diagram c' n)) + + htpyยฒ-cocone-sequential-diagram : UU (l1 โŠ” l2) + htpyยฒ-cocone-sequential-diagram = + ฮฃ ( (n : โ„•) โ†’ + htpy-htpy-cocone-sequential-diagram H n ~ + htpy-htpy-cocone-sequential-diagram H' n) + ( coherence-htpyยฒ-cocone-sequential-diagram) +``` + ### Postcomposing cocones under a sequential diagram with a map Given a cocone `c` with vertex `X` under `(A, a)` and a map `f : X โ†’ Y`, we may @@ -355,6 +390,60 @@ module _ map-inv-equiv (extensionality-cocone-sequential-diagram c') ``` +### Characterization of identity types of homotopies of cocones under sequential diagrams + +```agda +module _ + {l1 l2 : Level} {A : sequential-diagram l1} {X : UU l2} + {c c' : cocone-sequential-diagram A X} + (H : htpy-cocone-sequential-diagram c c') + where + + refl-htpyยฒ-cocone-sequential-diagram : + htpyยฒ-cocone-sequential-diagram H H + pr1 refl-htpyยฒ-cocone-sequential-diagram n = refl-htpy + pr2 refl-htpyยฒ-cocone-sequential-diagram n = right-unit-htpy + + htpyยฒ-eq-cocone-sequential-diagram : + (H' : htpy-cocone-sequential-diagram c c') โ†’ + (H ๏ผ H') โ†’ htpyยฒ-cocone-sequential-diagram H H' + htpyยฒ-eq-cocone-sequential-diagram .H refl = + refl-htpyยฒ-cocone-sequential-diagram + + abstract + is-torsorial-htpyยฒ-cocone-sequential-diagram : + is-torsorial (htpyยฒ-cocone-sequential-diagram H) + is-torsorial-htpyยฒ-cocone-sequential-diagram = + is-torsorial-Eq-structure + ( is-torsorial-binary-htpy (htpy-htpy-cocone-sequential-diagram H)) + ( htpy-htpy-cocone-sequential-diagram H , refl-binary-htpy _) + ( is-torsorial-binary-htpy + ( ฮป n โ†’ + coherence-htpy-htpy-cocone-sequential-diagram H n โˆ™h refl-htpy)) + + is-equiv-htpyยฒ-eq-cocone-sequential-diagram : + (H' : htpy-cocone-sequential-diagram c c') โ†’ + is-equiv (htpyยฒ-eq-cocone-sequential-diagram H') + is-equiv-htpyยฒ-eq-cocone-sequential-diagram = + fundamental-theorem-id + ( is-torsorial-htpyยฒ-cocone-sequential-diagram) + ( htpyยฒ-eq-cocone-sequential-diagram) + + extensionality-htpy-eq-cocone-sequential-diagram : + (H' : htpy-cocone-sequential-diagram c c') โ†’ + (H ๏ผ H') โ‰ƒ htpyยฒ-cocone-sequential-diagram H H' + pr1 (extensionality-htpy-eq-cocone-sequential-diagram H') = + htpyยฒ-eq-cocone-sequential-diagram H' + pr2 (extensionality-htpy-eq-cocone-sequential-diagram H') = + is-equiv-htpyยฒ-eq-cocone-sequential-diagram H' + + eq-htpyยฒ-cocone-sequential-diagram : + (H' : htpy-cocone-sequential-diagram c c') โ†’ + htpyยฒ-cocone-sequential-diagram H H' โ†’ H ๏ผ H' + eq-htpyยฒ-cocone-sequential-diagram H' = + map-inv-equiv (extensionality-htpy-eq-cocone-sequential-diagram H') +``` + ### Postcomposing a cocone under a sequential diagram by identity is the identity ```agda diff --git a/src/synthetic-homotopy-theory/dependent-universal-property-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/dependent-universal-property-sequential-colimits.lagda.md index 449c744b8e..e2607d3474 100644 --- a/src/synthetic-homotopy-theory/dependent-universal-property-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/dependent-universal-property-sequential-colimits.lagda.md @@ -196,35 +196,36 @@ module _ ( c : cocone-sequential-diagram A X) where - universal-property-dependent-universal-property-sequential-colimit : - dependent-universal-property-sequential-colimit c โ†’ - universal-property-sequential-colimit c - universal-property-dependent-universal-property-sequential-colimit - ( dup-c) - ( Y) = - is-equiv-left-map-triangle - ( cocone-map-sequential-diagram c) - ( map-compute-dependent-cocone-sequential-diagram-constant-family Y) - ( dependent-cocone-map-sequential-diagram c (ฮป _ โ†’ Y)) - ( triangle-compute-dependent-cocone-sequential-diagram-constant-family - ( Y)) - ( dup-c (ฮป _ โ†’ Y)) - ( is-equiv-map-equiv - ( compute-dependent-cocone-sequential-diagram-constant-family Y)) - - dependent-universal-property-universal-property-sequential-colimit : - universal-property-sequential-colimit c โ†’ - dependent-universal-property-sequential-colimit c - dependent-universal-property-universal-property-sequential-colimit - ( up-sequential-diagram) = - dependent-universal-property-sequential-colimit-dependent-universal-property-coequalizer - ( c) - ( dependent-universal-property-universal-property-coequalizer - ( double-arrow-sequential-diagram A) - ( cofork-cocone-sequential-diagram c) - ( universal-property-coequalizer-universal-property-sequential-colimit - ( c) - ( up-sequential-diagram))) + abstract + universal-property-dependent-universal-property-sequential-colimit : + dependent-universal-property-sequential-colimit c โ†’ + universal-property-sequential-colimit c + universal-property-dependent-universal-property-sequential-colimit + ( dup-c) + ( Y) = + is-equiv-left-map-triangle + ( cocone-map-sequential-diagram c) + ( map-compute-dependent-cocone-sequential-diagram-constant-family Y) + ( dependent-cocone-map-sequential-diagram c (ฮป _ โ†’ Y)) + ( triangle-compute-dependent-cocone-sequential-diagram-constant-family + ( Y)) + ( dup-c (ฮป _ โ†’ Y)) + ( is-equiv-map-equiv + ( compute-dependent-cocone-sequential-diagram-constant-family Y)) + + dependent-universal-property-universal-property-sequential-colimit : + universal-property-sequential-colimit c โ†’ + dependent-universal-property-sequential-colimit c + dependent-universal-property-universal-property-sequential-colimit + ( up-sequential-diagram) = + dependent-universal-property-sequential-colimit-dependent-universal-property-coequalizer + ( c) + ( dependent-universal-property-universal-property-coequalizer + ( double-arrow-sequential-diagram A) + ( cofork-cocone-sequential-diagram c) + ( universal-property-coequalizer-universal-property-sequential-colimit + ( c) + ( up-sequential-diagram))) ``` ### The 3-for-2 property of the dependent universal property of sequential colimits diff --git a/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md index e41aa18fa6..c36ea4cad1 100644 --- a/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/descent-property-sequential-colimits.lagda.md @@ -158,7 +158,8 @@ module _ {x y : A} (p : x ๏ผ y) (q : f x ๏ผ f y) (ฮฑ : ap f p ๏ผ q) โ†’ (z : P x) โ†’ tr Q q (h x z) ๏ผ h y (tr P p z) - other-nat-lemma p q ฮฑ z = inv (preserves-tr h p z โˆ™ (inv (substitution-law-tr Q f p) โˆ™ trยฒ Q ฮฑ _)) + other-nat-lemma p q ฮฑ z = + inv (preserves-tr h p z โˆ™ (inv (substitution-law-tr Q f p) โˆ™ trยฒ Q ฮฑ _)) module _ {l1 l2 l3 l4 l5 l6 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} diff --git a/src/synthetic-homotopy-theory/flattening-lemma-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/flattening-lemma-sequential-colimits.lagda.md index 1e014f974d..316040ccfa 100644 --- a/src/synthetic-homotopy-theory/flattening-lemma-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/flattening-lemma-sequential-colimits.lagda.md @@ -21,7 +21,6 @@ open import foundation.whiskering-homotopies-composition open import synthetic-homotopy-theory.cocones-under-sequential-diagrams open import synthetic-homotopy-theory.coforks open import synthetic-homotopy-theory.coforks-cocones-under-sequential-diagrams -open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits open import synthetic-homotopy-theory.equivalences-coforks-under-equivalences-double-arrows open import synthetic-homotopy-theory.families-descent-data-sequential-colimits open import synthetic-homotopy-theory.flattening-lemma-coequalizers diff --git a/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md index e978bc0554..1279c6f21d 100644 --- a/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md @@ -125,7 +125,7 @@ This homotopy of cocones provides Aโ‚™ ---------> X | | | | โˆจ | - fโ‚™ | Bโ‚™โ‚Šโ‚ | g + fโ‚™ | Bโ‚™โ‚Šโ‚ | fโˆž | โˆง \ | | / \ | โˆจ/ โˆจโˆจ diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index f3bb11a0e5..37d0bbeb1a 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -13,22 +13,29 @@ open import elementary-number-theory.natural-numbers open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions --- open import foundation.commuting-squares-of-maps --- open import foundation.commuting-triangles-of-maps +-- open import foundation.binary-homotopies +open import foundation.commuting-squares-of-maps +open import foundation.commuting-triangles-of-maps -- open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.embeddings +open import foundation.equality-dependent-pair-types open import foundation.equivalences --- open import foundation.function-extensionality +open import foundation.function-extensionality open import foundation.function-types --- open import foundation.functoriality-dependent-function-types +open import foundation.functoriality-dependent-function-types +open import foundation.functoriality-dependent-pair-types open import foundation.homotopies -- open import foundation.homotopy-induction open import foundation.identity-types +open import foundation.implicit-function-types +open import foundation.postcomposition-functions +open import foundation.precomposition-dependent-functions open import foundation.transport-along-identifications -- open import foundation.transposition-identifications-along-equivalences +open import foundation.universal-property-equivalences open import foundation.universe-levels --- open import foundation.whiskering-homotopies-composition +open import foundation.whiskering-homotopies-composition -- open import foundation.whiskering-homotopies-concatenation open import synthetic-homotopy-theory.cocones-under-sequential-diagrams @@ -42,8 +49,255 @@ open import synthetic-homotopy-theory.stuff-over open import synthetic-homotopy-theory.universal-property-sequential-colimits ``` +
+ ## Theorem +New idea: instead of bruteforcing this direction, show that a square induces +coherent cubes, and show that it's an equivalence because it fits in a diagram. + +```agda +nat-lemma : + {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) + {x y : A} {p : x ๏ผ y} + {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ + coherence-square-maps + ( tr P p) + ( h x) + ( h y) + ( tr Q q) +nat-lemma f h {p = p} refl x = + substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +``` + +```agda +open import synthetic-homotopy-theory.families-descent-data-sequential-colimits +open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams +open import synthetic-homotopy-theory.total-sequential-diagrams + +open import foundation.action-on-identifications-functions +open import foundation.commuting-squares-of-identifications +open import foundation.functoriality-dependent-pair-types +open import foundation.equality-dependent-pair-types +open import foundation.identity-types +open import synthetic-homotopy-theory.sequential-colimits +open import synthetic-homotopy-theory.functoriality-sequential-colimits +module _ + {l1 l2 l3 l4 : Level} + {A : sequential-diagram l1} + {X : UU l2} {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + (P : family-with-descent-data-sequential-colimit c l3) + {Y : UU l4} + {c' : + cocone-sequential-diagram + ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) + ( Y)} + (up-c' : universal-property-sequential-colimit c') + where + + mediating-cocone : + cocone-sequential-diagram + ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) + ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) + pr1 mediating-cocone n = + map-ฮฃ + ( family-cocone-family-with-descent-data-sequential-colimit P) + ( map-cocone-sequential-diagram c n) + ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) + pr2 mediating-cocone n (a , p) = + eq-pair-ฮฃ + ( coherence-cocone-sequential-diagram c n a) + ( inv + ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) + + totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) + totฮน' = + map-universal-property-sequential-colimit up-c' mediating-cocone + triangle-pr1โˆž-pr1 : + pr1-sequential-colimit-total-sequential-diagram + ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) + ( up-c') + ( c) ~ + pr1 โˆ˜ totฮน' + triangle-pr1โˆž-pr1 = + htpy-htpy-out-of-sequential-colimit up-c' + ( concat-htpy-cocone-sequential-diagram + ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c + ( pr1-total-sequential-diagram + ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) + ( ( ฮป n โ†’ + inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , + ( ฮป n x โ†’ + ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ + horizontal-inv-coherence-square-identifications _ + ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) + ( coherence-cocone-sequential-diagram c n (pr1 x)) + _ + ( ( ap + ( _โˆ™ ap pr1 + ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) + ( ap-comp pr1 + ( totฮน') + ( coherence-cocone-sequential-diagram c' n x))) โˆ™ + ( inv + ( ap-concat pr1 + ( ap + ( totฮน') + ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ + ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ + ( ap-concat pr1 + ( pr1 + ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) + n x) + ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ + ( ap + ( ap pr1 + ( pr1 + ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) + n x) โˆ™_) + ( ap-pr1-eq-pair-ฮฃ + ( coherence-cocone-sequential-diagram c n (pr1 x)) + ( _))))))) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) + (f : hom-sequential-diagram A B) + (f' : + (x : X) โ†’ P x โ†’ + Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) + where + + open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits + + ฮฃAP : sequential-diagram (l1 โŠ” l5) + ฮฃAP = + total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) + + ฮฃBQ : sequential-diagram (l3 โŠ” l6) + ฮฃBQ = + total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) + + totff' : hom-sequential-diagram ฮฃAP ฮฃBQ + pr1 totff' n = + map-ฮฃ _ + ( map-hom-sequential-diagram B f n) + ( ฮป a โ†’ + tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' f n a) โˆ˜ + f' (map-cocone-sequential-diagram c n a)) + pr2 totff' = {!!} + + totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q + totff'โˆž = + map-sequential-colimit-hom-sequential-diagram + ( flattening-lemma-sequential-colimit _ P up-c) + ( total-cocone-family-cocone-sequential-diagram c' Q) + ( totff') + + _ : + totฮน' up-c + ( family-with-descent-data-family-cocone-sequential-diagram c P) + ( flattening-lemma-sequential-colimit c P up-c) ~ + id + _ = + compute-map-universal-property-sequential-colimit-id + ( flattening-lemma-sequential-colimit _ P up-c) + + _ : + coherence-square-maps + ( totฮน' up-c + ( family-with-descent-data-family-cocone-sequential-diagram c P) + ( flattening-lemma-sequential-colimit c P up-c)) + ( totff'โˆž) + ( map-ฮฃ Q + ( map-sequential-colimit-hom-sequential-diagram up-c c' f) + f') + ( totฮน' up-c' + ( family-with-descent-data-family-cocone-sequential-diagram c' Q) + ( flattening-lemma-sequential-colimit c' Q up-c')) + _ = + ( compute-map-universal-property-sequential-colimit-id + ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h + ( htpy-htpy-out-of-sequential-colimit + ( flattening-lemma-sequential-colimit c P up-c) + ( concat-htpy-cocone-sequential-diagram + ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( flattening-lemma-sequential-colimit c P up-c) + ( total-cocone-family-cocone-sequential-diagram c' Q) + ( totff')) + ( ( ฮป n (a , p) โ†’ + inv + ( eq-pair-ฮฃ + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' + ( f) + ( n) + ( a)) + refl)) , + {!!}))) โˆ™h + ( _ ยทl + ( inv-htpy + (compute-map-universal-property-sequential-colimit-id + ( flattening-lemma-sequential-colimit c P up-c)))) + + -- htpy-htpy-out-of-sequential-colimit + -- ( flattening-lemma-sequential-colimit c P up-c) + -- ( {!!}) +``` + +```agda +module _ + {l1 l2 l3 l4 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (f : hom-sequential-diagram A B) + where + open import foundation.homotopies-morphisms-arrows + + interm : + coherence-square-maps + ( id) + ( map-sequential-colimit-hom-sequential-diagram up-c c' f) + ( map-sequential-colimit-hom-sequential-diagram up-c c' f) + ( id) + interm = + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' + ( refl-htpy-hom-sequential-diagram A B f) + + preserves-refl-htpy-sequential-colimit : + htpy-hom-arrow + ( map-sequential-colimit-hom-sequential-diagram up-c c' f) + ( map-sequential-colimit-hom-sequential-diagram up-c c' f) + ( id , id , interm) + ( id , id , refl-htpy) + pr1 preserves-refl-htpy-sequential-colimit = refl-htpy + pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy + pr2 (pr2 preserves-refl-htpy-sequential-colimit) = + right-unit-htpy โˆ™h + htpy-eq + ( ap + ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) + ( is-retraction-map-inv-equiv + ( extensionality-hom-sequential-diagram A B f f) + ( refl))) +``` + ```agda module _ {l1 l2 : Level} @@ -78,6 +332,218 @@ module _ ( s) ``` +```agda +module _ + {l1 l2 l3 l4 : Level} + {A : sequential-diagram l1} + (B : sequential-diagram l2) + (f : hom-sequential-diagram A B) + (P : descent-data-sequential-colimit A l3) + (Q : descent-data-sequential-colimit B l4) + where + + hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) + hom-over-hom = + ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-descent-data-sequential-colimit P n a โ†’ + family-descent-data-sequential-colimit Q n + ( map-hom-sequential-diagram B f n a)) + ( ฮป f'n โ†’ + (n : โ„•) โ†’ + square-over + { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) + ( ฮป {a} โ†’ f'n n a) + ( ฮป {a} โ†’ f'n (succ-โ„• n) a) + ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) + ( naturality-map-hom-sequential-diagram B f n)) +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (f : hom-sequential-diagram A B) + (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) + where + + private + fโˆž : X โ†’ Y + fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f + DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) + pr1 DDMO n a = + P (map-cocone-sequential-diagram c n a) โ†’ + Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) + pr2 DDMO n a = + ( equiv-postcomp _ + ( ( equiv-tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e + ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e + ( equiv-precomp + ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) + ( _)) + + sect-over-DDMO-map-over : + ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ + section-descent-data-sequential-colimit DDMO + pr1 (sect-over-DDMO-map-over fโˆž') n a = + ( tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ + ( fโˆž' (map-cocone-sequential-diagram c n a)) + pr2 (sect-over-DDMO-map-over fโˆž') n a = + eq-htpy + ( ฮป p โ†’ + {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) + + sect-over-DDMO-map-over' : + ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ + section-descent-data-sequential-colimit DDMO + sect-over-DDMO-map-over' = + {!sect-family-sect-dd-sequential-colimit!} + + map-over-sect-DDMO : + section-descent-data-sequential-colimit DDMO โ†’ + hom-over-hom B f + ( descent-data-family-cocone-sequential-diagram c P) + ( descent-data-family-cocone-sequential-diagram c' Q) + map-over-sect-DDMO = + tot + ( ฮป s โ†’ + map-ฮ  + ( ฮป n โ†’ + ( map-implicit-ฮ  + ( ฮป a โ†’ + ( concat-htpy + ( inv-htpy + ( ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + (map-hom-sequential-diagram B f n a))) โˆ˜ + ( s n a)) ยทl + ( is-retraction-inv-tr P + ( coherence-cocone-sequential-diagram c n a)))) + ( _)) โˆ˜ + ( map-equiv + ( equiv-htpy-precomp-htpy-ฮ  _ _ + ( equiv-tr P + ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ + ( htpy-eq + {f = + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) โˆ˜ + ( s n a) โˆ˜ + ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} + { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ + ( implicit-explicit-ฮ ))) + + map-over-diagram-map-over-colimit : + ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ + hom-over-hom B f + ( descent-data-family-cocone-sequential-diagram c P) + ( descent-data-family-cocone-sequential-diagram c' Q) + pr1 (map-over-diagram-map-over-colimit fโˆž') n a = + ( tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ + ( fโˆž' (map-cocone-sequential-diagram c n a)) + pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = + pasting-vertical-coherence-square-maps + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( fโˆž' _) + ( fโˆž' _) + ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) + ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) + ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) + ( ฮป q โ†’ + substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ + inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) + ( ( inv-htpy + ( ฮป q โ†’ + ( tr-concat + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' f n a) + ( _) + ( q)) โˆ™ + ( tr-concat + ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) + ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) + ( tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' f n a) + ( q))) โˆ™ + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h + ( ฮป q โ†’ + ap + ( ฮป p โ†’ tr Q p q) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h + ( tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) + + abstract + triangle-map-over-sect-DDMO : + coherence-triangle-maps + ( map-over-diagram-map-over-colimit) + ( map-over-sect-DDMO) + ( sect-over-DDMO-map-over) + triangle-map-over-sect-DDMO fโˆž' = + eq-pair-eq-fiber + ( eq-htpy + ( ฮป n โ†’ + eq-htpy-implicit + ( ฮป a โ†’ + eq-htpy + ( ฮป p โ†’ + {!!})))) + + is-equiv-map-over-sect-DDMO : + is-equiv map-over-sect-DDMO + is-equiv-map-over-sect-DDMO = + is-equiv-tot-is-fiberwise-equiv + ( ฮป s โ†’ + is-equiv-map-ฮ -is-fiberwise-equiv + ( ฮป n โ†’ + is-equiv-comp _ _ + ( is-equiv-implicit-explicit-ฮ ) + ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv + ( ฮป a โ†’ + is-equiv-comp _ _ + ( funext _ _) + ( is-equiv-comp _ _ + ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) + ( is-equiv-concat-htpy _ _)))))) + + is-equiv-map-over-diagram-map-over-colimit : + is-equiv map-over-diagram-map-over-colimit + is-equiv-map-over-diagram-map-over-colimit = + {!is-equiv-left-map-triangle + ( map-over-diagram-map-over-colimit) + ( map-over-sect-DDMO) + ( sect-over-DDMO-map-over) + ( triangle-map-over-sect-DDMO) + ( is-equiv) !} +``` + ```agda module big-thm {l1 l2 l3 l4 l5 l6 : Level} @@ -153,7 +619,47 @@ module big-thm f'โˆžn-square-over : {n : โ„•} โ†’ square-over {Q4 = Qn} (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) Hn - f'โˆžn-square-over p = {!qn!} + f'โˆžn-square-over {n} {a} = + pasting-vertical-coherence-square-maps + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( f'โˆž) + ( f'โˆž) + ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) + ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ a)) + ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ (an a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( Hn a)) โˆ˜ + ( tr Q (coherence-cocone-sequential-diagram c' n (fn a)))) + ( ฮป q โ†’ + substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ + inv (preserves-tr (ฮป p โ†’ f'โˆž {p}) (coherence-cocone-sequential-diagram c n a) q)) + ( ( inv-htpy + ( ฮป q โ†’ + ( tr-concat + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' H n a) + ( _) + ( q)) โˆ™ + ( tr-concat + ( coherence-cocone-sequential-diagram c' n (fn a)) + ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (Hn a)) + ( tr Q + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' H n a) + ( q))) โˆ™ + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( Hn a)))) โˆ™h + ( ฮป q โ†’ + ap + ( ฮป p โ†’ tr Q p q) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H n a))) โˆ™h + ( tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + up-c c' H (succ-โ„• n) (an a)))) thm : (sA : section-dependent-sequential-diagram A ๐’ซ) โ†’ @@ -180,25 +686,37 @@ module big-thm thm sA sB S ฮฑ = map-dependent-universal-property-sequential-colimit ( dependent-universal-property-universal-property-sequential-colimit _ up-c) - ( ( ฮป n a โ†’ - ap f'โˆž - ( pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c) - ( sA)) n a) โˆ™ - map-equiv - ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) - ( S n a โˆ™ - inv - ( apd sBโˆž (Cn n a) โˆ™ - pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c') - ( sB)) n (fn a)))) , - {!!}) + ( tS , + ( ฮป n a โ†’ + map-compute-dependent-identification-eq-value + ( f'โˆž โˆ˜ sAโˆž) + ( sBโˆž โˆ˜ fโˆž) + ( coherence-cocone-sequential-diagram c n a) + ( tS n a) + ( tS (succ-โ„• n) (an a)) + ( {!f'โˆžn-square-over!}))) where sAโˆž : (x : X) โ†’ P x sAโˆž = sect-family-sect-dd-sequential-colimit up-c P sA sBโˆž : (y : Y) โ†’ Q y sBโˆž = sect-family-sect-dd-sequential-colimit up-c' Q sB + tS : + (n : โ„•) โ†’ + (f'โˆž โˆ˜ sAโˆž โˆ˜ (map-cocone-sequential-diagram c n)) ~ + (sBโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) + tS n a = + ap f'โˆž + ( pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( sA)) n a) โˆ™ + map-equiv + ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) + ( S n a โˆ™ + inv + ( apd sBโˆž (Cn n a) โˆ™ + pr1 + ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c') + ( sB)) n (fn a))) ``` diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index 3e74048c0c..d8ea225f0e 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -40,7 +40,8 @@ module _ where htpy-over : UU (l1 โŠ” l3 โŠ” l4) - htpy-over = {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') + htpy-over = + {a : A} (a' : A' a) โ†’ dependent-identification B' (H a) (f' a') (g' a') module _ {l1 l2 l3 l4 : Level} @@ -162,7 +163,6 @@ module _ comp-section-map-over G F = g' ยทl F โˆ™h G ยทr f - module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} @@ -497,7 +497,6 @@ module _ H' (sA a) โˆ™ G a ๏ผ ap (tr X' (H a) โˆ˜ m') (F a) โˆ™ ap (tr X' (H a)) (M (f a)) โˆ™ apd sX (H a) - equiv-get-section-triangle-over' : (H : coherence-triangle-maps' g m f) โ†’ (H' : htpy-over X' H (m' โˆ˜ f') g') โ†’ @@ -657,8 +656,10 @@ module _ ( assoc-comp-section-map-over f1' m' f2' s1 s2 s3 s4 F1 M F2) ( [iv]))) where - [i] = unget-section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 S2 + [i] = + unget-section-triangle-over m g2 f2 m' g2' f2' s2 s3 s4 M G2 F2 B2 T2 S2 [ii] = right-whisk-section-htpy-over B2 T2 s2 s4 _ _ [i] f1 f1' s1 F1 - [iii] = unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 + [iii] = + unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 [iv] = left-whisk-section-htpy-over B1 T1 s1 s3 _ _ [iii] f2 f2' s4 F2 ``` diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index cbcdc8980b..9e95f96ff4 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -40,20 +40,19 @@ open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagram open import synthetic-homotopy-theory.dependent-cocones-under-spans open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits open import synthetic-homotopy-theory.descent-data-pushouts -open import synthetic-homotopy-theory.functoriality-sequential-colimits -open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts open import synthetic-homotopy-theory.families-descent-data-pushouts open import synthetic-homotopy-theory.flattening-lemma-pushouts +open import synthetic-homotopy-theory.functoriality-sequential-colimits +open import synthetic-homotopy-theory.functoriality-stuff +open import synthetic-homotopy-theory.identity-systems-descent-data-pushouts open import synthetic-homotopy-theory.pushouts +open import synthetic-homotopy-theory.sections-descent-data-pushouts open import synthetic-homotopy-theory.sequential-colimits open import synthetic-homotopy-theory.sequential-diagrams open import synthetic-homotopy-theory.shifts-sequential-diagrams -open import synthetic-homotopy-theory.sections-descent-data-pushouts +open import synthetic-homotopy-theory.stuff-over open import synthetic-homotopy-theory.universal-property-pushouts open import synthetic-homotopy-theory.zigzags-sequential-diagrams - -open import synthetic-homotopy-theory.functoriality-stuff -open import synthetic-homotopy-theory.stuff-over ``` @@ -66,7 +65,6 @@ colimits of pushouts. ## Definitions ```agda - module _ {l1 l2 l3 : Level} (๐’ฎ : span-diagram l1 l2 l3) where @@ -290,19 +288,6 @@ module _ ### TODO ```agda -nat-lemma : - {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} - {P : A โ†’ UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) - {x y : A} {p : x ๏ผ y} - {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ - coherence-square-maps - ( tr P p) - ( h x) - ( h y) - ( tr Q q) -nat-lemma f h {p = p} refl x = substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) - apd-lemma : {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} (f : (a : A) โ†’ B a) (g : (a : A) โ†’ B a โ†’ C a) {x y : A} (p : x ๏ผ y) โ†’ @@ -716,7 +701,6 @@ module _ ( dep-cocone-b (right-map-span-diagram ๐’ฎ s)) ( s , refl , p)))) - tB : (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ right-family-descent-data-pushout R @@ -724,6 +708,20 @@ module _ tB b zero-โ„• (map-raise ()) tB b (succ-โ„• n) = dependent-cogap _ _ (pr1 (stages-cocones' n) b) + KB : + (b : codomain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ + dependent-identification + ( ev-pair (right-family-descent-data-pushout R) b) + ( coherence-cocone-standard-sequential-colimit n p) + ( tB b n p) + ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) + KB b zero-โ„• (map-raise ()) + KB b (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (stages-cocones' (succ-โ„• n)) b) + ( p)) + tA : (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ left-family-descent-data-pushout R @@ -731,47 +729,34 @@ module _ tA .aโ‚€ zero-โ„• (map-raise refl) = rโ‚€ tA a (succ-โ„• n) = dependent-cogap _ _ (pr1 (pr2 (stages-cocones' n)) a) - ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R - pr1 ind-singleton-zigzag-id-pushout' (a , p) = - dependent-cogap-standard-sequential-colimit - ( tA a , KA) - ( p) - where - KA : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ + KA : + (a : domain-span-diagram ๐’ฎ) (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ a n) โ†’ dependent-identification ( ev-pair (left-family-descent-data-pushout R) a) ( coherence-cocone-standard-sequential-colimit n p) ( tA a n p) ( tA a (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ a n p)) - KA zero-โ„• (map-raise refl) = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' 0)) a) - ( map-raise refl)) - KA (succ-โ„• n) p = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) - ( p)) + KA a zero-โ„• (map-raise refl) = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' 0)) a) + ( map-raise refl)) + KA a (succ-โ„• n) p = + inv + ( compute-inl-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) + ( p)) + + ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R + pr1 ind-singleton-zigzag-id-pushout' (a , p) = + dependent-cogap-standard-sequential-colimit + ( tA a , KA a) + ( p) pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = dependent-cogap-standard-sequential-colimit - ( tB b , KB) + ( tB b , KB b) ( p) where - KB : - (n : โ„•) (p : Path-to-b ๐’ฎ aโ‚€ b n) โ†’ - dependent-identification - ( ev-pair (right-family-descent-data-pushout R) b) - ( coherence-cocone-standard-sequential-colimit n p) - ( tB b n p) - ( tB b (succ-โ„• n) (inl-Path-to-b ๐’ฎ aโ‚€ b n p)) - KB zero-โ„• (map-raise ()) - KB (succ-โ„• n) p = - inv - ( compute-inl-dependent-cogap _ _ - ( pr1 (stages-cocones' (succ-โ„• n)) b) - ( p)) pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = dependent-cogap-standard-sequential-colimit ( tS , KS) @@ -848,7 +833,8 @@ module _ ( CB s n p) ( map-family-descent-data-pushout R _ (tA (left-map-span-diagram ๐’ฎ s) n p))) ๏ผ ( tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) - tS-in-diagram s zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) + tS-in-diagram s zero-โ„• (map-raise refl) = + inv (compute-inr-dependent-cogap _ _ _ _) tS-in-diagram s (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) module vertices @@ -857,11 +843,13 @@ module _ PAn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) PAn = Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) QAn : {n : โ„•} โ†’ PAn n โ†’ UU l5 - QAn {n} p = left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) + QAn {n} p = + left-family-descent-data-pushout R (left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) PBn : (n : โ„•) โ†’ UU (l1 โŠ” l2 โŠ” l3) PBn = Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• QBn : {n : โ„•} โ†’ PBn n โ†’ UU l5 - QBn {n} p = right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) + QBn {n} p = + right-family-descent-data-pushout R (right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) fn : {n : โ„•} โ†’ PAn n โ†’ PBn n fn = concat-s ๐’ฎ aโ‚€ s _ gn : {n : โ„•} โ†’ PAn n โ†’ PAn (succ-โ„• n) @@ -1119,6 +1107,24 @@ module _ (s : spanning-type-span-diagram ๐’ฎ) (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ {!!} + -- (pr1 (pr2 (pr2 R) (s , p)) + -- (sect-family-sect-dd-sequential-colimit + -- up-standard-sequential-colimit + -- (ฮป y โ†’ pr1 R (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s , y)) + -- (tA (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s) , KA (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s)) + -- p)) ๏ผ + -- (sect-family-sect-dd-sequential-colimit + -- (up-shift-cocone-sequential-diagram 1 + -- up-standard-sequential-colimit) + -- (ฮป y โ†’ pr1 (pr2 R) (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s , y)) + -- (tB (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s) โˆ˜ succ-โ„• , + -- KB (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s) โˆ˜ succ-โ„•) + -- (big-thm.fโˆž up-standard-sequential-colimit + -- (up-shift-cocone-sequential-diagram 1 + -- up-standard-sequential-colimit) + -- (hom-diagram-zigzag-sequential-diagram + -- (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + -- p)) -- map-family-descent-data-pushout R _ (pr1 ind-singleton-zigzag-id-pushout' (left-map-span-diagram ๐’ฎ s , p)) ๏ผ -- pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p) alt-ind-coherence s p = @@ -1134,9 +1140,10 @@ module _ ( right-family-descent-data-pushout R) ( right-map-span-diagram ๐’ฎ s)) ( ฮป {p} โ†’ map-family-descent-data-pushout R (s , p)) - ( {!!}) - ( {!!}) - ( {!!}) + ( tA (left-map-span-diagram ๐’ฎ s) , KA (left-map-span-diagram ๐’ฎ s)) + ( tB (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• , + KB (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„•) + ( tS-in-diagram s) ( {!!}) ( p) From e3bd101577b826371ea8a3ed694ac057268bd057 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Tue, 28 Jan 2025 18:21:30 +0100 Subject: [PATCH 18/33] Unstraightening diagrams --- .../stuff-over.lagda.md | 258 ++++++++++++++++++ 1 file changed, 258 insertions(+) diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index d8ea225f0e..45c1d9db66 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -29,6 +29,23 @@ open import foundation.whiskering-homotopies-concatenation ```agda +open import foundation.dependent-pair-types +open import foundation.equality-dependent-pair-types +open import foundation.functoriality-dependent-pair-types +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + (f : A โ†’ B) + (f' : (a : A) โ†’ A' a โ†’ B' (f a)) + where + + tot-map-over : ฮฃ A A' โ†’ ฮฃ B B' + tot-map-over = map-ฮฃ B' f f' + + coh-tot-map-over : coherence-square-maps tot-map-over pr1 pr1 f + coh-tot-map-over = refl-htpy + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} @@ -663,3 +680,244 @@ module _ unget-section-triangle-over' f1 g1 m f1' g1' m' s1 s2 s3 F1 G1 M B1 T1 S1 [iv] = left-whisk-section-htpy-over B1 T1 s1 s3 _ _ [iii] f2 f2' s4 F2 ``` + +```agda +open import foundation.sections +open import foundation.transport-along-homotopies +module _ + {l1 l2 : Level} + {A : UU l1} (B : A โ†’ UU l2) + where + + sect-section : + section (pr1 {B = B}) โ†’ + ((a : A) โ†’ B a) + sect-section (s , H) a = tr B (H a) (pr2 (s a)) + + section-sect : + ((a : A) โ†’ B a) โ†’ + section (pr1 {B = B}) + section-sect = section-dependent-function + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {P : A โ†’ UU l2} + {B : UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) + (f' : {a : A} โ†’ P a โ†’ Q (f a)) + where + + section-displayed-map-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4) + section-displayed-map-over = + ฮฃ ( section (pr1 {B = P})) + ( ฮป sA โ†’ + ฮฃ ( section (pr1 {B = Q})) + ( ฮป sB โ†’ + ฮฃ ( coherence-square-maps f + ( map-section pr1 sA) + ( map-section pr1 sB) + ( tot-map-over f (ฮป a โ†’ f' {a}))) + ( ฮป H โ†’ + ( ( pasting-vertical-coherence-square-maps + ( f) + ( map-section pr1 sA) + ( map-section pr1 sB) + ( tot-map-over f (ฮป a โ†’ f' {a})) + ( pr1) + ( pr1) + ( f) + ( H) + ( refl-htpy))) โˆ™h + ( is-section-map-section pr1 sB ยทr f) ~ + ( f ยทl is-section-map-section pr1 sA) โˆ™h refl-htpy))) + + sect-map-over-section-map-over : + (s : section-displayed-map-over) โ†’ + section-map-over f + ( f') + ( sect-section P (pr1 s)) + ( sect-section Q (pr1 (pr2 s))) + sect-map-over-section-map-over (sA , sB , H , ฮฑ) a = + preserves-tr (ฮป a โ†’ f' {a}) (ฯƒA a) (sA2 a) โˆ™ + inv (substitution-law-tr Q f (ฯƒA a)) โˆ™ + [i] โˆ™ + tr-concat (H1 a) (ฯƒB (f a)) (f' (sA2 a)) โˆ™ + ap + ( tr Q (ฯƒB (f a))) + ( substitution-law-tr Q pr1 (H a) โˆ™ + apd pr2 (H a)) + where + sA1 : A โ†’ A + sA1 = pr1 โˆ˜ map-section pr1 sA + ฯƒA : sA1 ~ id + ฯƒA = is-section-map-section pr1 sA + sA2 : (a : A) โ†’ P (sA1 a) + sA2 = pr2 โˆ˜ map-section pr1 sA + sB1 : B โ†’ B + sB1 = pr1 โˆ˜ map-section pr1 sB + ฯƒB : sB1 ~ id + ฯƒB = is-section-map-section pr1 sB + H1 : f โˆ˜ sA1 ~ sB1 โˆ˜ f + H1 = pr1 ยทl H + [i] : + tr Q (ap f (ฯƒA a)) (f' (sA2 a)) ๏ผ + tr Q (H1 a โˆ™ ฯƒB (f a)) (f' (sA2 a)) + [i] = + ap + ( ฮป p โ†’ tr Q p (f' (sA2 a))) + ( inv (ฮฑ a โˆ™ right-unit)) +``` + +```agda +open import foundation.commuting-cubes-of-maps +module _ + {l1 l2 l3 l4 l1' l2' l3' l4' l1'' l2'' l3'' l4'' : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) + {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} + (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') + {A'' : UU l1''} {B'' : UU l2''} {C'' : UU l3''} {D'' : UU l4''} + (f'' : A'' โ†’ B'') (g'' : A'' โ†’ C'') (h'' : B'' โ†’ D'') (k'' : C'' โ†’ D'') + (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) + (hA' : A'' โ†’ A') (hB' : B'' โ†’ B') (hC' : C'' โ†’ C') (hD' : D'' โ†’ D') + (mid : (h' โˆ˜ f') ~ (k' โˆ˜ g')) + (bottom-back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) + (bottom-back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) + (bottom-front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) + (bottom-front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) + (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) + (top : (h'' โˆ˜ f'') ~ (k'' โˆ˜ g'')) + (top-back-left : (f' โˆ˜ hA') ~ (hB' โˆ˜ f'')) + (top-back-right : (g' โˆ˜ hA') ~ (hC' โˆ˜ g'')) + (top-front-left : (h' โˆ˜ hB') ~ (hD' โˆ˜ h'')) + (top-front-right : (k' โˆ˜ hC') ~ (hD' โˆ˜ k'')) + where + + pasting-vertical-coherence-cube-maps : + coherence-cube-maps f g h k f' g' h' k' hA hB hC hD + ( mid) + ( bottom-back-left) + ( bottom-back-right) + ( bottom-front-left) + ( bottom-front-right) + ( bottom) โ†’ + coherence-cube-maps f' g' h' k' f'' g'' h'' k'' hA' hB' hC' hD' + ( top) + ( top-back-left) + ( top-back-right) + ( top-front-left) + ( top-front-right) + ( mid) โ†’ + coherence-cube-maps f g h k f'' g'' h'' k'' + ( hA โˆ˜ hA') (hB โˆ˜ hB') (hC โˆ˜ hC') (hD โˆ˜ hD') + ( top) + ( pasting-vertical-coherence-square-maps f'' hA' hB' f' hA hB f + ( top-back-left) (bottom-back-left)) + ( pasting-vertical-coherence-square-maps g'' hA' hC' g' hA hC g + ( top-back-right) (bottom-back-right)) + ( pasting-vertical-coherence-square-maps h'' hB' hD' h' hB hD h + ( top-front-left) (bottom-front-left)) + ( pasting-vertical-coherence-square-maps k'' hC' hD' k' hC hD k + ( top-front-right) (bottom-front-right)) + ( bottom) + pasting-vertical-coherence-cube-maps ฮฑ ฮฒ = {!!} +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} + {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} + (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) + (g1' : (p : P1) โ†’ Q1 p โ†’ Q3 (g1 p)) + (f1' : (p : P1) โ†’ Q1 p โ†’ Q2 (f1 p)) + (f2' : (p : P3) โ†’ Q3 p โ†’ Q4 (f2 p)) + (g2' : (p : P2) โ†’ Q2 p โ†’ Q4 (g2 p)) + (bottom : g2 โˆ˜ f1 ~ f2 โˆ˜ g1) + (top : square-over g1 f1 f2 g2 (g1' _) (f1' _) (f2' _) (g2' _) bottom) + where + + tot-square-over : + coherence-square-maps + ( tot-map-over g1 g1') + ( tot-map-over f1 f1') + ( tot-map-over {B' = Q4} f2 f2') + ( tot-map-over g2 g2') + tot-square-over = + coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p}) + + coh-tot-square-over : + coherence-cube-maps f1 g1 g2 f2 + ( map-ฮฃ Q2 f1 f1') + ( map-ฮฃ Q3 g1 g1') + ( map-ฮฃ Q4 g2 g2') + ( map-ฮฃ Q4 f2 f2') + ( pr1) + ( pr1) + ( pr1) + ( pr1) + ( tot-square-over) + ( refl-htpy) + ( refl-htpy) + ( refl-htpy) + ( refl-htpy) + ( bottom) + coh-tot-square-over (p , q) = + ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit + + section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l5 โŠ” l6 โŠ” l7 โŠ” l8) + section-displayed-cube-over = + ฮฃ ( section-displayed-map-over {Q = Q2} f1 (f1' _)) + ( ฮป sF1 โ†’ + ฮฃ ( section-displayed-map-over {Q = Q4} f2 (f2' _)) + ( ฮป sF2 โ†’ + ฮฃ ( coherence-square-maps g1 + ( map-section pr1 (pr1 sF1)) + ( map-section pr1 (pr1 sF2)) + ( tot-map-over g1 g1')) + ( ฮป G1 โ†’ + ฮฃ ( coherence-square-maps g2 + ( map-section pr1 (pr1 (pr2 sF1))) + ( map-section pr1 (pr1 (pr2 sF2))) + ( tot-map-over g2 g2')) + ( ฮป G2 โ†’ + ฮฃ ( coherence-cube-maps + ( tot-map-over f1 f1') + ( tot-map-over g1 g1') + ( tot-map-over g2 g2') + ( tot-map-over f2 f2') + f1 g1 g2 f2 + ( map-section pr1 (pr1 sF1)) + ( map-section pr1 (pr1 (pr2 sF1))) + ( map-section pr1 (pr1 sF2)) + ( map-section pr1 (pr1 (pr2 sF2))) + ( bottom) + ( pr1 (pr2 (pr2 sF1))) + ( G1) + ( G2) + ( pr1 (pr2 (pr2 sF2))) + ( tot-square-over)) + ( ฮป ฮฑ โ†’ + pasting-vertical-coherence-cube-maps f1 g1 g2 f2 + ( tot-map-over f1 f1') + ( tot-map-over g1 g1') + ( tot-map-over g2 g2') + ( tot-map-over f2 f2') + f1 g1 g2 f2 + pr1 pr1 pr1 pr1 + ( map-section pr1 (pr1 sF1)) + ( map-section pr1 (pr1 (pr2 sF1))) + ( map-section pr1 (pr1 sF2)) + ( map-section pr1 (pr1 (pr2 sF2))) + ( tot-square-over) + refl-htpy refl-htpy refl-htpy refl-htpy + ( bottom) + ( bottom) + ( pr1 (pr2 (pr2 sF1))) + ( G1) + ( G2) + ( pr1 (pr2 (pr2 sF2))) + ( coh-tot-square-over) + ( ฮฑ) ~ {!!} + ))))) +``` From 04cc699d96a8069b7ec6d1f633e1f51f6a1b4854 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 30 Jan 2025 19:02:23 +0100 Subject: [PATCH 19/33] Work on cubes from displayed squares --- .../stuff-over.lagda.md | 204 +++++++++++------- 1 file changed, 129 insertions(+), 75 deletions(-) diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index 45c1d9db66..7ca3abb082 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -9,6 +9,7 @@ module synthetic-homotopy-theory.stuff-over where ```agda open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions +open import foundation.commuting-cubes-of-maps open import foundation.commuting-squares-of-maps open import foundation.commuting-triangles-of-maps open import foundation.dependent-identifications @@ -22,6 +23,7 @@ open import foundation.identity-types open import foundation.transport-along-identifications open import foundation.transposition-identifications-along-equivalences open import foundation.universe-levels +open import foundation.whiskering-higher-homotopies-composition open import foundation.whiskering-homotopies-composition open import foundation.whiskering-homotopies-concatenation ``` @@ -738,14 +740,13 @@ module _ ( sect-section P (pr1 s)) ( sect-section Q (pr1 (pr2 s))) sect-map-over-section-map-over (sA , sB , H , ฮฑ) a = - preserves-tr (ฮป a โ†’ f' {a}) (ฯƒA a) (sA2 a) โˆ™ - inv (substitution-law-tr Q f (ฯƒA a)) โˆ™ - [i] โˆ™ - tr-concat (H1 a) (ฯƒB (f a)) (f' (sA2 a)) โˆ™ - ap + ( preserves-tr (ฮป a โ†’ f' {a}) (ฯƒA a) (sA2 a)) โˆ™ + ( inv (substitution-law-tr Q f (ฯƒA a))) โˆ™ + ( ap (ฮป p โ†’ tr Q p (f' (sA2 a))) (inv (ฮฑ a โˆ™ right-unit))) โˆ™ + ( tr-concat (H1 a) (ฯƒB (f a)) (f' (sA2 a))) โˆ™ + ( ap ( tr Q (ฯƒB (f a))) - ( substitution-law-tr Q pr1 (H a) โˆ™ - apd pr2 (H a)) + ( substitution-law-tr Q pr1 (H a) โˆ™ apd pr2 (H a))) where sA1 : A โ†’ A sA1 = pr1 โˆ˜ map-section pr1 sA @@ -759,71 +760,73 @@ module _ ฯƒB = is-section-map-section pr1 sB H1 : f โˆ˜ sA1 ~ sB1 โˆ˜ f H1 = pr1 ยทl H - [i] : - tr Q (ap f (ฯƒA a)) (f' (sA2 a)) ๏ผ - tr Q (H1 a โˆ™ ฯƒB (f a)) (f' (sA2 a)) - [i] = - ap - ( ฮป p โ†’ tr Q p (f' (sA2 a))) - ( inv (ฮฑ a โˆ™ right-unit)) ``` ```agda -open import foundation.commuting-cubes-of-maps module _ - {l1 l2 l3 l4 l1' l2' l3' l4' l1'' l2'' l3'' l4'' : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) - {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} - (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') - {A'' : UU l1''} {B'' : UU l2''} {C'' : UU l3''} {D'' : UU l4''} - (f'' : A'' โ†’ B'') (g'' : A'' โ†’ C'') (h'' : B'' โ†’ D'') (k'' : C'' โ†’ D'') - (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) - (hA' : A'' โ†’ A') (hB' : B'' โ†’ B') (hC' : C'' โ†’ C') (hD' : D'' โ†’ D') - (mid : (h' โˆ˜ f') ~ (k' โˆ˜ g')) - (bottom-back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) - (bottom-back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) - (bottom-front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) - (bottom-front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) - (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) - (top : (h'' โˆ˜ f'') ~ (k'' โˆ˜ g'')) - (top-back-left : (f' โˆ˜ hA') ~ (hB' โˆ˜ f'')) - (top-back-right : (g' โˆ˜ hA') ~ (hC' โˆ˜ g'')) - (top-front-left : (h' โˆ˜ hB') ~ (hD' โˆ˜ h'')) - (top-front-right : (k' โˆ˜ hC') ~ (hD' โˆ˜ k'')) + {l1 l2 : Level} + {A : UU l1} {B : A โ†’ UU l2} + (s : (a : A) โ†’ B a) where - pasting-vertical-coherence-cube-maps : - coherence-cube-maps f g h k f' g' h' k' hA hB hC hD - ( mid) - ( bottom-back-left) - ( bottom-back-right) - ( bottom-front-left) - ( bottom-front-right) - ( bottom) โ†’ - coherence-cube-maps f' g' h' k' f'' g'' h'' k'' hA' hB' hC' hD' - ( top) - ( top-back-left) - ( top-back-right) - ( top-front-left) - ( top-front-right) - ( mid) โ†’ - coherence-cube-maps f g h k f'' g'' h'' k'' - ( hA โˆ˜ hA') (hB โˆ˜ hB') (hC โˆ˜ hC') (hD โˆ˜ hD') - ( top) - ( pasting-vertical-coherence-square-maps f'' hA' hB' f' hA hB f - ( top-back-left) (bottom-back-left)) - ( pasting-vertical-coherence-square-maps g'' hA' hC' g' hA hC g - ( top-back-right) (bottom-back-right)) - ( pasting-vertical-coherence-square-maps h'' hB' hD' h' hB hD h - ( top-front-left) (bottom-front-left)) - ( pasting-vertical-coherence-square-maps k'' hC' hD' k' hC hD k - ( top-front-right) (bottom-front-right)) - ( bottom) - pasting-vertical-coherence-cube-maps ฮฑ ฮฒ = {!!} -``` + ap-map-section-family-lemma : + {a a' : A} (p : a ๏ผ a') โ†’ + ap (map-section-family s) p ๏ผ eq-pair-ฮฃ p (apd s p) + ap-map-section-family-lemma refl = refl +module _ + {l1 l2 l3 : Level} + {A : UU l1} {B : UU l2} {Q : B โ†’ UU l3} + (s : (b : B) โ†’ Q b) + {f g : A โ†’ B} (H : f ~ g) + where -```agda + left-whisker-dependent-function-lemma : + (a : A) โ†’ + (map-section-family s ยทl H) a ๏ผ eq-pair-ฮฃ (H a) (apd s (H a)) + left-whisker-dependent-function-lemma a = ap-map-section-family-lemma s (H a) +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + {f : A โ†’ B} (f' : (a : A) โ†’ A' a โ†’ B' (f a)) + where + + ap-map-ฮฃ-eq-fiber : + {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ + ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) + ap-map-ฮฃ-eq-fiber x .x refl = refl + + -- ap-map-ฮฃ-eq-fiber' : + -- {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ + -- ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) + -- ap-map-ฮฃ-eq-fiber' {a} x y p = + -- compute-ap-eq-pair-ฮฃ (map-ฮฃ B' f f') refl p โˆ™ + -- ap-comp (pair (f a)) (f' a) p +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} + {f : A โ†’ B} {g : B โ†’ C} + (f' : (a : A) โ†’ A' a โ†’ B' (f a)) + (g' : (b : B) โ†’ B' b โ†’ C' (g b)) + (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) + (F : (a : A) โ†’ f' a (sA a) ๏ผ sB (f a)) (G : (b : B) โ†’ g' b (sB b) ๏ผ sC (g b)) + where + + pasting-horizontal-comp : + pasting-horizontal-coherence-square-maps f g + ( map-section-family sA) (map-section-family sB) (map-section-family sC) + ( tot-map-over f f') (tot-map-over g g') + ( eq-pair-eq-fiber โˆ˜ F) + ( eq-pair-eq-fiber โˆ˜ G) ~ + eq-pair-eq-fiber โˆ˜ + ((g' _) ยทl F โˆ™h G ยทr f) + pasting-horizontal-comp a = + ap + ( _โˆ™ eq-pair-eq-fiber (G (f a))) + ( inv (ap-comp (tot-map-over g g') (pair (f a)) (F a)) โˆ™ + ap-comp (pair (g (f a))) (g' (f a)) (F a)) โˆ™ + inv (ap-concat (pair (g (f a))) (ap (g' (f a)) (F a)) (G (f a))) module _ {l1 l2 l3 l4 l5 l6 l7 l8 : Level} {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} @@ -852,15 +855,9 @@ module _ ( map-ฮฃ Q3 g1 g1') ( map-ฮฃ Q4 g2 g2') ( map-ฮฃ Q4 f2 f2') - ( pr1) - ( pr1) - ( pr1) - ( pr1) + pr1 pr1 pr1 pr1 ( tot-square-over) - ( refl-htpy) - ( refl-htpy) - ( refl-htpy) - ( refl-htpy) + refl-htpy refl-htpy refl-htpy refl-htpy ( bottom) coh-tot-square-over (p , q) = ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit @@ -911,8 +908,7 @@ module _ ( map-section pr1 (pr1 (pr2 sF2))) ( tot-square-over) refl-htpy refl-htpy refl-htpy refl-htpy - ( bottom) - ( bottom) + bottom bottom ( pr1 (pr2 (pr2 sF1))) ( G1) ( G2) @@ -920,4 +916,62 @@ module _ ( coh-tot-square-over) ( ฮฑ) ~ {!!} ))))) + + module _ + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) + (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' p (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' p (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' p (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' p (s2 p) ๏ผ s4 (g2 p)) + where + open import foundation.action-on-identifications-binary-functions + + _ : + pasting-vertical-coherence-square-maps g1 + ( map-section-family s1) (map-section-family s3) + ( tot-map-over g1 g1') (tot-map-over f1 f1') + ( tot-map-over {B' = Q4} f2 f2') (tot-map-over g2 g2') + ( eq-pair-eq-fiber โˆ˜ G1) + ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ + ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) + _ = ฮป p โ†’ ap (eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) ([i] p) โˆ™ + {!!} + where + [i] = + ฮป (p : P1) โ†’ + inv (ap-comp (map-ฮฃ Q4 f2 f2') (pair (g1 p)) (G1 p)) โˆ™ + ap-comp (pair (f2 (g1 p))) (f2' (g1 p)) (G1 p) + + section-cube-over-sect-square-over : + section-square-over g1 f1 f2 g2 + ( g1' _) (f1' _) (f2' _) (g2' _) + s1 s2 s3 s4 + G1 F1 F2 G2 + bottom top โ†’ + section-displayed-cube-over + pr1 (section-cube-over-sect-square-over ฮฑ) = + ( section-dependent-function s1) , + ( section-dependent-function s2) , + ( ฮป p โ†’ eq-pair-eq-fiber (F1 p)) , + ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) + pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = + ( section-dependent-function s3) , + ( section-dependent-function s4) , + ( ฮป p โ†’ eq-pair-eq-fiber (F2 p)) , + ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) + pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = + ( ฮป p โ†’ eq-pair-eq-fiber (G1 p)) , + ( ฮป p โ†’ eq-pair-eq-fiber (G2 p)) , + ( ฮป p โ†’ + ap-binary + ( _โˆ™_) + ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) + ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ + {!!} โˆ™ + ap-binary + ( _โˆ™_) + ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) + ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , + ( {!!}) ``` From 037a2324ac860c10a19d74a37e3738b32b05d90e Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Sat, 1 Feb 2025 00:29:35 +0100 Subject: [PATCH 20/33] Simplifications --- .../stuff-over.lagda.md | 731 ++++++++++++------ 1 file changed, 484 insertions(+), 247 deletions(-) diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index 7ca3abb082..709671029f 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -18,7 +18,6 @@ open import foundation.function-extensionality open import foundation.function-types open import foundation.functoriality-dependent-function-types open import foundation.homotopies -open import foundation.homotopy-induction open import foundation.identity-types open import foundation.transport-along-identifications open import foundation.transposition-identifications-along-equivalences @@ -73,8 +72,7 @@ module _ where inv-htpy-over : htpy-over B' H f' g' โ†’ htpy-over B' (inv-htpy H) g' f' - inv-htpy-over H' a' = - map-eq-transpose-equiv-inv (equiv-tr B' (H _)) (inv (H' a')) + inv-htpy-over H' {a} a' = inv-dependent-identification B' (H a) (H' a') module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -91,6 +89,20 @@ module _ right-whisk-htpy-over : htpy-over B' (H ยทr s) (f' โˆ˜ s') (g' โˆ˜ s') right-whisk-htpy-over a' = H' (s' a') +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} + where + + left-whisk-dependent-identification : + {s : A โ†’ B} (s' : {a : A} โ†’ A' a โ†’ B' (s a)) + {x y : A} (p : x ๏ผ y) + {x' : A' x} {y' : A' y} (q : dependent-identification A' p x' y') โ†’ + dependent-identification B' (ap s p) (s' x') (s' y') + left-whisk-dependent-identification s' refl q = ap s' q + + module _ {l1 l2 l3 l4 l5 l6 : Level} {A : UU l1} {B : UU l2} {X : UU l3} @@ -110,34 +122,7 @@ module _ tr X' (ap s (H a)) (s' (f' a')) ๏ผ s' (g'a') left-whisk-htpy-over : htpy-over X' (s ยทl H) (s' โˆ˜ f') (s' โˆ˜ g') - left-whisk-htpy-over {a} a' = - ind-htpy f - ( LWMOTIF a') - ( ap s') - ( H) - ( H' a') - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {X' : X โ†’ UU l6} - {f : A โ†’ B} - {f' g' : {a : A} โ†’ A' a โ†’ B' (f a)} - (H' : {a : A} โ†’ f' {a} ~ g') - {s : B โ†’ X} (s' : {b : B} โ†’ B' b โ†’ X' (s b)) - where - - compute-left-whisk-htpy-over : - {a : A} (a' : A' a) โ†’ - left-whisk-htpy-over {B' = B'} {X' = X'} {f = f} refl-htpy H' s' a' ๏ผ ap s' (H' a') - compute-left-whisk-htpy-over a' = - htpy-eq - ( htpy-eq-implicit - ( compute-ind-htpy f - ( LWMOTIF {B' = B'} {X' = X'} refl-htpy H' s' a') - ( ap s')) - ( g' a')) - ( H' a') + left-whisk-htpy-over {a} a' = left-whisk-dependent-identification s' (H a) (H' a') module _ {l1 l2 l3 l4 : Level} @@ -182,6 +167,19 @@ module _ comp-section-map-over G F = g' ยทl F โˆ™h G ยทr f +module _ + {l1 l2 : Level} + {A : UU l1} {B : A โ†’ UU l2} + {x y : A} (p : x ๏ผ y) + {x' : B x} {y' : B y} (q : dependent-identification B p x' y') + (s : (a : A) โ†’ B a) + (F : x' ๏ผ s x) (G : y' ๏ผ s y) + where + + section-dependent-identification : UU l2 + section-dependent-identification = + q โˆ™ G ๏ผ ap (tr B p) F โˆ™ apd s p + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} @@ -198,9 +196,26 @@ module _ section-htpy-over : UU (l1 โŠ” l4) section-htpy-over = - (a : A) โ†’ - H' (sA a) โˆ™ G a ๏ผ - ap (tr B' (H a)) (F a) โˆ™ apd sB (H a) + (a : A) โ†’ section-dependent-identification (H a) (H' (sA a)) sB (F a) (G a) + +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + + inv-section-identification-over : + {x y : A} (p : x ๏ผ y) โ†’ + {x' : B x} {y' : B y} (q : dependent-identification B p x' y') โ†’ + (s : (a : A) โ†’ B a) โ†’ + (F : x' ๏ผ s x) (G : y' ๏ผ s y) โ†’ + section-dependent-identification p q s F G โ†’ + section-dependent-identification + ( inv p) + ( inv-dependent-identification B p q) + ( s) + ( G) + ( F) + inv-section-identification-over refl refl s F G ฮฑ = + inv (right-unit โˆ™ ap-id G โˆ™ ฮฑ โˆ™ right-unit โˆ™ ap-id F) module _ {l1 l2 l3 l4 : Level} @@ -225,34 +240,8 @@ module _ ( sB) ( G) ( F) - inv-section-htpy-over ฮฑ = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ - (H' : htpy-over B' H f' g') โ†’ - (G : section-map-over g g' sA sB) โ†’ - section-htpy-over H H' sA sB F G โ†’ - section-htpy-over - ( inv-htpy H) - ( inv-htpy-over B' H f' g' H') - sA sB G F) - ( ฮป H' G ฮฑ a โ†’ - ind-htpy f' - ( ฮป g'a H'a โ†’ - (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ - (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ - map-eq-transpose-equiv-inv (equiv-tr B' refl) (inv (H'a (sA a))) โˆ™ F a ๏ผ - ap (tr B' refl) Ga โˆ™ apd sB refl) - ( ฮป Ga ฮฑa โ†’ - ap (_โˆ™ F a) (compute-refl-eq-transpose-equiv-inv (equiv-tr B' refl)) โˆ™ - inv (right-unit โˆ™ ap-id _ โˆ™ (ฮฑa โˆ™ right-unit โˆ™ ap-id _))) - ( H') - ( G a) - ( ฮฑ a)) - ( H) - ( H') - ( G) - ( ฮฑ) + inv-section-htpy-over ฮฑ a = + inv-section-identification-over (H a) (H' (sA a)) sB (F a) (G a) (ฮฑ a) module _ {l1 l2 l3 l4 l5 l6 l7 l8 : Level} @@ -315,6 +304,8 @@ module _ (sX : (x : X) โ†’ X' x) (S : section-map-over s s' sX sA) where + open import foundation.commuting-squares-of-identifications + open import foundation.commuting-triangles-of-identifications right-whisk-section-htpy-over : section-htpy-over (H ยทr s) @@ -322,33 +313,45 @@ module _ sX sB ( comp-section-map-over f s f' s' sX sA sB F S) ( comp-section-map-over g s g' s' sX sA sB G S) - right-whisk-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - (H' : htpy-over B' H f' g') - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ - section-htpy-over (H ยทr s) - ( right-whisk-htpy-over H H' s s') - sX sB - ( comp-section-map-over f s f' s' sX sA sB F S) - ( comp-section-map-over g s g' s' sX sA sB G S)) - ( ฮป H' G ฮฑ x โ†’ - ind-htpy (f' {s x}) - ( ฮป g'sx H'sx โ†’ - (Gsx : g'sx (sA (s x)) ๏ผ sB (f (s x))) - (ฮฑsx : H'sx (sA (s x)) โˆ™ Gsx ๏ผ ap (tr B' refl) (F (s x)) โˆ™ apd sB refl) โ†’ - H'sx (s' (sX x)) โˆ™ ((ap g'sx (S x)) โˆ™ Gsx) ๏ผ - ap (tr B' refl) (ap f' (S x) โˆ™ (F (s x))) โˆ™ apd sB refl) - ( ฮป Gsx ฮฑsx โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (ap f' (S x) โˆ™_) (inv (ฮฑsx โˆ™ (right-unit โˆ™ ap-id _)))))) - ( H') - ( G (s x)) - ( ฮฑ (s x))) - ( H) - ( H') - ( G) - ( ฮฑ) + right-whisk-section-htpy-over x = + right-whisker-concat-coherence-square-identifications + ( ap (tr B' (H (s x)) โˆ˜ f') (S x)) + ( H' (s' (sX x))) + ( H' (sA (s x))) + ( ap g' (S x)) + ( nat-htpy (H' {s x}) (S x)) + ( G (s x)) โˆ™ + ap (_โˆ™ (H' (sA (s x)) โˆ™ G (s x))) (ap-comp (tr B' (H (s x))) f' (S x)) โˆ™ + ap (ap (tr B' (H (s x))) (ap f' (S x)) โˆ™_) (ฮฑ (s x)) โˆ™ + right-whisker-concat-coherence-triangle-identifications' + ( ap (tr B' (H (s x))) (ap f' (S x) โˆ™ F (s x))) + ( ap (tr B' (H (s x))) (F (s x))) + ( ap (tr B' (H (s x))) (ap f' (S x))) + ( apd sB (H (s x))) + ( inv (ap-concat (tr B' (H (s x))) (ap f' (S x)) (F (s x)))) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {X : UU l2} + {A' : A โ†’ UU l3} {X' : X โ†’ UU l4} + where + + left-whisk-section-dependent-identification : + {x y : A} (p : x ๏ผ y) + {x' : A' x} {y' : A' y} (q : dependent-identification A' p x' y') + (sA : (a : A) โ†’ A' a) + (F : x' ๏ผ sA x) (G : y' ๏ผ sA y) + (ฮฑ : section-dependent-identification p q sA F G) + {s : A โ†’ X} (s' : {a : A} โ†’ A' a โ†’ X' (s a)) + (sX : (x : X) โ†’ X' x) + (S : section-map-over s s' sA sX) โ†’ + section-dependent-identification + ( ap s p) + ( left-whisk-dependent-identification s' p q) + sX (ap s' F โˆ™ S x) (ap s' G โˆ™ S y) + left-whisk-section-dependent-identification {x} refl refl sA F G ฮฑ s' sX S = + ap (ฮป p โ†’ ap s' p โˆ™ S x) (ฮฑ โˆ™ right-unit โˆ™ ap-id F) โˆ™ + inv (right-unit โˆ™ ap-id (ap s' F โˆ™ S x)) module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -376,34 +379,30 @@ module _ sA sX ( comp-section-map-over s f s' f' sA sB sX S F) ( comp-section-map-over s g s' g' sA sB sX S G) - left-whisk-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} โ†’ - (H' : htpy-over B' H f' g') - (G : section-map-over g g' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) โ†’ - section-htpy-over (s ยทl H) - ( left-whisk-htpy-over H H' s') - sA sX - ( comp-section-map-over s f s' f' sA sB sX S F) - ( comp-section-map-over s g s' g' sA sB sX S G)) - ( ฮป H' G ฮฑ a โ†’ - ap (_โˆ™ (ap s' (G a) โˆ™ S (f a))) - ( compute-left-whisk-htpy-over H' s' (sA a)) โˆ™ - ind-htpy f' - ( ฮป g'a H'a โ†’ - (Ga : g'a (sA a) ๏ผ sB (f a)) โ†’ - (ฮฑa : H'a (sA a) โˆ™ Ga ๏ผ ap (tr B' refl) (F a) โˆ™ apd sB refl) โ†’ - ap s' (H'a (sA a)) โˆ™ (ap s' Ga โˆ™ S (f a)) ๏ผ ap (tr X' refl) (ap s' (F a) โˆ™ S (f a)) โˆ™ apd sX refl) - ( ฮป Ga ฮฑa โ†’ inv (right-unit โˆ™ (ap-id _ โˆ™ ap (_โˆ™ S (f a)) (inv (ap (ap s') (ฮฑa โˆ™ (right-unit โˆ™ ap-id _))))))) - ( H') - ( G a) - ( ฮฑ a)) + left-whisk-section-htpy-over a = + left-whisk-section-dependent-identification (H a) (H' (sA a)) sB (F a) (G a) (ฮฑ a) s' sX S + +module _ + {l1 l2 : Level} + {A : UU l1} {B : A โ†’ UU l2} + where + + concat-section-dependent-identification : + {x y z : A} (p : x ๏ผ y) (q : y ๏ผ z) + {x' : B x} {y' : B y} {z' : B z} + (p' : dependent-identification B p x' y') + (q' : dependent-identification B q y' z') + (s : (a : A) โ†’ B a) + (F : x' ๏ผ s x) (G : y' ๏ผ s y) (H : z' ๏ผ s z) + (ฮฑ : section-dependent-identification p p' s F G) + (ฮฒ : section-dependent-identification q q' s G H) โ†’ + section-dependent-identification (p โˆ™ q) + ( concat-dependent-identification B p q p' q') + ( s) + ( F) ( H) - ( H') - ( G) - ( ฮฑ) + concat-section-dependent-identification refl q refl q' s F G H ฮฑ ฮฒ = + ฮฒ โˆ™ ap (ฮป p โ†’ ap (tr B q) p โˆ™ apd s q) (ฮฑ โˆ™ right-unit โˆ™ ap-id F) module _ {l1 l2 l3 l4 : Level} @@ -431,49 +430,9 @@ module _ ( sB) ( F) ( I) - concat-section-htpy-over = - ind-htpy f - ( ฮป g H โ†’ - {i : A โ†’ B} (K : g ~ i) - {g' : {a : A} โ†’ A' a โ†’ B' (g a)} - {i' : {a : A} โ†’ A' a โ†’ B' (i a)} - (H' : htpy-over B' H f' g') (K' : htpy-over B' K g' i') - (G : section-map-over g g' sA sB) - (I : section-map-over i i' sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - (ฮฒ : section-htpy-over K K' sA sB G I) โ†’ - section-htpy-over - ( H โˆ™h K) - ( concat-htpy-over H K H' K') - sA sB F I) - ( ฮป K H' K' G I ฮฑ ฮฒ a โ†’ - ind-htpy (f' {a}) - ( ฮป g'a H' โ†’ - {ia : B} (K : f a ๏ผ ia) - {i'a : A' a โ†’ B' ia} - (K' : (a' : A' a) โ†’ dependent-identification B' K (g'a a') (i'a a')) - (G : g'a (sA a) ๏ผ sB (f a)) - (I : i'a (sA a) ๏ผ sB ia) - (ฮฑ : H' (sA a) โˆ™ G ๏ผ ap id (F a) โˆ™ refl) - (ฮฒ : K' (sA a) โˆ™ I ๏ผ ap (tr B' K) G โˆ™ apd sB K) โ†’ - concat-dependent-identification B' refl K (H' (sA a)) (K' (sA a)) โˆ™ I ๏ผ - ap (tr B' K) (F a) โˆ™ apd sB K) - ( ฮป K K' G I ฮฑ ฮฒ โ†’ ฮฒ โˆ™ ap (ฮป p โ†’ ap (tr B' K) p โˆ™ apd sB K) (ฮฑ โˆ™ (right-unit โˆ™ ap-id (F a)))) - ( H' {a}) - ( K a) - ( K' {a}) - ( G a) - ( I a) - ( ฮฑ a) - ( ฮฒ a)) - ( H) - ( K) - ( H') - ( K') - ( G) - ( I) - ( ฮฑ) - ( ฮฒ) + concat-section-htpy-over a = + concat-section-dependent-identification + ( H a) (K a) (H' (sA a)) (K' (sA a)) sB (F a) (G a) (I a) (ฮฑ a) (ฮฒ a) module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -703,38 +662,97 @@ module _ module _ {l1 l2 l3 l4 : Level} - {A : UU l1} {P : A โ†’ UU l2} - {B : UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) - (f' : {a : A} โ†’ P a โ†’ Q (f a)) + {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} + (f : A โ†’ B) (f' : A' โ†’ B') + where + + htpy-hom-map : + (hA : A' โ†’ A) (hB : B' โ†’ B) โ†’ + coherence-square-maps f' hA hB f โ†’ + (hA' : A' โ†’ A) (hB' : B' โ†’ B) โ†’ + coherence-square-maps f' hA' hB' f โ†’ + hA ~ hA' โ†’ hB ~ hB' โ†’ + UU (l2 โŠ” l3) + htpy-hom-map hA hB H hA' hB' H' ฯƒA ฯƒB = H โˆ™h (ฯƒB ยทr f') ~ (f ยทl ฯƒA) โˆ™h H' + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {X : UU l4} {Y : UU l5} {Z : UU l6} + (f : A โ†’ B) (g : B โ†’ C) + (f' : X โ†’ Y) (g' : Y โ†’ Z) + (hA hA' : X โ†’ A) (hB hB' : Y โ†’ B) (hC hC' : Z โ†’ C) + (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') + (NL : coherence-square-maps f' hA hB f) + (FL : coherence-square-maps f' hA' hB' f) + (ฮฑ : htpy-hom-map f f' hA hB NL hA' hB' FL ฯƒA ฯƒB) + (NR : coherence-square-maps g' hB hC g) + (FR : coherence-square-maps g' hB' hC' g) + (ฮฒ : htpy-hom-map g g' hB hC NR hB' hC' FR ฯƒB ฯƒC) + where + open import foundation.commuting-squares-of-homotopies + + comp-htpy-hom-map : + htpy-hom-map (g โˆ˜ f) (g' โˆ˜ f') + hA hC + ( pasting-horizontal-coherence-square-maps f' g' hA hB hC f g NL NR) + hA' hC' + ( pasting-horizontal-coherence-square-maps f' g' hA' hB' hC' f g FL FR) + ฯƒA ฯƒC + comp-htpy-hom-map = + left-whisker-concat-coherence-square-homotopies (g ยทl NL) + ( g ยทl ฯƒB ยทr f') (NR ยทr f') (FR ยทr f') (ฯƒC ยทr (g' โˆ˜ f')) + ( ฮฒ ยทr f') โˆ™h + right-whisker-concat-htpy + ( inv-htpy + ( distributive-left-whisker-comp-concat g NL (ฯƒB ยทr f')) โˆ™h + left-whisker-compยฒ g ฮฑ โˆ™h + distributive-left-whisker-comp-concat g (f ยทl ฯƒA) FL โˆ™h + right-whisker-concat-htpy + ( preserves-comp-left-whisker-comp g f ฯƒA) + ( g ยทl FL)) + ( FR ยทr f') โˆ™h + assoc-htpy ((g โˆ˜ f) ยทl ฯƒA) (g ยทl FL) (FR ยทr f') + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} + (f : A โ†’ B) (f' : A' โ†’ B') + (hA : A' โ†’ A) (hB : B' โ†’ B) + (H : coherence-square-maps f' hA hB f) where section-displayed-map-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4) section-displayed-map-over = - ฮฃ ( section (pr1 {B = P})) + ฮฃ ( section hA) ( ฮป sA โ†’ - ฮฃ ( section (pr1 {B = Q})) + ฮฃ ( section hB) ( ฮป sB โ†’ - ฮฃ ( coherence-square-maps f - ( map-section pr1 sA) - ( map-section pr1 sB) - ( tot-map-over f (ฮป a โ†’ f' {a}))) - ( ฮป H โ†’ - ( ( pasting-vertical-coherence-square-maps - ( f) - ( map-section pr1 sA) - ( map-section pr1 sB) - ( tot-map-over f (ฮป a โ†’ f' {a})) - ( pr1) - ( pr1) - ( f) - ( H) - ( refl-htpy))) โˆ™h - ( is-section-map-section pr1 sB ยทr f) ~ - ( f ยทl is-section-map-section pr1 sA) โˆ™h refl-htpy))) + ฮฃ ( coherence-square-maps + f (map-section hA sA) (map-section hB sB) f') + ( ฮป K โ†’ + htpy-hom-map f f + ( hA โˆ˜ map-section hA sA) + ( hB โˆ˜ map-section hB sB) + ( pasting-vertical-coherence-square-maps f + ( map-section hA sA) (map-section hB sB) f' hA hB f K H) + id id refl-htpy + ( is-section-map-section hA sA) + ( is-section-map-section hB sB)))) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {P : A โ†’ UU l2} + {B : UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) + (f' : {a : A} โ†’ P a โ†’ Q (f a)) + where sect-map-over-section-map-over : - (s : section-displayed-map-over) โ†’ + (s : + section-displayed-map-over f + (tot-map-over f (ฮป a โ†’ f' {a})) + pr1 pr1 refl-htpy) โ†’ section-map-over f ( f') ( sect-section P (pr1 s)) @@ -784,6 +802,14 @@ module _ (a : A) โ†’ (map-section-family s ยทl H) a ๏ผ eq-pair-ฮฃ (H a) (apd s (H a)) left-whisker-dependent-function-lemma a = ap-map-section-family-lemma s (H a) +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + concat-vertical-eq-pair : + {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ + (q : dependent-identification B p x' y') โ†’ (r : y' ๏ผ z') โ†’ + eq-pair-ฮฃ p (q โˆ™ r) ๏ผ eq-pair-ฮฃ p q โˆ™ eq-pair-eq-fiber r + concat-vertical-eq-pair {x} refl q r = ap-concat (pair x) q r module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} @@ -827,6 +853,254 @@ module _ ( inv (ap-comp (tot-map-over g g') (pair (f a)) (F a)) โˆ™ ap-comp (pair (g (f a))) (g' (f a)) (F a)) โˆ™ inv (ap-concat (pair (g (f a))) (ap (g' (f a)) (F a)) (G (f a))) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} + {f g : A โ†’ B} {f' g' : X โ†’ Y} + (top : f' ~ g') (bottom : f ~ g) + {hA : X โ†’ A} {hB : Y โ†’ B} + (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') + where + + hom-htpy : UU (l2 โŠ” l3) + hom-htpy = N โˆ™h (hB ยทl top) ~ (bottom ยทr hA) โˆ™h F + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} + (f g : A โ†’ B) (f' g' : X โ†’ Y) + (bottom : f ~ g) (top : f' ~ g') + (hA : X โ†’ A) (hB : Y โ†’ B) + (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') + (ฮฑ : hom-htpy top bottom N F) + (hA' : X โ†’ A) (hB' : Y โ†’ B) + (N' : f โˆ˜ hA' ~ hB' โˆ˜ f') (F' : g โˆ˜ hA' ~ hB' โˆ˜ g') + (ฮฒ : hom-htpy top bottom N' F') + (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') + (ฮณN : htpy-hom-map f f' hA hB N hA' hB' N' ฯƒA ฯƒB) + (ฮณF : htpy-hom-map g g' hA hB F hA' hB' F' ฯƒA ฯƒB) + where + open import foundation.commuting-squares-of-homotopies + + nudged-ฮฑ nudged-ฮฒ : + (N โˆ™h (hB ยทl top)) โˆ™h (ฯƒB ยทr g') ~ + (f ยทl ฯƒA) โˆ™h ((bottom ยทr hA') โˆ™h F') + nudged-ฮฑ = + right-whisker-concat-htpy ฮฑ (ฯƒB ยทr g') โˆ™h + assoc-htpy (bottom ยทr hA) F (ฯƒB ยทr g') โˆ™h + left-whisker-concat-htpy (bottom ยทr hA) ฮณF โˆ™h + right-whisker-concat-coherence-square-homotopies + ( f ยทl ฯƒA) + ( bottom ยทr hA) + ( bottom ยทr hA') + ( g ยทl ฯƒA) + ( ฮป x โ†’ nat-htpy bottom (ฯƒA x)) + ( F') + nudged-ฮฒ = + left-whisker-concat-coherence-square-homotopies N + ( ฯƒB ยทr f') + ( hB ยทl top) + ( hB' ยทl top) + ( ฯƒB ยทr g') + ( ฮป x โ†’ inv (nat-htpy ฯƒB (top x))) โˆ™h + right-whisker-concat-htpy ฮณN (hB' ยทl top) โˆ™h + assoc-htpy (f ยทl ฯƒA) N' (hB' ยทl top) โˆ™h + left-whisker-concat-htpy (f ยทl ฯƒA) ฮฒ + + htpy-hom-htpy : UU (l2 โŠ” l3) + htpy-hom-htpy = nudged-ฮฑ ~ nudged-ฮฒ + +module _ + {l1 l2 l3 l4 l1' l2' l3' l4' : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) + {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} + (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') + (top : h' โˆ˜ f' ~ k' โˆ˜ g') + (bottom : h โˆ˜ f ~ k โˆ˜ g) + (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) + (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) + (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) + (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) + (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) + (ฮฑ : + coherence-cube-maps f g h k f' g' h' k' hA hB hC hD + top back-left back-right front-left front-right bottom) + (hA' : A' โ†’ A) (hB' : B' โ†’ B) (hC' : C' โ†’ C) (hD' : D' โ†’ D) + (back-left' : (f โˆ˜ hA') ~ (hB' โˆ˜ f')) + (back-right' : (g โˆ˜ hA') ~ (hC' โˆ˜ g')) + (front-left' : (h โˆ˜ hB') ~ (hD' โˆ˜ h')) + (front-right' : (k โˆ˜ hC') ~ (hD' โˆ˜ k')) + (ฮฒ : + coherence-cube-maps f g h k f' g' h' k' hA' hB' hC' hD' + top back-left' back-right' front-left' front-right' bottom) + (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') (ฯƒD : hD ~ hD') + (back-left-H : htpy-hom-map f f' hA hB back-left hA' hB' back-left' ฯƒA ฯƒB) + (back-right-H : htpy-hom-map g g' hA hC back-right hA' hC' back-right' ฯƒA ฯƒC) + (front-left-H : htpy-hom-map h h' hB hD front-left hB' hD' front-left' ฯƒB ฯƒD) + (front-right-H : htpy-hom-map k k' hC hD front-right hC' hD' front-right' ฯƒC ฯƒD) + where + open import foundation.commuting-squares-of-homotopies + + htpy-hom-square : + UU (l4 โŠ” l1') + htpy-hom-square = + htpy-hom-htpy (h โˆ˜ f) (k โˆ˜ g) (h' โˆ˜ f') (k' โˆ˜ g') bottom top hA hD + ( pasting-horizontal-coherence-square-maps f' h' hA hB hD f h back-left front-left) + ( pasting-horizontal-coherence-square-maps g' k' hA hC hD g k back-right front-right) + ( ฮฑ) + hA' hD' + ( pasting-horizontal-coherence-square-maps f' h' hA' hB' hD' f h back-left' front-left') + ( pasting-horizontal-coherence-square-maps g' k' hA' hC' hD' g k back-right' front-right') + ( ฮฒ) + ฯƒA ฯƒD + ( comp-htpy-hom-map f h f' h' hA hA' hB hB' hD hD' ฯƒA ฯƒB ฯƒD + back-left back-left' back-left-H + front-left front-left' front-left-H) + ( comp-htpy-hom-map g k g' k' hA hA' hC hC' hD hD' ฯƒA ฯƒC ฯƒD + back-right back-right' back-right-H + front-right front-right' front-right-H) + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) + (H : coherence-square-maps g f k h) + where + + id-cube : + coherence-cube-maps f g h k f g h k id id id id + H refl-htpy refl-htpy refl-htpy refl-htpy H + id-cube = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy + +module _ + {l1 l2 l3 l4 l1' l2' l3' l4' : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) + {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} + (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') + (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) + (top : (h' โˆ˜ f') ~ (k' โˆ˜ g')) + (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) + (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) + (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) + (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) + (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) + (ฮฑ : + coherence-cube-maps f g h k f' g' h' k' hA hB hC hD + top back-left back-right front-left front-right bottom) + where + + section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l1' โŠ” l2' โŠ” l3' โŠ” l4') + section-displayed-cube-over = + ฮฃ ( section-displayed-map-over f f' hA hB back-left) + ( ฮป sF โ†’ + ฮฃ ( section-displayed-map-over k k' hC hD front-right) + ( ฮป sK โ†’ + ฮฃ ( coherence-square-maps g + ( map-section hA (pr1 sF)) + ( map-section hC (pr1 sK)) + ( g')) + ( ฮป G โ†’ + ฮฃ ( htpy-hom-map g g + ( hA โˆ˜ map-section hA (pr1 sF)) + ( hC โˆ˜ map-section hC (pr1 sK)) + ( pasting-vertical-coherence-square-maps g + ( map-section hA (pr1 sF)) + ( map-section hC (pr1 sK)) + g' hA hC g + G back-right) + id id refl-htpy + ( is-section-map-section hA (pr1 sF)) + ( is-section-map-section hC (pr1 sK))) + ( ฮป sG โ†’ + ฮฃ ( coherence-square-maps h + ( map-section hB (pr1 (pr2 sF))) + ( map-section hD (pr1 (pr2 sK))) + ( h')) + ( ฮป H โ†’ + ฮฃ ( htpy-hom-map h h + ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) + ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) + ( pasting-vertical-coherence-square-maps h + ( map-section hB (pr1 (pr2 sF))) + ( map-section hD (pr1 (pr2 sK))) + h' hB hD h + H front-left) + id id refl-htpy + ( is-section-map-section hB (pr1 (pr2 sF))) + ( is-section-map-section hD (pr1 (pr2 sK)))) + ( ฮป sH โ†’ + ฮฃ ( coherence-cube-maps f' g' h' k' f g h k + ( map-section hA (pr1 sF)) + ( map-section hB (pr1 (pr2 sF))) + ( map-section hC (pr1 sK)) + ( map-section hD (pr1 (pr2 sK))) + ( bottom) + ( pr1 (pr2 (pr2 sF))) + ( G) + ( H) + ( pr1 (pr2 (pr2 sK))) + ( top)) + ( ฮป ฮฒ โ†’ + htpy-hom-square f g h k f g h k bottom bottom + ( hA โˆ˜ map-section hA (pr1 sF)) + ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) + ( hC โˆ˜ map-section hC (pr1 sK)) + ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) + ( pasting-vertical-coherence-square-maps f + ( map-section hA (pr1 sF)) + ( map-section hB (pr1 (pr2 sF))) + f' hA hB f + ( pr1 (pr2 (pr2 sF))) + ( back-left)) + ( pasting-vertical-coherence-square-maps g + ( map-section hA (pr1 sF)) + ( map-section hC (pr1 sK)) + g' hA hC g + ( G) + ( back-right)) + ( pasting-vertical-coherence-square-maps h + ( map-section hB (pr1 (pr2 sF))) + ( map-section hD (pr1 (pr2 sK))) + h' hB hD h + ( H) + ( front-left)) + ( pasting-vertical-coherence-square-maps k + ( map-section hC (pr1 sK)) + ( map-section hD (pr1 (pr2 sK))) + k' hC hD k + ( pr1 (pr2 (pr2 sK))) + ( front-right)) + ( pasting-vertical-coherence-cube-maps f g h k + f' g' h' k' f g h k + hA hB hC hD + ( map-section hA (pr1 sF)) + ( map-section hB (pr1 (pr2 sF))) + ( map-section hC (pr1 sK)) + ( map-section hD (pr1 (pr2 sK))) + ( top) + back-left back-right front-left front-right bottom + ( bottom) + ( pr1 (pr2 (pr2 sF))) + ( G) + ( H) + ( pr1 (pr2 (pr2 sK))) + ( ฮฑ) + ( ฮฒ)) + id id id id + refl-htpy refl-htpy refl-htpy refl-htpy + ( id-cube f g h k bottom) + ( is-section-map-section hA (pr1 sF)) + ( is-section-map-section hB (pr1 (pr2 sF))) + ( is-section-map-section hC (pr1 sK)) + ( is-section-map-section hD (pr1 (pr2 sK))) + ( pr2 (pr2 (pr2 sF))) + ( sG) + ( sH) + ( pr2 (pr2 (pr2 sK)))))))))) + module _ {l1 l2 l3 l4 l5 l6 l7 l8 : Level} {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} @@ -862,61 +1136,6 @@ module _ coh-tot-square-over (p , q) = ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit - section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l5 โŠ” l6 โŠ” l7 โŠ” l8) - section-displayed-cube-over = - ฮฃ ( section-displayed-map-over {Q = Q2} f1 (f1' _)) - ( ฮป sF1 โ†’ - ฮฃ ( section-displayed-map-over {Q = Q4} f2 (f2' _)) - ( ฮป sF2 โ†’ - ฮฃ ( coherence-square-maps g1 - ( map-section pr1 (pr1 sF1)) - ( map-section pr1 (pr1 sF2)) - ( tot-map-over g1 g1')) - ( ฮป G1 โ†’ - ฮฃ ( coherence-square-maps g2 - ( map-section pr1 (pr1 (pr2 sF1))) - ( map-section pr1 (pr1 (pr2 sF2))) - ( tot-map-over g2 g2')) - ( ฮป G2 โ†’ - ฮฃ ( coherence-cube-maps - ( tot-map-over f1 f1') - ( tot-map-over g1 g1') - ( tot-map-over g2 g2') - ( tot-map-over f2 f2') - f1 g1 g2 f2 - ( map-section pr1 (pr1 sF1)) - ( map-section pr1 (pr1 (pr2 sF1))) - ( map-section pr1 (pr1 sF2)) - ( map-section pr1 (pr1 (pr2 sF2))) - ( bottom) - ( pr1 (pr2 (pr2 sF1))) - ( G1) - ( G2) - ( pr1 (pr2 (pr2 sF2))) - ( tot-square-over)) - ( ฮป ฮฑ โ†’ - pasting-vertical-coherence-cube-maps f1 g1 g2 f2 - ( tot-map-over f1 f1') - ( tot-map-over g1 g1') - ( tot-map-over g2 g2') - ( tot-map-over f2 f2') - f1 g1 g2 f2 - pr1 pr1 pr1 pr1 - ( map-section pr1 (pr1 sF1)) - ( map-section pr1 (pr1 (pr2 sF1))) - ( map-section pr1 (pr1 sF2)) - ( map-section pr1 (pr1 (pr2 sF2))) - ( tot-square-over) - refl-htpy refl-htpy refl-htpy refl-htpy - bottom bottom - ( pr1 (pr2 (pr2 sF1))) - ( G1) - ( G2) - ( pr1 (pr2 (pr2 sF2))) - ( coh-tot-square-over) - ( ฮฑ) ~ {!!} - ))))) - module _ (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) @@ -927,7 +1146,7 @@ module _ where open import foundation.action-on-identifications-binary-functions - _ : + lemma : pasting-vertical-coherence-square-maps g1 ( map-section-family s1) (map-section-family s3) ( tot-map-over g1 g1') (tot-map-over f1 f1') @@ -935,8 +1154,10 @@ module _ ( eq-pair-eq-fiber โˆ˜ G1) ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) - _ = ฮป p โ†’ ap (eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) ([i] p) โˆ™ - {!!} + lemma = ฮป p โ†’ ap + ( eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) + ( [i] p) โˆ™ + ( inv (concat-vertical-eq-pair (bottom p) (top (s1 p)) (ap (f2' (g1 p)) (G1 p)))) where [i] = ฮป (p : P1) โ†’ @@ -949,29 +1170,45 @@ module _ s1 s2 s3 s4 G1 F1 F2 G2 bottom top โ†’ - section-displayed-cube-over + section-displayed-cube-over f1 g1 g2 f2 + ( tot-map-over f1 f1') + ( tot-map-over g1 g1') + ( tot-map-over g2 g2') + ( tot-map-over f2 f2') + pr1 pr1 pr1 pr1 + ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) + refl-htpy refl-htpy refl-htpy refl-htpy + ( bottom) + ( coh-tot-square-over) pr1 (section-cube-over-sect-square-over ฮฑ) = ( section-dependent-function s1) , ( section-dependent-function s2) , - ( ฮป p โ†’ eq-pair-eq-fiber (F1 p)) , + ( eq-pair-eq-fiber โˆ˜ F1) , ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = ( section-dependent-function s3) , ( section-dependent-function s4) , - ( ฮป p โ†’ eq-pair-eq-fiber (F2 p)) , + ( eq-pair-eq-fiber โˆ˜ F2) , ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = - ( ฮป p โ†’ eq-pair-eq-fiber (G1 p)) , - ( ฮป p โ†’ eq-pair-eq-fiber (G2 p)) , + ( eq-pair-eq-fiber โˆ˜ G1) , + ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G1 p)) , + ( eq-pair-eq-fiber โˆ˜ G2) , + ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G2 p)) , ( ฮป p โ†’ ap-binary ( _โˆ™_) ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ {!!} โˆ™ + ap (eq-pair-ฮฃ (bottom p)) (inv (ฮฑ p) โˆ™ assoc (top (s1 p)) (ap (f2' (g1 p)) (G1 p)) (F2 (g1 p))) โˆ™ + concat-vertical-eq-pair + ( bottom p) + ( top (s1 p)) + ( ap (f2' (g1 p)) (G1 p) โˆ™ F2 (g1 p)) โˆ™ ap-binary ( _โˆ™_) ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , - ( {!!}) + {!!} ``` From dbc3f6697c3919f10eb6a3b934f3f93f29ee13fc Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 5 Feb 2025 18:54:54 +0100 Subject: [PATCH 21/33] Work --- .../dependent-identifications.lagda.md | 4 +- .../functoriality-stuff.lagda.md | 1838 +++++++++++------ .../stuff-over.lagda.md | 740 ++++--- 3 files changed, 1673 insertions(+), 909 deletions(-) diff --git a/src/foundation/dependent-identifications.lagda.md b/src/foundation/dependent-identifications.lagda.md index 4a1da7c967..77743467f5 100644 --- a/src/foundation/dependent-identifications.lagda.md +++ b/src/foundation/dependent-identifications.lagda.md @@ -116,14 +116,14 @@ module _ dependent-identification B p x' y' โ†’ dependent-identification B q y' z' โ†’ dependent-identification B (p โˆ™ q) x' z' - concat-dependent-identification refl q refl q' = q' + concat-dependent-identification refl q p' q' = ap (tr B q) p' โˆ™ q' compute-concat-dependent-identification-left-base-refl : { y z : A} (q : y ๏ผ z) โ†’ { x' y' : B y} {z' : B z} (p' : x' ๏ผ y') โ†’ ( q' : dependent-identification B q y' z') โ†’ concat-dependent-identification refl q p' q' ๏ผ ap (tr B q) p' โˆ™ q' - compute-concat-dependent-identification-left-base-refl q refl q' = refl + compute-concat-dependent-identification-left-base-refl q p' q' = refl ``` #### Strictly right unital concatenation of dependent identifications diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 37d0bbeb1a..ea2ed0e2ff 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -56,667 +56,1273 @@ open import synthetic-homotopy-theory.universal-property-sequential-colimits New idea: instead of bruteforcing this direction, show that a square induces coherent cubes, and show that it's an equivalence because it fits in a diagram. +## Commuting cubes induce commuting squares in the colimit + ```agda -nat-lemma : - {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} - {P : A โ†’ UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) - {x y : A} {p : x ๏ผ y} - {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ - coherence-square-maps - ( tr P p) - ( h x) - ( h y) - ( tr Q q) -nat-lemma f h {p = p} refl x = - substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +open import foundation.commuting-cubes-of-maps +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} + (up-a : universal-property-sequential-colimit a) + {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} + (up-b : universal-property-sequential-colimit b) + {P : sequential-diagram l5} {V : UU l6} {p : cocone-sequential-diagram P V} + (up-p : universal-property-sequential-colimit p) + {Q : sequential-diagram l7} {W : UU l8} {q : cocone-sequential-diagram Q W} + (up-q : universal-property-sequential-colimit q) + (f' : hom-sequential-diagram P Q) + (f : hom-sequential-diagram A B) + (g : hom-sequential-diagram P A) + (h : hom-sequential-diagram Q B) + where + + square-cube-sequential-colimit : + (faces : + (n : โ„•) โ†’ + coherence-square-maps + ( map-hom-sequential-diagram Q f' n) + ( map-hom-sequential-diagram A g n) + ( map-hom-sequential-diagram B h n) + ( map-hom-sequential-diagram B f n)) โ†’ + (cubes : + (n : โ„•) โ†’ + coherence-cube-maps + ( map-hom-sequential-diagram B f n) + ( map-sequential-diagram A n) + ( map-sequential-diagram B n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-hom-sequential-diagram Q f' n) + ( map-sequential-diagram P n) + ( map-sequential-diagram Q n) + ( map-hom-sequential-diagram Q f' (succ-โ„• n)) + ( map-hom-sequential-diagram A g n) + ( map-hom-sequential-diagram B h n) + ( map-hom-sequential-diagram A g (succ-โ„• n)) + ( map-hom-sequential-diagram B h (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram Q f' n) + ( faces n) + ( naturality-map-hom-sequential-diagram A g n) + ( naturality-map-hom-sequential-diagram B h n) + ( faces (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n)) โ†’ + coherence-square-maps + ( map-sequential-colimit-hom-sequential-diagram up-p q f') + ( map-sequential-colimit-hom-sequential-diagram up-p a g) + ( map-sequential-colimit-hom-sequential-diagram up-q b h) + ( map-sequential-colimit-hom-sequential-diagram up-a b f) + square-cube-sequential-colimit faces cubes = + inv-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-a b + f g) โˆ™h + induced-htpy โˆ™h + preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-q b h f' + where + comp1 comp2 : hom-sequential-diagram P B + comp1 = comp-hom-sequential-diagram P A B f g + comp2 = comp-hom-sequential-diagram P Q B h f' + induced-hom-htpy : htpy-hom-sequential-diagram B comp1 comp2 + pr1 induced-hom-htpy = faces + pr2 induced-hom-htpy n = + assoc-htpy _ _ _ โˆ™h + inv-htpy (cubes n) โˆ™h + assoc-htpy _ _ _ + induced-htpy : + map-sequential-colimit-hom-sequential-diagram up-p b comp1 ~ + map-sequential-colimit-hom-sequential-diagram up-p b comp2 + induced-htpy = + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-p b + ( induced-hom-htpy) ``` -```agda -open import synthetic-homotopy-theory.families-descent-data-sequential-colimits -open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams -open import synthetic-homotopy-theory.total-sequential-diagrams +## Concatenation of homotopies of morphisms of sequential diagrams -open import foundation.action-on-identifications-functions -open import foundation.commuting-squares-of-identifications -open import foundation.functoriality-dependent-pair-types -open import foundation.equality-dependent-pair-types -open import foundation.identity-types -open import synthetic-homotopy-theory.sequential-colimits -open import synthetic-homotopy-theory.functoriality-sequential-colimits +```agda +open import foundation.whiskering-homotopies-concatenation module _ - {l1 l2 l3 l4 : Level} - {A : sequential-diagram l1} - {X : UU l2} {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - (P : family-with-descent-data-sequential-colimit c l3) - {Y : UU l4} - {c' : - cocone-sequential-diagram - ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) - ( Y)} - (up-c' : universal-property-sequential-colimit c') + {l1 l2 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + (f g h : hom-sequential-diagram A B) where - mediating-cocone : - cocone-sequential-diagram - ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) - ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) - pr1 mediating-cocone n = - map-ฮฃ - ( family-cocone-family-with-descent-data-sequential-colimit P) - ( map-cocone-sequential-diagram c n) - ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) - pr2 mediating-cocone n (a , p) = - eq-pair-ฮฃ - ( coherence-cocone-sequential-diagram c n a) + module _ + (H : htpy-hom-sequential-diagram B f g) + (K : htpy-hom-sequential-diagram B g h) + where + + concat-htpy-hom-sequential-diagram : htpy-hom-sequential-diagram B f h + pr1 concat-htpy-hom-sequential-diagram n = + htpy-htpy-hom-sequential-diagram _ H n โˆ™h + htpy-htpy-hom-sequential-diagram _ K n + pr2 concat-htpy-hom-sequential-diagram n = + inv-htpy-assoc-htpy _ _ _ โˆ™h + right-whisker-concat-htpy + ( coherence-htpy-htpy-hom-sequential-diagram B H n) + ( htpy-htpy-hom-sequential-diagram _ K (succ-โ„• n) ยทr map-sequential-diagram A n) โˆ™h + assoc-htpy _ _ _ โˆ™h + left-whisker-concat-htpy + ( map-sequential-diagram B n ยทl htpy-htpy-hom-sequential-diagram _ H n) + ( coherence-htpy-htpy-hom-sequential-diagram B K n) โˆ™h + inv-htpy-assoc-htpy _ _ _ โˆ™h + right-whisker-concat-htpy + ( inv-htpy + ( distributive-left-whisker-comp-concat + ( map-sequential-diagram B n) + ( htpy-htpy-hom-sequential-diagram _ H n) + ( htpy-htpy-hom-sequential-diagram _ K n))) + ( naturality-map-hom-sequential-diagram B h n) + + htpy-eq-concat-hom-sequential-diagram : + (p : f ๏ผ g) (q : g ๏ผ h) โ†’ + htpy-eq-sequential-diagram A B f h (p โˆ™ q) ๏ผ + concat-htpy-hom-sequential-diagram + ( htpy-eq-sequential-diagram A B f g p) + ( htpy-eq-sequential-diagram A B g h q) + htpy-eq-concat-hom-sequential-diagram refl refl = + eq-pair-eq-fiber + ( inv + ( eq-binary-htpy _ _ + ฮป n a โ†’ + right-unit โˆ™ right-unit โˆ™ + ap + ( (inv (assoc _ refl refl) โˆ™ ap (_โˆ™ refl) right-unit) โˆ™ refl โˆ™_) + ( ap-id right-unit) โˆ™ + ap + ( _โˆ™ right-unit) + ( right-unit โˆ™ + ap + ( ฮป p โ†’ inv p โˆ™ ap (_โˆ™ refl) right-unit) + ( middle-unit-law-assoc + ( naturality-map-hom-sequential-diagram B f n a) + ( refl)) โˆ™ + left-inv (ap (_โˆ™ refl) right-unit)))) + where + open import foundation.binary-homotopies + open import foundation.path-algebra + + eq-htpy-concat-hom-sequential-diagram : + (H : htpy-hom-sequential-diagram B f g) + (K : htpy-hom-sequential-diagram B g h) โ†’ + eq-htpy-sequential-diagram A B f h + ( concat-htpy-hom-sequential-diagram H K) ๏ผ + eq-htpy-sequential-diagram A B f g H โˆ™ + eq-htpy-sequential-diagram A B g h K + eq-htpy-concat-hom-sequential-diagram H K = + ap + ( eq-htpy-sequential-diagram A B f h) ( inv - ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) - - totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) - totฮน' = - map-universal-property-sequential-colimit up-c' mediating-cocone - triangle-pr1โˆž-pr1 : - pr1-sequential-colimit-total-sequential-diagram - ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) - ( up-c') - ( c) ~ - pr1 โˆ˜ totฮน' - triangle-pr1โˆž-pr1 = - htpy-htpy-out-of-sequential-colimit up-c' - ( concat-htpy-cocone-sequential-diagram - ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c - ( pr1-total-sequential-diagram - ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) - ( ( ฮป n โ†’ - inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , - ( ฮป n x โ†’ - ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ - horizontal-inv-coherence-square-identifications _ - ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) - ( coherence-cocone-sequential-diagram c n (pr1 x)) - _ - ( ( ap - ( _โˆ™ ap pr1 - ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) - ( ap-comp pr1 - ( totฮน') - ( coherence-cocone-sequential-diagram c' n x))) โˆ™ - ( inv - ( ap-concat pr1 - ( ap - ( totฮน') - ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ - ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ - ( ap-concat pr1 - ( pr1 - ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) - n x) - ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ - ( ap - ( ap pr1 - ( pr1 - ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) - n x) โˆ™_) - ( ap-pr1-eq-pair-ฮฃ - ( coherence-cocone-sequential-diagram c n (pr1 x)) - ( _))))))) + ( htpy-eq-concat-hom-sequential-diagram + ( eq-htpy-sequential-diagram A B f g H) + ( eq-htpy-sequential-diagram A B g h K) โˆ™ + ap-binary concat-htpy-hom-sequential-diagram + ( is-section-map-inv-equiv + ( extensionality-hom-sequential-diagram A B f g) + ( H)) + ( is-section-map-inv-equiv + ( extensionality-hom-sequential-diagram A B g h) + ( K)))) โˆ™ + is-retraction-map-inv-equiv + ( extensionality-hom-sequential-diagram A B f h) + ( eq-htpy-sequential-diagram A B f g H โˆ™ + eq-htpy-sequential-diagram A B g h K) + where open import foundation.action-on-identifications-binary-functions ``` +## Whiskering of homotopies of morphisms of sequential diagrams + +### Right whiskering + ```agda module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {X : UU l2} - {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {B : sequential-diagram l3} {Y : UU l4} - {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) - (f : hom-sequential-diagram A B) - (f' : - (x : X) โ†’ P x โ†’ - Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} where - open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits - - ฮฃAP : sequential-diagram (l1 โŠ” l5) - ฮฃAP = - total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) - - ฮฃBQ : sequential-diagram (l3 โŠ” l6) - ฮฃBQ = - total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) - - totff' : hom-sequential-diagram ฮฃAP ฮฃBQ - pr1 totff' n = - map-ฮฃ _ - ( map-hom-sequential-diagram B f n) - ( ฮป a โ†’ - tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' f n a) โˆ˜ - f' (map-cocone-sequential-diagram c n a)) - pr2 totff' = {!!} - - totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q - totff'โˆž = - map-sequential-colimit-hom-sequential-diagram - ( flattening-lemma-sequential-colimit _ P up-c) - ( total-cocone-family-cocone-sequential-diagram c' Q) - ( totff') - - _ : - totฮน' up-c - ( family-with-descent-data-family-cocone-sequential-diagram c P) - ( flattening-lemma-sequential-colimit c P up-c) ~ - id - _ = - compute-map-universal-property-sequential-colimit-id - ( flattening-lemma-sequential-colimit _ P up-c) - - _ : - coherence-square-maps - ( totฮน' up-c - ( family-with-descent-data-family-cocone-sequential-diagram c P) - ( flattening-lemma-sequential-colimit c P up-c)) - ( totff'โˆž) - ( map-ฮฃ Q - ( map-sequential-colimit-hom-sequential-diagram up-c c' f) - f') - ( totฮน' up-c' - ( family-with-descent-data-family-cocone-sequential-diagram c' Q) - ( flattening-lemma-sequential-colimit c' Q up-c')) - _ = - ( compute-map-universal-property-sequential-colimit-id - ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h - ( htpy-htpy-out-of-sequential-colimit - ( flattening-lemma-sequential-colimit c P up-c) - ( concat-htpy-cocone-sequential-diagram - ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( flattening-lemma-sequential-colimit c P up-c) - ( total-cocone-family-cocone-sequential-diagram c' Q) - ( totff')) - ( ( ฮป n (a , p) โ†’ - inv - ( eq-pair-ฮฃ - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' - ( f) - ( n) - ( a)) - refl)) , - {!!}))) โˆ™h - ( _ ยทl - ( inv-htpy - (compute-map-universal-property-sequential-colimit-id - ( flattening-lemma-sequential-colimit c P up-c)))) - - -- htpy-htpy-out-of-sequential-colimit - -- ( flattening-lemma-sequential-colimit c P up-c) - -- ( {!!}) + htpy-eq-right-whisker : + {f g : B โ†’ C} (p : f ๏ผ g) (h : A โ†’ B) โ†’ + htpy-eq (ap (_โˆ˜ h) p) ๏ผ htpy-eq p ยทr h + htpy-eq-right-whisker refl h = refl + + eq-htpy-right-whisker : + {f g : B โ†’ C} (H : f ~ g) (h : A โ†’ B) โ†’ + eq-htpy (H ยทr h) ๏ผ ap (_โˆ˜ h) (eq-htpy H) + eq-htpy-right-whisker H h = + ap eq-htpy + ( inv + ( htpy-eq-right-whisker (eq-htpy H) h โˆ™ + ap (_ยทr h) (is-section-eq-htpy H))) โˆ™ + is-retraction-eq-htpy (ap (_โˆ˜ h) (eq-htpy H)) + + htpy-eq-left-whisker : + {f g : A โ†’ B} (h : B โ†’ C) (p : f ๏ผ g) โ†’ + htpy-eq (ap (h โˆ˜_) p) ๏ผ h ยทl htpy-eq p + htpy-eq-left-whisker h refl = refl + + -- alternatively, using homotopy induction + eq-htpy-left-whisker : + {f g : A โ†’ B} (h : B โ†’ C) (H : f ~ g) โ†’ + eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H) + eq-htpy-left-whisker {f} h = + ind-htpy f + ( ฮป g H โ†’ + eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H)) + ( eq-htpy-refl-htpy (h โˆ˜ f) โˆ™ + inv (ap (ap (h โˆ˜_)) (eq-htpy-refl-htpy f))) + where open import foundation.homotopy-induction ``` ```agda module _ - {l1 l2 l3 l4 : Level} - {A : sequential-diagram l1} {X : UU l2} - {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {B : sequential-diagram l3} {Y : UU l4} - {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (f : hom-sequential-diagram A B) + {l1 l2 l3 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {X : sequential-diagram l3} + {f g : hom-sequential-diagram A B} where - open import foundation.homotopies-morphisms-arrows + open import foundation.whiskering-identifications-concatenation - interm : - coherence-square-maps - ( id) - ( map-sequential-colimit-hom-sequential-diagram up-c c' f) - ( map-sequential-colimit-hom-sequential-diagram up-c c' f) - ( id) - interm = - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' - ( refl-htpy-hom-sequential-diagram A B f) - - preserves-refl-htpy-sequential-colimit : - htpy-hom-arrow - ( map-sequential-colimit-hom-sequential-diagram up-c c' f) - ( map-sequential-colimit-hom-sequential-diagram up-c c' f) - ( id , id , interm) - ( id , id , refl-htpy) - pr1 preserves-refl-htpy-sequential-colimit = refl-htpy - pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy - pr2 (pr2 preserves-refl-htpy-sequential-colimit) = - right-unit-htpy โˆ™h - htpy-eq + module _ + (H : htpy-hom-sequential-diagram B f g) + (h : hom-sequential-diagram X A) + where + + right-whisker-concat-htpy-hom-sequential-diagram : + htpy-hom-sequential-diagram B + ( comp-hom-sequential-diagram X A B f h) + ( comp-hom-sequential-diagram X A B g h) + pr1 right-whisker-concat-htpy-hom-sequential-diagram n = + htpy-htpy-hom-sequential-diagram _ H n ยทr map-hom-sequential-diagram A h n + pr2 right-whisker-concat-htpy-hom-sequential-diagram n x = + assoc _ _ _ โˆ™ + left-whisker-concat + ( naturality-map-hom-sequential-diagram B f n (map-hom-sequential-diagram A h n x)) + ( inv-nat-htpy + ( htpy-htpy-hom-sequential-diagram B H (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ + inv (assoc _ _ _) โˆ™ + right-whisker-concat + ( coherence-htpy-htpy-hom-sequential-diagram B H n (map-hom-sequential-diagram A h n x)) + ( ap + ( map-hom-sequential-diagram B g (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ + assoc _ _ _ + + htpy-eq-right-whisker-htpy-hom-sequential-diagram : + (p : f ๏ผ g) (h : hom-sequential-diagram X A) โ†’ + htpy-eq-sequential-diagram X B + ( comp-hom-sequential-diagram X A B f h) + ( comp-hom-sequential-diagram X A B g h) + ( ap (ฮป f โ†’ comp-hom-sequential-diagram X A B f h) p) ๏ผ + right-whisker-concat-htpy-hom-sequential-diagram + ( htpy-eq-sequential-diagram A B f g p) + ( h) + htpy-eq-right-whisker-htpy-hom-sequential-diagram refl h = + eq-pair-eq-fiber + ( eq-binary-htpy _ _ + ฮป n x โ†’ + inv + ( right-unit โˆ™ + ap-binary + ( ฮป p q โ†’ + p โˆ™ + left-whisker-concat _ q โˆ™ + inv (assoc _ refl _) โˆ™ + right-whisker-concat _ _) + ( right-unit-law-assoc _ _) + ( inv-nat-refl-htpy _ _) โˆ™ + ap + ( ฮป p โ†’ + right-unit โˆ™ + left-whisker-concat _ (inv right-unit) โˆ™ + left-whisker-concat _ right-unit โˆ™ + inv p โˆ™ + right-whisker-concat right-unit _) + ( middle-unit-law-assoc _ _) โˆ™ + is-section-inv-concat' + ( right-whisker-concat right-unit _) + ( right-unit โˆ™ + left-whisker-concat _ (inv right-unit) โˆ™ + left-whisker-concat _ right-unit) โˆ™ + ap + ( ฮป p โ†’ right-unit โˆ™ p โˆ™ left-whisker-concat _ right-unit) + ( ap-inv (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) โˆ™ + is-section-inv-concat' + ( ap (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) + ( right-unit))) + where + open import foundation.binary-homotopies + open import foundation.path-algebra + open import foundation.action-on-identifications-binary-functions + + eq-htpy-right-whisker-htpy-hom-sequential-diagram : + (H : htpy-hom-sequential-diagram B f g) (h : hom-sequential-diagram X A) โ†’ + eq-htpy-sequential-diagram X B + ( comp-hom-sequential-diagram X A B f h) + ( comp-hom-sequential-diagram X A B g h) + ( right-whisker-concat-htpy-hom-sequential-diagram H h) ๏ผ + ap + ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) + ( eq-htpy-sequential-diagram A B f g H) + eq-htpy-right-whisker-htpy-hom-sequential-diagram H h = + ap + ( eq-htpy-sequential-diagram X B _ _) + ( inv + ( htpy-eq-right-whisker-htpy-hom-sequential-diagram + ( eq-htpy-sequential-diagram A B f g H) + ( h) โˆ™ + ap + ( ฮป H โ†’ right-whisker-concat-htpy-hom-sequential-diagram H h) + ( is-section-map-inv-equiv + ( extensionality-hom-sequential-diagram A B f g) + ( H)))) โˆ™ + is-retraction-map-inv-equiv + ( extensionality-hom-sequential-diagram X B + ( comp-hom-sequential-diagram X A B f h) + ( comp-hom-sequential-diagram X A B g h)) ( ap - ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) - ( is-retraction-map-inv-equiv - ( extensionality-hom-sequential-diagram A B f f) - ( refl))) + ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) + ( eq-htpy-sequential-diagram A B f g H)) ``` +### Left whiskering + ```agda module _ - {l1 l2 : Level} - {A : sequential-diagram l1} - (P : descent-data-sequential-colimit A l2) + {l1 l2 l3 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {X : sequential-diagram l3} + (h : hom-sequential-diagram B X) + {f g : hom-sequential-diagram A B} + (H : htpy-hom-sequential-diagram B f g) where + open import foundation.whiskering-identifications-concatenation - section-descent-data-sequential-colimit : UU (l1 โŠ” l2) - section-descent-data-sequential-colimit = - ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ - family-descent-data-sequential-colimit P n a) - ( ฮป s โ†’ - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - map-family-descent-data-sequential-colimit P n a (s n a) ๏ผ - s (succ-โ„• n) (map-sequential-diagram A n a)) + left-whisker-concat-htpy-hom-sequential-diagram : + htpy-hom-sequential-diagram X + ( comp-hom-sequential-diagram A B X h f) + ( comp-hom-sequential-diagram A B X h g) + pr1 left-whisker-concat-htpy-hom-sequential-diagram n = + map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n + pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = + assoc _ _ _ โˆ™ + left-whisker-concat + ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) + ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ + ap + ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) + ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ + ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ + inv (assoc _ _ _) โˆ™ + right-whisker-concat + ( left-whisker-concat + ( naturality-map-hom-sequential-diagram X h n + ( map-hom-sequential-diagram B f n a)) + ( inv + ( ap-comp + ( map-hom-sequential-diagram X h (succ-โ„• n)) + ( map-sequential-diagram B n) + ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ + nat-htpy + ( naturality-map-hom-sequential-diagram X h n) + ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ + right-whisker-concat + ( ap-comp + ( map-sequential-diagram X n) + ( map-hom-sequential-diagram X h n) + ( htpy-htpy-hom-sequential-diagram B H n a)) + ( naturality-map-hom-sequential-diagram X h n + ( map-hom-sequential-diagram B g n a))) + ( ap + ( map-hom-sequential-diagram X h (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ + assoc _ _ _ +``` -module _ - {l1 l2 l3 : Level} - {A : sequential-diagram l1} - {X : UU l2} {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - (P : X โ†’ UU l3) - where +## Action on homotopies of morphisms of sequential diagrams preserves whiskering - sect-family-sect-dd-sequential-colimit : - section-descent-data-sequential-colimit - ( descent-data-family-cocone-sequential-diagram c P) โ†’ - ((x : X) โ†’ P x) - sect-family-sect-dd-sequential-colimit s = - map-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c) - ( s) +```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} ``` ```agda module _ - {l1 l2 l3 l4 : Level} - {A : sequential-diagram l1} - (B : sequential-diagram l2) - (f : hom-sequential-diagram A B) - (P : descent-data-sequential-colimit A l3) - (Q : descent-data-sequential-colimit B l4) + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} + (up-a : universal-property-sequential-colimit a) + {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} + (up-b : universal-property-sequential-colimit b) + {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) + {f g : hom-sequential-diagram B C} + (H : htpy-hom-sequential-diagram C f g) + (h : hom-sequential-diagram A B) where - hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) - hom-over-hom = - ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ - family-descent-data-sequential-colimit P n a โ†’ - family-descent-data-sequential-colimit Q n - ( map-hom-sequential-diagram B f n a)) - ( ฮป f'n โ†’ - (n : โ„•) โ†’ - square-over - { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} - ( map-sequential-diagram A n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-diagram B n) - ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) - ( ฮป {a} โ†’ f'n n a) - ( ฮป {a} โ†’ f'n (succ-โ„• n) a) - ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) - ( naturality-map-hom-sequential-diagram B f n)) + preserves-right-whisker-htpy-hom-sequential-diagram : + ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c + ( right-whisker-concat-htpy-hom-sequential-diagram H h)) โˆ™h + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h)) ~ + ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™h + ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-b c H ยทr + map-sequential-colimit-hom-sequential-diagram up-a b h)) + preserves-right-whisker-htpy-hom-sequential-diagram = + right-whisker-concat-htpy + ( htpy-eq + ( ap + ( ฮป p โ†’ + htpy-eq + ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p)) + ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h))) + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) โˆ™h + {!!} +``` + +```agda module _ {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {X : UU l2} - {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {B : sequential-diagram l3} {Y : UU l4} - {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (f : hom-sequential-diagram A B) - (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) + {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} + (up-a : universal-property-sequential-colimit a) + {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} + (up-b : universal-property-sequential-colimit b) + {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) + (h : hom-sequential-diagram B C) + {f g : hom-sequential-diagram A B} + (H : htpy-hom-sequential-diagram B f g) where - private - fโˆž : X โ†’ Y - fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f - DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) - pr1 DDMO n a = - P (map-cocone-sequential-diagram c n a) โ†’ - Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) - pr2 DDMO n a = - ( equiv-postcomp _ - ( ( equiv-tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e - ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e - ( equiv-precomp - ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) - ( _)) - - sect-over-DDMO-map-over : - ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ - section-descent-data-sequential-colimit DDMO - pr1 (sect-over-DDMO-map-over fโˆž') n a = - ( tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ - ( fโˆž' (map-cocone-sequential-diagram c n a)) - pr2 (sect-over-DDMO-map-over fโˆž') n a = - eq-htpy - ( ฮป p โ†’ - {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) - - sect-over-DDMO-map-over' : - ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ - section-descent-data-sequential-colimit DDMO - sect-over-DDMO-map-over' = - {!sect-family-sect-dd-sequential-colimit!} - - map-over-sect-DDMO : - section-descent-data-sequential-colimit DDMO โ†’ - hom-over-hom B f - ( descent-data-family-cocone-sequential-diagram c P) - ( descent-data-family-cocone-sequential-diagram c' Q) - map-over-sect-DDMO = - tot - ( ฮป s โ†’ - map-ฮ  - ( ฮป n โ†’ - ( map-implicit-ฮ  - ( ฮป a โ†’ - ( concat-htpy - ( inv-htpy - ( ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - (map-hom-sequential-diagram B f n a))) โˆ˜ - ( s n a)) ยทl - ( is-retraction-inv-tr P - ( coherence-cocone-sequential-diagram c n a)))) - ( _)) โˆ˜ - ( map-equiv - ( equiv-htpy-precomp-htpy-ฮ  _ _ - ( equiv-tr P - ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ - ( htpy-eq - {f = - ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a))) โˆ˜ - ( s n a) โˆ˜ - ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} - { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ - ( implicit-explicit-ฮ ))) - - map-over-diagram-map-over-colimit : - ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ - hom-over-hom B f - ( descent-data-family-cocone-sequential-diagram c P) - ( descent-data-family-cocone-sequential-diagram c' Q) - pr1 (map-over-diagram-map-over-colimit fโˆž') n a = - ( tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ - ( fโˆž' (map-cocone-sequential-diagram c n a)) - pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = - pasting-vertical-coherence-square-maps - ( tr P (coherence-cocone-sequential-diagram c n a)) - ( fโˆž' _) - ( fโˆž' _) - ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) - ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) - ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) - ( ฮป q โ†’ - substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ - inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) - ( ( inv-htpy - ( ฮป q โ†’ - ( tr-concat - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' f n a) - ( _) - ( q)) โˆ™ - ( tr-concat - ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) - ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) - ( tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' f n a) - ( q))) โˆ™ - ( substitution-law-tr Q - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h - ( ฮป q โ†’ - ap - ( ฮป p โ†’ tr Q p q) - ( inv - ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h - ( tr-concat - ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) - - abstract - triangle-map-over-sect-DDMO : - coherence-triangle-maps - ( map-over-diagram-map-over-colimit) - ( map-over-sect-DDMO) - ( sect-over-DDMO-map-over) - triangle-map-over-sect-DDMO fโˆž' = - eq-pair-eq-fiber - ( eq-htpy - ( ฮป n โ†’ - eq-htpy-implicit - ( ฮป a โ†’ - eq-htpy - ( ฮป p โ†’ - {!!})))) - - is-equiv-map-over-sect-DDMO : - is-equiv map-over-sect-DDMO - is-equiv-map-over-sect-DDMO = - is-equiv-tot-is-fiberwise-equiv - ( ฮป s โ†’ - is-equiv-map-ฮ -is-fiberwise-equiv - ( ฮป n โ†’ - is-equiv-comp _ _ - ( is-equiv-implicit-explicit-ฮ ) - ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv - ( ฮป a โ†’ - is-equiv-comp _ _ - ( funext _ _) - ( is-equiv-comp _ _ - ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) - ( is-equiv-concat-htpy _ _)))))) - - is-equiv-map-over-diagram-map-over-colimit : - is-equiv map-over-diagram-map-over-colimit - is-equiv-map-over-diagram-map-over-colimit = - {!is-equiv-left-map-triangle - ( map-over-diagram-map-over-colimit) - ( map-over-sect-DDMO) - ( sect-over-DDMO-map-over) - ( triangle-map-over-sect-DDMO) - ( is-equiv) !} + preserves-left-whisker-htpy-hom-sequential-diagram : + ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c + ( left-whisker-concat-htpy-hom-sequential-diagram h H)) โˆ™h + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g)) ~ + ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™h + ( map-sequential-colimit-hom-sequential-diagram up-b c h ยทl + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H)) + preserves-left-whisker-htpy-hom-sequential-diagram = {!!} ``` +## Action on homotopies of morphisms of sequential diagrams preserves concatenation + ```agda -module big-thm - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} - {B : sequential-diagram l2} - {X : UU l3} {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {Y : UU l4} {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (H : hom-sequential-diagram A B) +module _ + {l1 l2 l3 l4 : Level} + {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} + (up-a : universal-property-sequential-colimit a) + {B : sequential-diagram l3} {Y : UU l4} (b : cocone-sequential-diagram B Y) + {f g h : hom-sequential-diagram A B} + (H : htpy-hom-sequential-diagram B f g) + (K : htpy-hom-sequential-diagram B g h) where - -- the squares induce a map + preserves-concat-htpy-hom-sequential-diagram : + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b + ( concat-htpy-hom-sequential-diagram f g h H K) ~ + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H โˆ™h + htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b K + preserves-concat-htpy-hom-sequential-diagram = + htpy-eq + ( ( ap + ( ฮป p โ†’ + htpy-eq + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( p))) + ( eq-htpy-concat-hom-sequential-diagram f g h H K)) โˆ™ + ( ap htpy-eq + ( ap-concat + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( eq-htpy-sequential-diagram A B f g H) + ( eq-htpy-sequential-diagram A B g h K))) โˆ™ + ( htpy-eq-concat + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( eq-htpy-sequential-diagram A B f g H)) + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( eq-htpy-sequential-diagram A B g h K)))) +``` + +-- ```agda +-- nat-lemma : +-- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} +-- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} +-- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) +-- {x y : A} {p : x ๏ผ y} +-- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ +-- coherence-square-maps +-- ( tr P p) +-- ( h x) +-- ( h y) +-- ( tr Q q) +-- nat-lemma f h {p = p} refl x = +-- substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +-- ``` - fโˆž : X โ†’ Y - fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' H +-- ## - Cn : (n : โ„•) โ†’ - fโˆž โˆ˜ map-cocone-sequential-diagram c n ~ - map-cocone-sequential-diagram c' n โˆ˜ map-hom-sequential-diagram B H n - Cn = - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H +-- ```agda +-- open import synthetic-homotopy-theory.families-descent-data-sequential-colimits +-- open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams +-- open import synthetic-homotopy-theory.total-sequential-diagrams - module _ - (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) - (f'โˆž : {x : X} โ†’ P x โ†’ Q (fโˆž x)) - where +-- open import foundation.action-on-identifications-functions +-- open import foundation.commuting-squares-of-identifications +-- open import foundation.functoriality-dependent-pair-types +-- open import foundation.equality-dependent-pair-types +-- open import foundation.identity-types +-- open import synthetic-homotopy-theory.sequential-colimits +-- open import synthetic-homotopy-theory.functoriality-sequential-colimits +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} +-- {X : UU l2} {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- (P : family-with-descent-data-sequential-colimit c l3) +-- {Y : UU l4} +-- {c' : +-- cocone-sequential-diagram +-- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( Y)} +-- (up-c' : universal-property-sequential-colimit c') +-- where - An : โ„• โ†’ UU l1 - An = family-sequential-diagram A - Bn : โ„• โ†’ UU l2 - Bn = family-sequential-diagram B - an : {n : โ„•} โ†’ An n โ†’ An (succ-โ„• n) - an = map-sequential-diagram A _ - bn : {n : โ„•} โ†’ Bn n โ†’ Bn (succ-โ„• n) - bn = map-sequential-diagram B _ - fn : {n : โ„•} โ†’ An n โ†’ Bn n - fn = map-hom-sequential-diagram B H _ - Hn : {n : โ„•} โ†’ bn {n} โˆ˜ fn ~ fn โˆ˜ an - Hn = naturality-map-hom-sequential-diagram B H _ - - -- a map-over induces squares-over - - -- first, the sequences-over: - ๐’ŸP : descent-data-sequential-colimit A l5 - ๐’ŸP = descent-data-family-cocone-sequential-diagram c P - ๐’ซ = dependent-sequential-diagram-descent-data ๐’ŸP - ๐’ŸQ : descent-data-sequential-colimit B l6 - ๐’ŸQ = descent-data-family-cocone-sequential-diagram c' Q - ๐’ฌ = dependent-sequential-diagram-descent-data ๐’ŸQ - - Pn : {n : โ„•} โ†’ An n โ†’ UU l5 - Pn = family-descent-data-sequential-colimit ๐’ŸP _ - Qn : {n : โ„•} โ†’ Bn n โ†’ UU l6 - Qn = family-descent-data-sequential-colimit ๐’ŸQ _ - - pn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Pn (an a) - pn = map-family-descent-data-sequential-colimit ๐’ŸP _ - qn : {n : โ„•} (b : Bn n) โ†’ Qn b โ†’ Qn (bn b) - qn = map-family-descent-data-sequential-colimit ๐’ŸQ _ - - -- then, the maps over homs - f'โˆžn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Qn (fn a) - f'โˆžn a = - ( tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' - ( H) - ( _) - ( a))) โˆ˜ - ( f'โˆž) - - -- then, the squares-over - f'โˆžn-square-over : - {n : โ„•} โ†’ - square-over {Q4 = Qn} (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) Hn - f'โˆžn-square-over {n} {a} = - pasting-vertical-coherence-square-maps - ( tr P (coherence-cocone-sequential-diagram c n a)) - ( f'โˆž) - ( f'โˆž) - ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) - ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ a)) - ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ (an a))) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( Hn a)) โˆ˜ - ( tr Q (coherence-cocone-sequential-diagram c' n (fn a)))) - ( ฮป q โ†’ - substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ - inv (preserves-tr (ฮป p โ†’ f'โˆž {p}) (coherence-cocone-sequential-diagram c n a) q)) - ( ( inv-htpy - ( ฮป q โ†’ - ( tr-concat - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' H n a) - ( _) - ( q)) โˆ™ - ( tr-concat - ( coherence-cocone-sequential-diagram c' n (fn a)) - ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (Hn a)) - ( tr Q - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' H n a) - ( q))) โˆ™ - ( substitution-law-tr Q - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( Hn a)))) โˆ™h - ( ฮป q โ†’ - ap - ( ฮป p โ†’ tr Q p q) - ( inv - ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H n a))) โˆ™h - ( tr-concat - ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - up-c c' H (succ-โ„• n) (an a)))) - - thm : - (sA : section-dependent-sequential-diagram A ๐’ซ) โ†’ - (sB : section-dependent-sequential-diagram B ๐’ฌ) โ†’ - (S : (n : โ„•) โ†’ - section-map-over (fn {n}) (f'โˆžn _) - ( map-section-dependent-sequential-diagram A ๐’ซ sA n) - ( map-section-dependent-sequential-diagram B ๐’ฌ sB n)) โ†’ - ((n : โ„•) โ†’ - section-square-over (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) - ( map-section-dependent-sequential-diagram A ๐’ซ sA n) - ( map-section-dependent-sequential-diagram B ๐’ฌ sB n) - ( map-section-dependent-sequential-diagram A ๐’ซ sA (succ-โ„• n)) - ( map-section-dependent-sequential-diagram B ๐’ฌ sB (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram A ๐’ซ sA n) - ( S n) - ( S (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram B ๐’ฌ sB n) - ( Hn) - ( f'โˆžn-square-over)) โ†’ - section-map-over fโˆž f'โˆž - ( sect-family-sect-dd-sequential-colimit up-c P sA) - ( sect-family-sect-dd-sequential-colimit up-c' Q sB) - thm sA sB S ฮฑ = - map-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c) - ( tS , - ( ฮป n a โ†’ - map-compute-dependent-identification-eq-value - ( f'โˆž โˆ˜ sAโˆž) - ( sBโˆž โˆ˜ fโˆž) - ( coherence-cocone-sequential-diagram c n a) - ( tS n a) - ( tS (succ-โ„• n) (an a)) - ( {!f'โˆžn-square-over!}))) - where - sAโˆž : (x : X) โ†’ P x - sAโˆž = sect-family-sect-dd-sequential-colimit up-c P sA - sBโˆž : (y : Y) โ†’ Q y - sBโˆž = sect-family-sect-dd-sequential-colimit up-c' Q sB - tS : - (n : โ„•) โ†’ - (f'โˆž โˆ˜ sAโˆž โˆ˜ (map-cocone-sequential-diagram c n)) ~ - (sBโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) - tS n a = - ap f'โˆž - ( pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c) - ( sA)) n a) โˆ™ - map-equiv - ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) - ( S n a โˆ™ - inv - ( apd sBโˆž (Cn n a) โˆ™ - pr1 - ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dependent-universal-property-universal-property-sequential-colimit _ up-c') - ( sB)) n (fn a))) -``` +-- mediating-cocone : +-- cocone-sequential-diagram +-- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) +-- pr1 mediating-cocone n = +-- map-ฮฃ +-- ( family-cocone-family-with-descent-data-sequential-colimit P) +-- ( map-cocone-sequential-diagram c n) +-- ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) +-- pr2 mediating-cocone n (a , p) = +-- eq-pair-ฮฃ +-- ( coherence-cocone-sequential-diagram c n a) +-- ( inv +-- ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) + +-- totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) +-- totฮน' = +-- map-universal-property-sequential-colimit up-c' mediating-cocone +-- triangle-pr1โˆž-pr1 : +-- pr1-sequential-colimit-total-sequential-diagram +-- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( up-c') +-- ( c) ~ +-- pr1 โˆ˜ totฮน' +-- triangle-pr1โˆž-pr1 = +-- htpy-htpy-out-of-sequential-colimit up-c' +-- ( concat-htpy-cocone-sequential-diagram +-- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c +-- ( pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) +-- ( ( ฮป n โ†’ +-- inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , +-- ( ฮป n x โ†’ +-- ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ +-- horizontal-inv-coherence-square-identifications _ +-- ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) +-- ( coherence-cocone-sequential-diagram c n (pr1 x)) +-- _ +-- ( ( ap +-- ( _โˆ™ ap pr1 +-- ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) +-- ( ap-comp pr1 +-- ( totฮน') +-- ( coherence-cocone-sequential-diagram c' n x))) โˆ™ +-- ( inv +-- ( ap-concat pr1 +-- ( ap +-- ( totฮน') +-- ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ +-- ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ +-- ( ap-concat pr1 +-- ( pr1 +-- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) +-- n x) +-- ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ +-- ( ap +-- ( ap pr1 +-- ( pr1 +-- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) +-- n x) โˆ™_) +-- ( ap-pr1-eq-pair-ฮฃ +-- ( coherence-cocone-sequential-diagram c n (pr1 x)) +-- ( _))))))) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 : Level} +-- {A : sequential-diagram l1} +-- (P : descent-data-sequential-colimit A l2) +-- where + +-- section-descent-data-sequential-colimit : UU (l1 โŠ” l2) +-- section-descent-data-sequential-colimit = +-- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ +-- family-descent-data-sequential-colimit P n a) +-- ( ฮป s โ†’ +-- (n : โ„•) (a : family-sequential-diagram A n) โ†’ +-- map-family-descent-data-sequential-colimit P n a (s n a) ๏ผ +-- s (succ-โ„• n) (map-sequential-diagram A n a)) + +-- module _ +-- {l1 l2 l3 : Level} +-- {A : sequential-diagram l1} +-- {X : UU l2} {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- (P : X โ†’ UU l3) +-- where + +-- sect-family-sect-dd-sequential-colimit : +-- section-descent-data-sequential-colimit +-- ( descent-data-family-cocone-sequential-diagram c P) โ†’ +-- ((x : X) โ†’ P x) +-- sect-family-sect-dd-sequential-colimit s = +-- map-dependent-universal-property-sequential-colimit +-- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) +-- ( s) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) +-- (f : hom-sequential-diagram A B) +-- (f' : +-- (x : X) โ†’ P x โ†’ +-- Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) +-- where + +-- open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits + +-- ฮฃAP : sequential-diagram (l1 โŠ” l5) +-- ฮฃAP = +-- total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) + +-- ฮฃBQ : sequential-diagram (l3 โŠ” l6) +-- ฮฃBQ = +-- total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) + +-- private +-- finf : X โ†’ Y +-- finf = (map-sequential-colimit-hom-sequential-diagram up-c c' f) + +-- totff' : hom-sequential-diagram ฮฃAP ฮฃBQ +-- pr1 totff' n = +-- map-ฮฃ _ +-- ( map-hom-sequential-diagram B f n) +-- ( ฮป a โ†’ +-- tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) โˆ˜ +-- f' (map-cocone-sequential-diagram c n a)) +-- pr2 totff' n (a , p) = +-- eq-pair-ฮฃ +-- ( naturality-map-hom-sequential-diagram B f n a) +-- ((pasting-vertical-coherence-square-maps +-- ( tr P (coherence-cocone-sequential-diagram c n a)) +-- ( f' _) +-- ( f' _) +-- ( tr Q (ap finf (coherence-cocone-sequential-diagram c n a))) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) +-- ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) +-- ( ฮป q โ†’ +-- substitution-law-tr Q finf (coherence-cocone-sequential-diagram c n a) โˆ™ +-- inv (preserves-tr f' (coherence-cocone-sequential-diagram c n a) q)) +-- ( ( inv-htpy +-- ( ฮป q โ†’ +-- ( tr-concat +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( _) +-- ( q)) โˆ™ +-- ( tr-concat +-- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( q))) โˆ™ +-- ( substitution-law-tr Q +-- ( map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h +-- ( ฮป q โ†’ +-- ap +-- ( ฮป p โ†’ tr Q p q) +-- ( inv +-- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h +-- ( tr-concat +-- ( ap finf (coherence-cocone-sequential-diagram c n a)) +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a))))) p) + + +-- totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q +-- totff'โˆž = +-- map-sequential-colimit-hom-sequential-diagram +-- ( flattening-lemma-sequential-colimit _ P up-c) +-- ( total-cocone-family-cocone-sequential-diagram c' Q) +-- ( totff') + +-- pr1Aโˆ™ : hom-sequential-diagram ฮฃAP A +-- pr1Aโˆ™ = +-- pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-cocone c P) +-- pr1Bโˆ™ : hom-sequential-diagram ฮฃBQ B +-- pr1Bโˆ™ = +-- pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-cocone c' Q) + +-- pr1โˆ˜totff' : hom-sequential-diagram ฮฃAP B +-- pr1โˆ˜totff' = comp-hom-sequential-diagram ฮฃAP ฮฃBQ B pr1Bโˆ™ totff' +-- fโˆ˜pr1 : hom-sequential-diagram ฮฃAP B +-- fโˆ˜pr1 = comp-hom-sequential-diagram ฮฃAP A B f pr1Aโˆ™ + +-- pr1cohโˆ™ : htpy-hom-sequential-diagram B fโˆ˜pr1 pr1โˆ˜totff' +-- pr1 pr1cohโˆ™ n = +-- refl-htpy +-- pr2 pr1cohโˆ™ n = +-- right-unit-htpy โˆ™h +-- right-unit-htpy โˆ™h +-- ( ฮป x โ†’ +-- inv +-- ( ap-pr1-eq-pair-ฮฃ +-- ( naturality-map-hom-sequential-diagram B f n (pr1 x)) +-- ( _))) + +-- module _ +-- (sA : +-- section-descent-data-sequential-colimit +-- ( descent-data-family-cocone-sequential-diagram c P)) +-- (sB : +-- section-descent-data-sequential-colimit +-- ( descent-data-family-cocone-sequential-diagram c' Q)) +-- where +-- open import foundation.sections + +-- -- vertical maps, the "sides" of the cubes +-- sAโˆ™ : hom-sequential-diagram A ฮฃAP +-- pr1 sAโˆ™ n = map-section-family (pr1 sA n) +-- pr2 sAโˆ™ n a = eq-pair-eq-fiber (pr2 sA n a) +-- sBโˆ™ : hom-sequential-diagram B ฮฃBQ +-- pr1 sBโˆ™ n = map-section-family (pr1 sB n) +-- pr2 sBโˆ™ n b = eq-pair-eq-fiber (pr2 sB n b) +-- totff'โˆ˜sAโˆ™ : hom-sequential-diagram A ฮฃBQ +-- totff'โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP ฮฃBQ totff' sAโˆ™ +-- sBโˆ™โˆ˜f : hom-sequential-diagram A ฮฃBQ +-- sBโˆ™โˆ˜f = comp-hom-sequential-diagram A B ฮฃBQ sBโˆ™ f +-- -- the unaligned cubes +-- Hโˆ™ : +-- htpy-hom-sequential-diagram ฮฃBQ totff'โˆ˜sAโˆ™ sBโˆ™โˆ˜f +-- pr1 Hโˆ™ n a = eq-pair-eq-fiber {!!} +-- pr2 Hโˆ™ = {!!} + +-- pr1โˆ™โˆ˜sAโˆ™ : hom-sequential-diagram A A +-- pr1โˆ™โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP A pr1Aโˆ™ sAโˆ™ + +-- idAโˆ™ : hom-sequential-diagram A A +-- idAโˆ™ = id-hom-sequential-diagram A +-- idBโˆ™ : hom-sequential-diagram B B +-- idBโˆ™ = id-hom-sequential-diagram B +-- fโˆ˜idAโˆ™ : hom-sequential-diagram A B +-- fโˆ˜idAโˆ™ = comp-hom-sequential-diagram A A B f idAโˆ™ +-- idBโˆ™โˆ˜f : hom-sequential-diagram A B +-- idBโˆ™โˆ˜f = comp-hom-sequential-diagram A B B idBโˆ™ f +-- reflโˆ™ : htpy-hom-sequential-diagram B fโˆ˜idAโˆ™ idBโˆ™โˆ˜f +-- pr1 reflโˆ™ = ev-pair refl-htpy +-- pr2 reflโˆ™ n a = +-- right-unit โˆ™ +-- right-unit โˆ™ +-- inv (ap-id (naturality-map-hom-sequential-diagram B f n a)) +-- -- the alignment: postcomposing Hโˆ™ with pr1cohโˆ™ is homotopic with id +-- โ„‹ : +-- {!htpyยฒ-hom-sequential-diagram!} +-- โ„‹ = {!!} + +-- _ : +-- totฮน' up-c +-- ( family-with-descent-data-family-cocone-sequential-diagram c P) +-- ( flattening-lemma-sequential-colimit c P up-c) ~ +-- id +-- _ = +-- compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit _ P up-c) + +-- _ : +-- coherence-square-maps +-- ( totฮน' up-c +-- ( family-with-descent-data-family-cocone-sequential-diagram c P) +-- ( flattening-lemma-sequential-colimit c P up-c)) +-- ( totff'โˆž) +-- ( map-ฮฃ Q +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- f') +-- ( totฮน' up-c' +-- ( family-with-descent-data-family-cocone-sequential-diagram c' Q) +-- ( flattening-lemma-sequential-colimit c' Q up-c')) +-- _ = +-- ( compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h +-- ( htpy-htpy-out-of-sequential-colimit +-- ( flattening-lemma-sequential-colimit c P up-c) +-- ( concat-htpy-cocone-sequential-diagram +-- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- ( flattening-lemma-sequential-colimit c P up-c) +-- ( total-cocone-family-cocone-sequential-diagram c' Q) +-- ( totff')) +-- ( ( ฮป n (a , p) โ†’ +-- inv +-- ( eq-pair-ฮฃ +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' +-- ( f) +-- ( n) +-- ( a)) +-- refl)) , +-- {!!}))) โˆ™h +-- ( _ ยทl +-- ( inv-htpy +-- (compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit c P up-c)))) + +-- -- htpy-htpy-out-of-sequential-colimit +-- -- ( flattening-lemma-sequential-colimit c P up-c) +-- -- ( {!!}) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (f : hom-sequential-diagram A B) +-- where +-- open import foundation.homotopies-morphisms-arrows + +-- interm : +-- coherence-square-maps +-- ( id) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( id) +-- interm = +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' +-- ( refl-htpy-hom-sequential-diagram A B f) + +-- preserves-refl-htpy-sequential-colimit : +-- htpy-hom-arrow +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( id , id , interm) +-- ( id , id , refl-htpy) +-- pr1 preserves-refl-htpy-sequential-colimit = refl-htpy +-- pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy +-- pr2 (pr2 preserves-refl-htpy-sequential-colimit) = +-- right-unit-htpy โˆ™h +-- htpy-eq +-- ( ap +-- ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) +-- ( is-retraction-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f f) +-- ( refl))) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} +-- (B : sequential-diagram l2) +-- (f : hom-sequential-diagram A B) +-- (P : descent-data-sequential-colimit A l3) +-- (Q : descent-data-sequential-colimit B l4) +-- where + +-- hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) +-- hom-over-hom = +-- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ +-- family-descent-data-sequential-colimit P n a โ†’ +-- family-descent-data-sequential-colimit Q n +-- ( map-hom-sequential-diagram B f n a)) +-- ( ฮป f'n โ†’ +-- (n : โ„•) โ†’ +-- square-over +-- { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} +-- ( map-sequential-diagram A n) +-- ( map-hom-sequential-diagram B f n) +-- ( map-hom-sequential-diagram B f (succ-โ„• n)) +-- ( map-sequential-diagram B n) +-- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) +-- ( ฮป {a} โ†’ f'n n a) +-- ( ฮป {a} โ†’ f'n (succ-โ„• n) a) +-- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) +-- ( naturality-map-hom-sequential-diagram B f n)) +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (f : hom-sequential-diagram A B) +-- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) +-- where + +-- private +-- fโˆž : X โ†’ Y +-- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f +-- DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) +-- pr1 DDMO n a = +-- P (map-cocone-sequential-diagram c n a) โ†’ +-- Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- pr2 DDMO n a = +-- ( equiv-postcomp _ +-- ( ( equiv-tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e +-- ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e +-- ( equiv-precomp +-- ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) +-- ( _)) + +-- sect-over-DDMO-map-over : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- section-descent-data-sequential-colimit DDMO +-- pr1 (sect-over-DDMO-map-over fโˆž') n a = +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ +-- ( fโˆž' (map-cocone-sequential-diagram c n a)) +-- pr2 (sect-over-DDMO-map-over fโˆž') n a = +-- eq-htpy +-- ( ฮป p โ†’ +-- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) + +-- sect-over-DDMO-map-over' : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- section-descent-data-sequential-colimit DDMO +-- sect-over-DDMO-map-over' = +-- {!sect-family-sect-dd-sequential-colimit!} + +-- map-over-sect-DDMO : +-- section-descent-data-sequential-colimit DDMO โ†’ +-- hom-over-hom B f +-- ( descent-data-family-cocone-sequential-diagram c P) +-- ( descent-data-family-cocone-sequential-diagram c' Q) +-- map-over-sect-DDMO = +-- tot +-- ( ฮป s โ†’ +-- map-ฮ  +-- ( ฮป n โ†’ +-- ( map-implicit-ฮ  +-- ( ฮป a โ†’ +-- ( concat-htpy +-- ( inv-htpy +-- ( ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q +-- ( coherence-cocone-sequential-diagram c' n +-- (map-hom-sequential-diagram B f n a))) โˆ˜ +-- ( s n a)) ยทl +-- ( is-retraction-inv-tr P +-- ( coherence-cocone-sequential-diagram c n a)))) +-- ( _)) โˆ˜ +-- ( map-equiv +-- ( equiv-htpy-precomp-htpy-ฮ  _ _ +-- ( equiv-tr P +-- ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ +-- ( htpy-eq +-- {f = +-- ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q +-- ( coherence-cocone-sequential-diagram c' n +-- ( map-hom-sequential-diagram B f n a))) โˆ˜ +-- ( s n a) โˆ˜ +-- ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} +-- { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ +-- ( implicit-explicit-ฮ ))) + +-- map-over-diagram-map-over-colimit : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- hom-over-hom B f +-- ( descent-data-family-cocone-sequential-diagram c P) +-- ( descent-data-family-cocone-sequential-diagram c' Q) +-- pr1 (map-over-diagram-map-over-colimit fโˆž') n a = +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ +-- ( fโˆž' (map-cocone-sequential-diagram c n a)) +-- pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = +-- pasting-vertical-coherence-square-maps +-- ( tr P (coherence-cocone-sequential-diagram c n a)) +-- ( fโˆž' _) +-- ( fโˆž' _) +-- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) +-- ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) +-- ( ฮป q โ†’ +-- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ +-- inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) +-- ( ( inv-htpy +-- ( ฮป q โ†’ +-- ( tr-concat +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( _) +-- ( q)) โˆ™ +-- ( tr-concat +-- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( q))) โˆ™ +-- ( substitution-law-tr Q +-- ( map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h +-- ( ฮป q โ†’ +-- ap +-- ( ฮป p โ†’ tr Q p q) +-- ( inv +-- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h +-- ( tr-concat +-- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) + +-- abstract +-- triangle-map-over-sect-DDMO : +-- coherence-triangle-maps +-- ( map-over-diagram-map-over-colimit) +-- ( map-over-sect-DDMO) +-- ( sect-over-DDMO-map-over) +-- triangle-map-over-sect-DDMO fโˆž' = +-- eq-pair-eq-fiber +-- ( eq-htpy +-- ( ฮป n โ†’ +-- eq-htpy-implicit +-- ( ฮป a โ†’ +-- eq-htpy +-- ( ฮป p โ†’ +-- {!!})))) + +-- is-equiv-map-over-sect-DDMO : +-- is-equiv map-over-sect-DDMO +-- is-equiv-map-over-sect-DDMO = +-- is-equiv-tot-is-fiberwise-equiv +-- ( ฮป s โ†’ +-- is-equiv-map-ฮ -is-fiberwise-equiv +-- ( ฮป n โ†’ +-- is-equiv-comp _ _ +-- ( is-equiv-implicit-explicit-ฮ ) +-- ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv +-- ( ฮป a โ†’ +-- is-equiv-comp _ _ +-- ( funext _ _) +-- ( is-equiv-comp _ _ +-- ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) +-- ( is-equiv-concat-htpy _ _)))))) + +-- is-equiv-map-over-diagram-map-over-colimit : +-- is-equiv map-over-diagram-map-over-colimit +-- is-equiv-map-over-diagram-map-over-colimit = +-- {!is-equiv-left-map-triangle +-- ( map-over-diagram-map-over-colimit) +-- ( map-over-sect-DDMO) +-- ( sect-over-DDMO-map-over) +-- ( triangle-map-over-sect-DDMO) +-- ( is-equiv) !} +-- ``` + +-- ```agda +-- module big-thm +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} +-- {B : sequential-diagram l2} +-- {X : UU l3} {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {Y : UU l4} {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (H : hom-sequential-diagram A B) +-- where + +-- -- the squares induce a map + +-- fโˆž : X โ†’ Y +-- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' H + +-- Cn : (n : โ„•) โ†’ +-- fโˆž โˆ˜ map-cocone-sequential-diagram c n ~ +-- map-cocone-sequential-diagram c' n โˆ˜ map-hom-sequential-diagram B H n +-- Cn = +-- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H + +-- module _ +-- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) +-- (f'โˆž : {x : X} โ†’ P x โ†’ Q (fโˆž x)) +-- where + +-- An : โ„• โ†’ UU l1 +-- An = family-sequential-diagram A +-- Bn : โ„• โ†’ UU l2 +-- Bn = family-sequential-diagram B +-- an : {n : โ„•} โ†’ An n โ†’ An (succ-โ„• n) +-- an = map-sequential-diagram A _ +-- bn : {n : โ„•} โ†’ Bn n โ†’ Bn (succ-โ„• n) +-- bn = map-sequential-diagram B _ +-- fn : {n : โ„•} โ†’ An n โ†’ Bn n +-- fn = map-hom-sequential-diagram B H _ +-- Hn : {n : โ„•} โ†’ bn {n} โˆ˜ fn ~ fn โˆ˜ an +-- Hn = naturality-map-hom-sequential-diagram B H _ + +-- -- a map-over induces squares-over + +-- -- first, the sequences-over: +-- ๐’ŸP : descent-data-sequential-colimit A l5 +-- ๐’ŸP = descent-data-family-cocone-sequential-diagram c P +-- ๐’ซ = dependent-sequential-diagram-descent-data ๐’ŸP +-- ๐’ŸQ : descent-data-sequential-colimit B l6 +-- ๐’ŸQ = descent-data-family-cocone-sequential-diagram c' Q +-- ๐’ฌ = dependent-sequential-diagram-descent-data ๐’ŸQ + +-- Pn : {n : โ„•} โ†’ An n โ†’ UU l5 +-- Pn = family-descent-data-sequential-colimit ๐’ŸP _ +-- Qn : {n : โ„•} โ†’ Bn n โ†’ UU l6 +-- Qn = family-descent-data-sequential-colimit ๐’ŸQ _ + +-- pn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Pn (an a) +-- pn = map-family-descent-data-sequential-colimit ๐’ŸP _ +-- qn : {n : โ„•} (b : Bn n) โ†’ Qn b โ†’ Qn (bn b) +-- qn = map-family-descent-data-sequential-colimit ๐’ŸQ _ + +-- -- then, the maps over homs +-- f'โˆžn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Qn (fn a) +-- f'โˆžn a = +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' +-- ( H) +-- ( _) +-- ( a))) โˆ˜ +-- ( f'โˆž) + +-- -- then, the squares-over +-- f'โˆžn-square-over : +-- {n : โ„•} โ†’ +-- square-over {Q4 = Qn} (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) Hn +-- f'โˆžn-square-over {n} {a} = +-- pasting-vertical-coherence-square-maps +-- ( tr P (coherence-cocone-sequential-diagram c n a)) +-- ( f'โˆž) +-- ( f'โˆž) +-- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ a)) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ (an a))) +-- ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( Hn a)) โˆ˜ +-- ( tr Q (coherence-cocone-sequential-diagram c' n (fn a)))) +-- ( ฮป q โ†’ +-- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ +-- inv (preserves-tr (ฮป p โ†’ f'โˆž {p}) (coherence-cocone-sequential-diagram c n a) q)) +-- ( ( inv-htpy +-- ( ฮป q โ†’ +-- ( tr-concat +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' H n a) +-- ( _) +-- ( q)) โˆ™ +-- ( tr-concat +-- ( coherence-cocone-sequential-diagram c' n (fn a)) +-- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (Hn a)) +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' H n a) +-- ( q))) โˆ™ +-- ( substitution-law-tr Q +-- ( map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( Hn a)))) โˆ™h +-- ( ฮป q โ†’ +-- ap +-- ( ฮป p โ†’ tr Q p q) +-- ( inv +-- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H n a))) โˆ™h +-- ( tr-concat +-- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' H (succ-โ„• n) (an a)))) + +-- thm : +-- (sA : section-dependent-sequential-diagram A ๐’ซ) โ†’ +-- (sB : section-dependent-sequential-diagram B ๐’ฌ) โ†’ +-- (S : (n : โ„•) โ†’ +-- section-map-over (fn {n}) (f'โˆžn _) +-- ( map-section-dependent-sequential-diagram A ๐’ซ sA n) +-- ( map-section-dependent-sequential-diagram B ๐’ฌ sB n)) โ†’ +-- ((n : โ„•) โ†’ +-- section-square-over (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) +-- ( map-section-dependent-sequential-diagram A ๐’ซ sA n) +-- ( map-section-dependent-sequential-diagram B ๐’ฌ sB n) +-- ( map-section-dependent-sequential-diagram A ๐’ซ sA (succ-โ„• n)) +-- ( map-section-dependent-sequential-diagram B ๐’ฌ sB (succ-โ„• n)) +-- ( naturality-map-section-dependent-sequential-diagram A ๐’ซ sA n) +-- ( S n) +-- ( S (succ-โ„• n)) +-- ( naturality-map-section-dependent-sequential-diagram B ๐’ฌ sB n) +-- ( Hn) +-- ( f'โˆžn-square-over)) โ†’ +-- section-map-over fโˆž f'โˆž +-- ( sect-family-sect-dd-sequential-colimit up-c P sA) +-- ( sect-family-sect-dd-sequential-colimit up-c' Q sB) +-- thm sA sB S ฮฑ = +-- map-dependent-universal-property-sequential-colimit +-- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) +-- ( tS , +-- ( ฮป n a โ†’ +-- map-compute-dependent-identification-eq-value +-- ( f'โˆž โˆ˜ sAโˆž) +-- ( sBโˆž โˆ˜ fโˆž) +-- ( coherence-cocone-sequential-diagram c n a) +-- ( tS n a) +-- ( tS (succ-โ„• n) (an a)) +-- ( {!f'โˆžn-square-over!}))) +-- where +-- sAโˆž : (x : X) โ†’ P x +-- sAโˆž = sect-family-sect-dd-sequential-colimit up-c P sA +-- sBโˆž : (y : Y) โ†’ Q y +-- sBโˆž = sect-family-sect-dd-sequential-colimit up-c' Q sB +-- tS : +-- (n : โ„•) โ†’ +-- (f'โˆž โˆ˜ sAโˆž โˆ˜ (map-cocone-sequential-diagram c n)) ~ +-- (sBโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) +-- tS n a = +-- ap f'โˆž +-- ( pr1 +-- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit +-- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) +-- ( sA)) n a) โˆ™ +-- map-equiv +-- ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) +-- ( S n a โˆ™ +-- inv +-- ( apd sBโˆž (Cn n a) โˆ™ +-- pr1 +-- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit +-- ( dependent-universal-property-universal-property-sequential-colimit _ up-c') +-- ( sB)) n (fn a))) +-- ``` diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index 709671029f..05c40956f7 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -1,6 +1,7 @@ # Stuff over other stuff ```agda +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} module synthetic-homotopy-theory.stuff-over where ``` @@ -10,6 +11,7 @@ module synthetic-homotopy-theory.stuff-over where open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions open import foundation.commuting-cubes-of-maps +open import foundation.commuting-squares-of-homotopies open import foundation.commuting-squares-of-maps open import foundation.commuting-triangles-of-maps open import foundation.dependent-identifications @@ -866,6 +868,52 @@ module _ hom-htpy : UU (l2 โŠ” l3) hom-htpy = N โˆ™h (hB ยทl top) ~ (bottom ยทr hA) โˆ™h F +-- module _ +-- where + +-- alt-map-coherence-square-homotopies + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} {V : UU l5} {W : UU l6} + {f g : A โ†’ B} {f' g' : X โ†’ Y} {f'' g'' : V โ†’ W} + (mid : f' ~ g') (bottom : f ~ g) (top : f'' ~ g'') + {hA : X โ†’ A} {hB : Y โ†’ B} {hA' : V โ†’ X} {hB' : W โ†’ Y} + (bottom-N : f โˆ˜ hA ~ hB โˆ˜ f') (bottom-F : g โˆ˜ hA ~ hB โˆ˜ g') + (top-N : f' โˆ˜ hA' ~ hB' โˆ˜ f'') (top-F : g' โˆ˜ hA' ~ hB' โˆ˜ g'') + where + + pasting-vertical-hom-htpy : + hom-htpy mid bottom {hB = hB} bottom-N bottom-F โ†’ + hom-htpy top mid {hB = hB'} top-N top-F โ†’ + hom-htpy top bottom {hB = hB โˆ˜ hB'} + ( pasting-vertical-coherence-square-maps f'' hA' hB' f' hA hB f + top-N bottom-N) + ( pasting-vertical-coherence-square-maps g'' hA' hB' g' hA hB g + top-F bottom-F) + pasting-vertical-hom-htpy ฮฑ ฮฒ = + left-whisker-concat-coherence-square-homotopies + ( bottom-N ยทr hA') + ( hB ยทl mid ยทr hA') + ( hB ยทl top-N) + ( hB ยทl top-F) + ( (hB โˆ˜ hB') ยทl top) + ( left-whisker-concat-htpy (hB ยทl top-N) + ( inv-htpy (preserves-comp-left-whisker-comp hB hB' top)) โˆ™h + map-coherence-square-homotopies hB (mid ยทr hA') top-N top-F (hB' ยทl top) + ( ฮฒ)) โˆ™h + right-whisker-concat-htpy (ฮฑ ยทr hA') (hB ยทl top-F) โˆ™h + assoc-htpy (bottom ยทr (hA โˆ˜ hA')) (bottom-F ยทr hA') (hB ยทl top-F) + +module _ + {l1 l2 : Level} + {A : UU l1} {B : UU l2} + {f g : A โ†’ B} (H : f ~ g) + where + + id-hom-htpy : hom-htpy H H {hA = id} {hB = id} refl-htpy refl-htpy + id-hom-htpy = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy + module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} @@ -881,7 +929,6 @@ module _ (ฮณN : htpy-hom-map f f' hA hB N hA' hB' N' ฯƒA ฯƒB) (ฮณF : htpy-hom-map g g' hA hB F hA' hB' F' ฯƒA ฯƒB) where - open import foundation.commuting-squares-of-homotopies nudged-ฮฑ nudged-ฮฒ : (N โˆ™h (hB ยทl top)) โˆ™h (ฯƒB ยทr g') ~ @@ -911,304 +958,415 @@ module _ htpy-hom-htpy : UU (l2 โŠ” l3) htpy-hom-htpy = nudged-ฮฑ ~ nudged-ฮฒ -module _ - {l1 l2 l3 l4 l1' l2' l3' l4' : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) - {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} - (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') - (top : h' โˆ˜ f' ~ k' โˆ˜ g') - (bottom : h โˆ˜ f ~ k โˆ˜ g) - (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) - (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) - (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) - (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) - (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) - (ฮฑ : - coherence-cube-maps f g h k f' g' h' k' hA hB hC hD - top back-left back-right front-left front-right bottom) - (hA' : A' โ†’ A) (hB' : B' โ†’ B) (hC' : C' โ†’ C) (hD' : D' โ†’ D) - (back-left' : (f โˆ˜ hA') ~ (hB' โˆ˜ f')) - (back-right' : (g โˆ˜ hA') ~ (hC' โˆ˜ g')) - (front-left' : (h โˆ˜ hB') ~ (hD' โˆ˜ h')) - (front-right' : (k โˆ˜ hC') ~ (hD' โˆ˜ k')) - (ฮฒ : - coherence-cube-maps f g h k f' g' h' k' hA' hB' hC' hD' - top back-left' back-right' front-left' front-right' bottom) - (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') (ฯƒD : hD ~ hD') - (back-left-H : htpy-hom-map f f' hA hB back-left hA' hB' back-left' ฯƒA ฯƒB) - (back-right-H : htpy-hom-map g g' hA hC back-right hA' hC' back-right' ฯƒA ฯƒC) - (front-left-H : htpy-hom-map h h' hB hD front-left hB' hD' front-left' ฯƒB ฯƒD) - (front-right-H : htpy-hom-map k k' hC hD front-right hC' hD' front-right' ฯƒC ฯƒD) - where - open import foundation.commuting-squares-of-homotopies - - htpy-hom-square : - UU (l4 โŠ” l1') - htpy-hom-square = - htpy-hom-htpy (h โˆ˜ f) (k โˆ˜ g) (h' โˆ˜ f') (k' โˆ˜ g') bottom top hA hD - ( pasting-horizontal-coherence-square-maps f' h' hA hB hD f h back-left front-left) - ( pasting-horizontal-coherence-square-maps g' k' hA hC hD g k back-right front-right) - ( ฮฑ) - hA' hD' - ( pasting-horizontal-coherence-square-maps f' h' hA' hB' hD' f h back-left' front-left') - ( pasting-horizontal-coherence-square-maps g' k' hA' hC' hD' g k back-right' front-right') - ( ฮฒ) - ฯƒA ฯƒD - ( comp-htpy-hom-map f h f' h' hA hA' hB hB' hD hD' ฯƒA ฯƒB ฯƒD - back-left back-left' back-left-H - front-left front-left' front-left-H) - ( comp-htpy-hom-map g k g' k' hA hA' hC hC' hD hD' ฯƒA ฯƒC ฯƒD - back-right back-right' back-right-H - front-right front-right' front-right-H) - module _ {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) - (H : coherence-square-maps g f k h) + {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} + {f' g' : A' โ†’ B'} (top : f' ~ g') + {f g : A โ†’ B} (bottom : f ~ g) + (hA : A' โ†’ A) (hB : B' โ†’ B) + (N : coherence-square-maps f' hA hB f) + (F : coherence-square-maps g' hA hB g) + (ฮฑ : hom-htpy top bottom {hB = hB} N F) where - id-cube : - coherence-cube-maps f g h k f g h k id id id id - H refl-htpy refl-htpy refl-htpy refl-htpy H - id-cube = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy + coh-section-hom-htpy : + (sA : section hA) (sB : section hB) + (sN : coherence-square-maps f (map-section hA sA) (map-section hB sB) f') + (sF : coherence-square-maps g (map-section hA sA) (map-section hB sB) g') + (ฮฒ : hom-htpy bottom top {hB = map-section hB sB} sN sF) + (ฮณN : + htpy-hom-map f f + ( hA โˆ˜ map-section hA sA) (hB โˆ˜ map-section hB sB) + ( pasting-vertical-coherence-square-maps f + ( map-section hA sA) (map-section hB sB) + f' hA hB f sN N) + id id refl-htpy + ( is-section-map-section hA sA) + ( is-section-map-section hB sB)) + (ฮณF : + htpy-hom-map g g + ( hA โˆ˜ pr1 sA) (hB โˆ˜ pr1 sB) + ( pasting-vertical-coherence-square-maps g (pr1 sA) (pr1 sB) g' hA + hB g sF F) + id id refl-htpy (pr2 sA) (pr2 sB)) โ†’ + UU (l1 โŠ” l2) + coh-section-hom-htpy sA sB sN sF ฮฒ = + htpy-hom-htpy f g f g bottom bottom + ( hA โˆ˜ map-section hA sA) + ( hB โˆ˜ map-section hB sB) + ( pasting-vertical-coherence-square-maps f map-sA map-sB f' hA hB f sN N) + ( pasting-vertical-coherence-square-maps g map-sA map-sB g' hA hB g sF F) + ( pasting-vertical-hom-htpy top bottom bottom N F sN sF ฮฑ ฮฒ) + id id refl-htpy refl-htpy (id-hom-htpy bottom) + ( is-section-map-section hA sA) + ( is-section-map-section hB sB) + where + map-sA : A โ†’ A' + map-sA = map-section hA sA + map-sB : B โ†’ B' + map-sB = map-section hB sB module _ - {l1 l2 l3 l4 l1' l2' l3' l4' : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) - {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} - (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') - (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) - (top : (h' โˆ˜ f') ~ (k' โˆ˜ g')) - (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) - (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) - (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) - (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) - (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) - (ฮฑ : - coherence-cube-maps f g h k f' g' h' k' hA hB hC hD - top back-left back-right front-left front-right bottom) + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} where - section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l1' โŠ” l2' โŠ” l3' โŠ” l4') - section-displayed-cube-over = - ฮฃ ( section-displayed-map-over f f' hA hB back-left) - ( ฮป sF โ†’ - ฮฃ ( section-displayed-map-over k k' hC hD front-right) - ( ฮป sK โ†’ - ฮฃ ( coherence-square-maps g - ( map-section hA (pr1 sF)) - ( map-section hC (pr1 sK)) - ( g')) - ( ฮป G โ†’ - ฮฃ ( htpy-hom-map g g - ( hA โˆ˜ map-section hA (pr1 sF)) - ( hC โˆ˜ map-section hC (pr1 sK)) - ( pasting-vertical-coherence-square-maps g - ( map-section hA (pr1 sF)) - ( map-section hC (pr1 sK)) - g' hA hC g - G back-right) - id id refl-htpy - ( is-section-map-section hA (pr1 sF)) - ( is-section-map-section hC (pr1 sK))) - ( ฮป sG โ†’ - ฮฃ ( coherence-square-maps h - ( map-section hB (pr1 (pr2 sF))) - ( map-section hD (pr1 (pr2 sK))) - ( h')) - ( ฮป H โ†’ - ฮฃ ( htpy-hom-map h h - ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) - ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) - ( pasting-vertical-coherence-square-maps h - ( map-section hB (pr1 (pr2 sF))) - ( map-section hD (pr1 (pr2 sK))) - h' hB hD h - H front-left) - id id refl-htpy - ( is-section-map-section hB (pr1 (pr2 sF))) - ( is-section-map-section hD (pr1 (pr2 sK)))) - ( ฮป sH โ†’ - ฮฃ ( coherence-cube-maps f' g' h' k' f g h k - ( map-section hA (pr1 sF)) - ( map-section hB (pr1 (pr2 sF))) - ( map-section hC (pr1 sK)) - ( map-section hD (pr1 (pr2 sK))) - ( bottom) - ( pr1 (pr2 (pr2 sF))) - ( G) - ( H) - ( pr1 (pr2 (pr2 sK))) - ( top)) - ( ฮป ฮฒ โ†’ - htpy-hom-square f g h k f g h k bottom bottom - ( hA โˆ˜ map-section hA (pr1 sF)) - ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) - ( hC โˆ˜ map-section hC (pr1 sK)) - ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) - ( pasting-vertical-coherence-square-maps f - ( map-section hA (pr1 sF)) - ( map-section hB (pr1 (pr2 sF))) - f' hA hB f - ( pr1 (pr2 (pr2 sF))) - ( back-left)) - ( pasting-vertical-coherence-square-maps g - ( map-section hA (pr1 sF)) - ( map-section hC (pr1 sK)) - g' hA hC g - ( G) - ( back-right)) - ( pasting-vertical-coherence-square-maps h - ( map-section hB (pr1 (pr2 sF))) - ( map-section hD (pr1 (pr2 sK))) - h' hB hD h - ( H) - ( front-left)) - ( pasting-vertical-coherence-square-maps k - ( map-section hC (pr1 sK)) - ( map-section hD (pr1 (pr2 sK))) - k' hC hD k - ( pr1 (pr2 (pr2 sK))) - ( front-right)) - ( pasting-vertical-coherence-cube-maps f g h k - f' g' h' k' f g h k - hA hB hC hD - ( map-section hA (pr1 sF)) - ( map-section hB (pr1 (pr2 sF))) - ( map-section hC (pr1 sK)) - ( map-section hD (pr1 (pr2 sK))) - ( top) - back-left back-right front-left front-right bottom - ( bottom) - ( pr1 (pr2 (pr2 sF))) - ( G) - ( H) - ( pr1 (pr2 (pr2 sK))) - ( ฮฑ) - ( ฮฒ)) - id id id id - refl-htpy refl-htpy refl-htpy refl-htpy - ( id-cube f g h k bottom) - ( is-section-map-section hA (pr1 sF)) - ( is-section-map-section hB (pr1 (pr2 sF))) - ( is-section-map-section hC (pr1 sK)) - ( is-section-map-section hD (pr1 (pr2 sK))) - ( pr2 (pr2 (pr2 sF))) - ( sG) - ( sH) - ( pr2 (pr2 (pr2 sK)))))))))) + compute-concat-dependent-identification-right-base-refl : + { x y : A} (p : x ๏ผ y) โ†’ + { x' : B x} {y' z' : B y} (p' : dependent-identification B p x' y') โ†’ + ( q' : y' ๏ผ z') โ†’ + concat-dependent-identification B p refl p' q' ๏ผ ap (ฮป r โ†’ tr B r x') right-unit โˆ™ p' โˆ™ q' + compute-concat-dependent-identification-right-base-refl refl p' q' = ap (_โˆ™ q') (ap-id p') + + interchange-concat-eq-pair-ฮฃ-left : + {y z : A} (q : y ๏ผ z) {x' y' : B y} {z' : B z} โ†’ + (p' : x' ๏ผ y') + (q' : dependent-identification B q y' z') โ†’ + eq-pair-eq-fiber p' โˆ™ eq-pair-ฮฃ q q' ๏ผ + eq-pair-ฮฃ q (ap (tr B q) p' โˆ™ q') + interchange-concat-eq-pair-ฮฃ-left q refl q' = refl + + interchange-concat-eq-pair-ฮฃ-right : + {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ + (p' : dependent-identification B p x' y') โ†’ + (q' : y' ๏ผ z') โ†’ + eq-pair-ฮฃ p p' โˆ™ eq-pair-eq-fiber q' ๏ผ + eq-pair-ฮฃ p (p' โˆ™ q') + interchange-concat-eq-pair-ฮฃ-right p p' refl = + right-unit โˆ™ ap (eq-pair-ฮฃ p) (inv right-unit) module _ - {l1 l2 l3 l4 l5 l6 l7 l8 : Level} - {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} - {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} - (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) - (g1' : (p : P1) โ†’ Q1 p โ†’ Q3 (g1 p)) - (f1' : (p : P1) โ†’ Q1 p โ†’ Q2 (f1 p)) - (f2' : (p : P3) โ†’ Q3 p โ†’ Q4 (f2 p)) - (g2' : (p : P2) โ†’ Q2 p โ†’ Q4 (g2 p)) - (bottom : g2 โˆ˜ f1 ~ f2 โˆ˜ g1) - (top : square-over g1 f1 f2 g2 (g1' _) (f1' _) (f2' _) (g2' _) bottom) + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + {f g : A โ†’ B} (H : f ~ g) + {f' : (a : A) โ†’ P a โ†’ Q (f a)} {g' : (a : A) โ†’ P a โ†’ Q (g a)} + (H' : htpy-over Q H (f' _) (g' _)) + (sA : (a : A) โ†’ P a) + (sB : (b : B) โ†’ Q b) + (F : section-map-over f (f' _) sA sB) + (G : section-map-over g (g' _) sA sB) + (ฮฑ : section-htpy-over H H' sA sB F G) where - - tot-square-over : - coherence-square-maps - ( tot-map-over g1 g1') - ( tot-map-over f1 f1') - ( tot-map-over {B' = Q4} f2 f2') - ( tot-map-over g2 g2') - tot-square-over = - coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p}) - - coh-tot-square-over : - coherence-cube-maps f1 g1 g2 f2 - ( map-ฮฃ Q2 f1 f1') - ( map-ฮฃ Q3 g1 g1') - ( map-ฮฃ Q4 g2 g2') - ( map-ฮฃ Q4 f2 f2') - pr1 pr1 pr1 pr1 - ( tot-square-over) - refl-htpy refl-htpy refl-htpy refl-htpy - ( bottom) - coh-tot-square-over (p , q) = - ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit - - module _ - (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) - (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) - (G1 : (p : P1) โ†’ g1' p (s1 p) ๏ผ s3 (g1 p)) - (F1 : (p : P1) โ†’ f1' p (s1 p) ๏ผ s2 (f1 p)) - (F2 : (p : P3) โ†’ f2' p (s3 p) ๏ผ s4 (f2 p)) - (G2 : (p : P2) โ†’ g2' p (s2 p) ๏ผ s4 (g2 p)) - where - open import foundation.action-on-identifications-binary-functions - - lemma : - pasting-vertical-coherence-square-maps g1 - ( map-section-family s1) (map-section-family s3) - ( tot-map-over g1 g1') (tot-map-over f1 f1') - ( tot-map-over {B' = Q4} f2 f2') (tot-map-over g2 g2') - ( eq-pair-eq-fiber โˆ˜ G1) - ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ - ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) - lemma = ฮป p โ†’ ap - ( eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) - ( [i] p) โˆ™ - ( inv (concat-vertical-eq-pair (bottom p) (top (s1 p)) (ap (f2' (g1 p)) (G1 p)))) - where - [i] = - ฮป (p : P1) โ†’ - inv (ap-comp (map-ฮฃ Q4 f2 f2') (pair (g1 p)) (G1 p)) โˆ™ - ap-comp (pair (f2 (g1 p))) (f2' (g1 p)) (G1 p) - - section-cube-over-sect-square-over : - section-square-over g1 f1 f2 g2 - ( g1' _) (f1' _) (f2' _) (g2' _) - s1 s2 s3 s4 - G1 F1 F2 G2 - bottom top โ†’ - section-displayed-cube-over f1 g1 g2 f2 - ( tot-map-over f1 f1') - ( tot-map-over g1 g1') - ( tot-map-over g2 g2') - ( tot-map-over f2 f2') - pr1 pr1 pr1 pr1 - ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) - refl-htpy refl-htpy refl-htpy refl-htpy - ( bottom) - ( coh-tot-square-over) - pr1 (section-cube-over-sect-square-over ฮฑ) = - ( section-dependent-function s1) , - ( section-dependent-function s2) , - ( eq-pair-eq-fiber โˆ˜ F1) , - ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) - pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = - ( section-dependent-function s3) , - ( section-dependent-function s4) , - ( eq-pair-eq-fiber โˆ˜ F2) , - ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) - pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = - ( eq-pair-eq-fiber โˆ˜ G1) , - ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G1 p)) , - ( eq-pair-eq-fiber โˆ˜ G2) , - ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G2 p)) , - ( ฮป p โ†’ - ap-binary - ( _โˆ™_) - ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) - ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ - {!!} โˆ™ - ap (eq-pair-ฮฃ (bottom p)) (inv (ฮฑ p) โˆ™ assoc (top (s1 p)) (ap (f2' (g1 p)) (G1 p)) (F2 (g1 p))) โˆ™ - concat-vertical-eq-pair - ( bottom p) - ( top (s1 p)) - ( ap (f2' (g1 p)) (G1 p) โˆ™ F2 (g1 p)) โˆ™ - ap-binary - ( _โˆ™_) - ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) - ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , - {!!} -``` + open import foundation.embeddings + + _ : coh-section-hom-htpy + ( ฮป p โ†’ eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p))) + ( H) + pr1 pr1 refl-htpy refl-htpy + ( ฮป p โ†’ ap-pr1-eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p)) โˆ™ inv right-unit) + ( section-dependent-function sA) + ( section-dependent-function sB) + ( eq-pair-eq-fiber โˆ˜ F) + ( eq-pair-eq-fiber โˆ˜ G) + -- The point is that this will be `ap pr1`'d, so the ฮฑ in the fiber is + -- projected away. This definition should probably be defined in a nicer way + -- to make the proof less opaque. + ( ฮป a โ†’ + ap (eq-pair-eq-fiber (F a) โˆ™_) (ap-map-section-family-lemma sB (H a)) โˆ™ + interchange-concat-eq-pair-ฮฃ-left (H a) (F a) (apd sB (H a)) โˆ™ + ap (eq-pair-ฮฃ (H a)) (inv (ฮฑ a)) โˆ™ + inv (interchange-concat-eq-pair-ฮฃ-right (H a) (H' (sA a)) (G a))) + ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (F a)) + ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (G a)) + _ = {!!} + +-- module _ +-- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} +-- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} +-- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') +-- (top : h' โˆ˜ f' ~ k' โˆ˜ g') +-- (bottom : h โˆ˜ f ~ k โˆ˜ g) +-- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) +-- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) +-- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) +-- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) +-- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) +-- (ฮฑ : +-- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD +-- top back-left back-right front-left front-right bottom) +-- (hA' : A' โ†’ A) (hB' : B' โ†’ B) (hC' : C' โ†’ C) (hD' : D' โ†’ D) +-- (back-left' : (f โˆ˜ hA') ~ (hB' โˆ˜ f')) +-- (back-right' : (g โˆ˜ hA') ~ (hC' โˆ˜ g')) +-- (front-left' : (h โˆ˜ hB') ~ (hD' โˆ˜ h')) +-- (front-right' : (k โˆ˜ hC') ~ (hD' โˆ˜ k')) +-- (ฮฒ : +-- coherence-cube-maps f g h k f' g' h' k' hA' hB' hC' hD' +-- top back-left' back-right' front-left' front-right' bottom) +-- (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') (ฯƒD : hD ~ hD') +-- (back-left-H : htpy-hom-map f f' hA hB back-left hA' hB' back-left' ฯƒA ฯƒB) +-- (back-right-H : htpy-hom-map g g' hA hC back-right hA' hC' back-right' ฯƒA ฯƒC) +-- (front-left-H : htpy-hom-map h h' hB hD front-left hB' hD' front-left' ฯƒB ฯƒD) +-- (front-right-H : htpy-hom-map k k' hC hD front-right hC' hD' front-right' ฯƒC ฯƒD) +-- where +-- open import foundation.commuting-squares-of-homotopies + +-- htpy-hom-square : +-- UU (l4 โŠ” l1') +-- htpy-hom-square = +-- htpy-hom-htpy (h โˆ˜ f) (k โˆ˜ g) (h' โˆ˜ f') (k' โˆ˜ g') bottom top hA hD +-- ( pasting-horizontal-coherence-square-maps f' h' hA hB hD f h back-left front-left) +-- ( pasting-horizontal-coherence-square-maps g' k' hA hC hD g k back-right front-right) +-- ( ฮฑ) +-- hA' hD' +-- ( pasting-horizontal-coherence-square-maps f' h' hA' hB' hD' f h back-left' front-left') +-- ( pasting-horizontal-coherence-square-maps g' k' hA' hC' hD' g k back-right' front-right') +-- ( ฮฒ) +-- ฯƒA ฯƒD +-- ( comp-htpy-hom-map f h f' h' hA hA' hB hB' hD hD' ฯƒA ฯƒB ฯƒD +-- back-left back-left' back-left-H +-- front-left front-left' front-left-H) +-- ( comp-htpy-hom-map g k g' k' hA hA' hC hC' hD hD' ฯƒA ฯƒC ฯƒD +-- back-right back-right' back-right-H +-- front-right front-right' front-right-H) + +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- (H : coherence-square-maps g f k h) +-- where + +-- id-cube : +-- coherence-cube-maps f g h k f g h k id id id id +-- H refl-htpy refl-htpy refl-htpy refl-htpy H +-- id-cube = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy + +-- module _ +-- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} +-- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} +-- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') +-- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) +-- (top : (h' โˆ˜ f') ~ (k' โˆ˜ g')) +-- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) +-- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) +-- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) +-- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) +-- (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) +-- (ฮฑ : +-- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD +-- top back-left back-right front-left front-right bottom) +-- where + +-- section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l1' โŠ” l2' โŠ” l3' โŠ” l4') +-- section-displayed-cube-over = +-- ฮฃ ( section-displayed-map-over f f' hA hB back-left) +-- ( ฮป sF โ†’ +-- ฮฃ ( section-displayed-map-over k k' hC hD front-right) +-- ( ฮป sK โ†’ +-- ฮฃ ( coherence-square-maps g +-- ( map-section hA (pr1 sF)) +-- ( map-section hC (pr1 sK)) +-- ( g')) +-- ( ฮป G โ†’ +-- ฮฃ ( htpy-hom-map g g +-- ( hA โˆ˜ map-section hA (pr1 sF)) +-- ( hC โˆ˜ map-section hC (pr1 sK)) +-- ( pasting-vertical-coherence-square-maps g +-- ( map-section hA (pr1 sF)) +-- ( map-section hC (pr1 sK)) +-- g' hA hC g +-- G back-right) +-- id id refl-htpy +-- ( is-section-map-section hA (pr1 sF)) +-- ( is-section-map-section hC (pr1 sK))) +-- ( ฮป sG โ†’ +-- ฮฃ ( coherence-square-maps h +-- ( map-section hB (pr1 (pr2 sF))) +-- ( map-section hD (pr1 (pr2 sK))) +-- ( h')) +-- ( ฮป H โ†’ +-- ฮฃ ( htpy-hom-map h h +-- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) +-- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) +-- ( pasting-vertical-coherence-square-maps h +-- ( map-section hB (pr1 (pr2 sF))) +-- ( map-section hD (pr1 (pr2 sK))) +-- h' hB hD h +-- H front-left) +-- id id refl-htpy +-- ( is-section-map-section hB (pr1 (pr2 sF))) +-- ( is-section-map-section hD (pr1 (pr2 sK)))) +-- ( ฮป sH โ†’ +-- ฮฃ ( coherence-cube-maps f' g' h' k' f g h k +-- ( map-section hA (pr1 sF)) +-- ( map-section hB (pr1 (pr2 sF))) +-- ( map-section hC (pr1 sK)) +-- ( map-section hD (pr1 (pr2 sK))) +-- ( bottom) +-- ( pr1 (pr2 (pr2 sF))) +-- ( G) +-- ( H) +-- ( pr1 (pr2 (pr2 sK))) +-- ( top)) +-- ( ฮป ฮฒ โ†’ +-- htpy-hom-square f g h k f g h k bottom bottom +-- ( hA โˆ˜ map-section hA (pr1 sF)) +-- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) +-- ( hC โˆ˜ map-section hC (pr1 sK)) +-- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) +-- ( pasting-vertical-coherence-square-maps f +-- ( map-section hA (pr1 sF)) +-- ( map-section hB (pr1 (pr2 sF))) +-- f' hA hB f +-- ( pr1 (pr2 (pr2 sF))) +-- ( back-left)) +-- ( pasting-vertical-coherence-square-maps g +-- ( map-section hA (pr1 sF)) +-- ( map-section hC (pr1 sK)) +-- g' hA hC g +-- ( G) +-- ( back-right)) +-- ( pasting-vertical-coherence-square-maps h +-- ( map-section hB (pr1 (pr2 sF))) +-- ( map-section hD (pr1 (pr2 sK))) +-- h' hB hD h +-- ( H) +-- ( front-left)) +-- ( pasting-vertical-coherence-square-maps k +-- ( map-section hC (pr1 sK)) +-- ( map-section hD (pr1 (pr2 sK))) +-- k' hC hD k +-- ( pr1 (pr2 (pr2 sK))) +-- ( front-right)) +-- ( pasting-vertical-coherence-cube-maps f g h k +-- f' g' h' k' f g h k +-- hA hB hC hD +-- ( map-section hA (pr1 sF)) +-- ( map-section hB (pr1 (pr2 sF))) +-- ( map-section hC (pr1 sK)) +-- ( map-section hD (pr1 (pr2 sK))) +-- ( top) +-- back-left back-right front-left front-right bottom +-- ( bottom) +-- ( pr1 (pr2 (pr2 sF))) +-- ( G) +-- ( H) +-- ( pr1 (pr2 (pr2 sK))) +-- ( ฮฑ) +-- ( ฮฒ)) +-- id id id id +-- refl-htpy refl-htpy refl-htpy refl-htpy +-- ( id-cube f g h k bottom) +-- ( is-section-map-section hA (pr1 sF)) +-- ( is-section-map-section hB (pr1 (pr2 sF))) +-- ( is-section-map-section hC (pr1 sK)) +-- ( is-section-map-section hD (pr1 (pr2 sK))) +-- ( pr2 (pr2 (pr2 sF))) +-- ( sG) +-- ( sH) +-- ( pr2 (pr2 (pr2 sK)))))))))) + +-- module _ +-- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} +-- {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} +-- {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} +-- (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) +-- (g1' : (p : P1) โ†’ Q1 p โ†’ Q3 (g1 p)) +-- (f1' : (p : P1) โ†’ Q1 p โ†’ Q2 (f1 p)) +-- (f2' : (p : P3) โ†’ Q3 p โ†’ Q4 (f2 p)) +-- (g2' : (p : P2) โ†’ Q2 p โ†’ Q4 (g2 p)) +-- (bottom : g2 โˆ˜ f1 ~ f2 โˆ˜ g1) +-- (top : square-over g1 f1 f2 g2 (g1' _) (f1' _) (f2' _) (g2' _) bottom) +-- where + +-- tot-square-over : +-- coherence-square-maps +-- ( tot-map-over g1 g1') +-- ( tot-map-over f1 f1') +-- ( tot-map-over {B' = Q4} f2 f2') +-- ( tot-map-over g2 g2') +-- tot-square-over = +-- coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p}) + +-- coh-tot-square-over : +-- coherence-cube-maps f1 g1 g2 f2 +-- ( map-ฮฃ Q2 f1 f1') +-- ( map-ฮฃ Q3 g1 g1') +-- ( map-ฮฃ Q4 g2 g2') +-- ( map-ฮฃ Q4 f2 f2') +-- pr1 pr1 pr1 pr1 +-- ( tot-square-over) +-- refl-htpy refl-htpy refl-htpy refl-htpy +-- ( bottom) +-- coh-tot-square-over (p , q) = +-- ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit + +-- module _ +-- (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) +-- (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) +-- (G1 : (p : P1) โ†’ g1' p (s1 p) ๏ผ s3 (g1 p)) +-- (F1 : (p : P1) โ†’ f1' p (s1 p) ๏ผ s2 (f1 p)) +-- (F2 : (p : P3) โ†’ f2' p (s3 p) ๏ผ s4 (f2 p)) +-- (G2 : (p : P2) โ†’ g2' p (s2 p) ๏ผ s4 (g2 p)) +-- where +-- open import foundation.action-on-identifications-binary-functions + +-- lemma : +-- pasting-vertical-coherence-square-maps g1 +-- ( map-section-family s1) (map-section-family s3) +-- ( tot-map-over g1 g1') (tot-map-over f1 f1') +-- ( tot-map-over {B' = Q4} f2 f2') (tot-map-over g2 g2') +-- ( eq-pair-eq-fiber โˆ˜ G1) +-- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ +-- ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) +-- lemma = ฮป p โ†’ ap +-- ( eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) +-- ( [i] p) โˆ™ +-- ( inv (concat-vertical-eq-pair (bottom p) (top (s1 p)) (ap (f2' (g1 p)) (G1 p)))) +-- where +-- [i] = +-- ฮป (p : P1) โ†’ +-- inv (ap-comp (map-ฮฃ Q4 f2 f2') (pair (g1 p)) (G1 p)) โˆ™ +-- ap-comp (pair (f2 (g1 p))) (f2' (g1 p)) (G1 p) + +-- section-cube-over-sect-square-over : +-- section-square-over g1 f1 f2 g2 +-- ( g1' _) (f1' _) (f2' _) (g2' _) +-- s1 s2 s3 s4 +-- G1 F1 F2 G2 +-- bottom top โ†’ +-- section-displayed-cube-over f1 g1 g2 f2 +-- ( tot-map-over f1 f1') +-- ( tot-map-over g1 g1') +-- ( tot-map-over g2 g2') +-- ( tot-map-over f2 f2') +-- pr1 pr1 pr1 pr1 +-- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) +-- refl-htpy refl-htpy refl-htpy refl-htpy +-- ( bottom) +-- ( coh-tot-square-over) +-- pr1 (section-cube-over-sect-square-over ฮฑ) = +-- ( section-dependent-function s1) , +-- ( section-dependent-function s2) , +-- ( eq-pair-eq-fiber โˆ˜ F1) , +-- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) +-- pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = +-- ( section-dependent-function s3) , +-- ( section-dependent-function s4) , +-- ( eq-pair-eq-fiber โˆ˜ F2) , +-- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) +-- pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = +-- ( eq-pair-eq-fiber โˆ˜ G1) , +-- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G1 p)) , +-- ( eq-pair-eq-fiber โˆ˜ G2) , +-- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G2 p)) , +-- ( ฮป p โ†’ +-- ap-binary +-- ( _โˆ™_) +-- ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) +-- ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ +-- {!!} โˆ™ +-- ap (eq-pair-ฮฃ (bottom p)) (inv (ฮฑ p) โˆ™ assoc (top (s1 p)) (ap (f2' (g1 p)) (G1 p)) (F2 (g1 p))) โˆ™ +-- concat-vertical-eq-pair +-- ( bottom p) +-- ( top (s1 p)) +-- ( ap (f2' (g1 p)) (G1 p) โˆ™ F2 (g1 p)) โˆ™ +-- ap-binary +-- ( _โˆ™_) +-- ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) +-- ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , +-- {!!} +-- ``` From 83d5333adaf76c0aa3a742822955ca9616526003 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 6 Feb 2025 18:33:52 +0100 Subject: [PATCH 22/33] Some preservation properties --- .../functoriality-stuff.lagda.md | 406 +++++++++++++++--- .../morphisms-sequential-diagrams.lagda.md | 51 +++ 2 files changed, 402 insertions(+), 55 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index ea2ed0e2ff..2fa9750471 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -227,6 +227,75 @@ module _ where open import foundation.action-on-identifications-binary-functions ``` +## Vertical pasting of cubes of stuff + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {A' : sequential-diagram l3} {B' : sequential-diagram l4} + {A'' : sequential-diagram l5} {B'' : sequential-diagram l6} + (top : hom-sequential-diagram A'' B'') + (top-left : hom-sequential-diagram A'' A') + (top-right : hom-sequential-diagram B'' B') + (mid : hom-sequential-diagram A' B') + (bottom-left : hom-sequential-diagram A' A) + (bottom-right : hom-sequential-diagram B' B) + (bottom : hom-sequential-diagram A B) + (H : + htpy-hom-sequential-diagram B + ( comp-hom-sequential-diagram A' A B bottom bottom-left) + ( comp-hom-sequential-diagram A' B' B bottom-right mid)) + (K : + htpy-hom-sequential-diagram B' + ( comp-hom-sequential-diagram A'' A' B' mid top-left) + ( comp-hom-sequential-diagram A'' B'' B' top-right top)) + -- (faces-top : + -- (n : โ„•) โ†’ + -- coherence-square-maps + -- ( map-hom-sequential-diagram B'' top n) + -- ( map-hom-sequential-diagram A' top-left n) + -- ( map-hom-sequential-diagram B' top-right n) + -- ( map-hom-sequential-diagram B' mid n)) + -- (faces-bottom : + -- (n : โ„•) โ†’ {!!}) + -- (cubes-top : + -- (n : โ„•) โ†’ {!!}) + -- (cubes-bottom : + -- (n : โ„•) โ†’ {!!}) + -- -- (cubes : + -- -- (n : โ„•) โ†’ + -- -- coherence-cube-maps + -- -- ( map-hom-sequential-diagram B f n) + -- -- ( map-sequential-diagram A n) + -- -- ( map-sequential-diagram B n) + -- -- ( map-hom-sequential-diagram B f (succ-โ„• n)) + -- -- ( map-hom-sequential-diagram Q f' n) + -- -- ( map-sequential-diagram P n) + -- -- ( map-sequential-diagram Q n) + -- -- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) + -- -- ( map-hom-sequential-diagram A g n) + -- -- ( map-hom-sequential-diagram B h n) + -- -- ( map-hom-sequential-diagram A g (succ-โ„• n)) + -- -- ( map-hom-sequential-diagram B h (succ-โ„• n)) + -- -- ( naturality-map-hom-sequential-diagram Q f' n) + -- -- ( faces n) + -- -- ( naturality-map-hom-sequential-diagram A g n) + -- -- ( naturality-map-hom-sequential-diagram B h n) + -- -- ( faces (succ-โ„• n)) + -- -- ( naturality-map-hom-sequential-diagram B f n)) โ†’ + where + + pasting-vertical-coherence-square-hom-sequential-diagram : + htpy-hom-sequential-diagram B + ( comp-hom-sequential-diagram A'' A B bottom + ( comp-hom-sequential-diagram A'' A' A bottom-left top-left)) + ( comp-hom-sequential-diagram A'' B'' B + ( comp-hom-sequential-diagram B'' B' B bottom-right top-right) + ( top)) + pasting-vertical-coherence-square-hom-sequential-diagram = {!!} +``` + ## Whiskering of homotopies of morphisms of sequential diagrams ### Right whiskering @@ -388,60 +457,144 @@ module _ {l1 l2 l3 : Level} {A : sequential-diagram l1} {B : sequential-diagram l2} {X : sequential-diagram l3} - (h : hom-sequential-diagram B X) {f g : hom-sequential-diagram A B} - (H : htpy-hom-sequential-diagram B f g) where open import foundation.whiskering-identifications-concatenation - left-whisker-concat-htpy-hom-sequential-diagram : - htpy-hom-sequential-diagram X + module _ + (h : hom-sequential-diagram B X) + (H : htpy-hom-sequential-diagram B f g) + where + + left-whisker-concat-htpy-hom-sequential-diagram : + htpy-hom-sequential-diagram X + ( comp-hom-sequential-diagram A B X h f) + ( comp-hom-sequential-diagram A B X h g) + pr1 left-whisker-concat-htpy-hom-sequential-diagram n = + map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n + pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = + assoc _ _ _ โˆ™ + left-whisker-concat + ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) + ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ + ap + ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) + ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ + ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ + inv (assoc _ _ _) โˆ™ + right-whisker-concat + ( left-whisker-concat + ( naturality-map-hom-sequential-diagram X h n + ( map-hom-sequential-diagram B f n a)) + ( inv + ( ap-comp + ( map-hom-sequential-diagram X h (succ-โ„• n)) + ( map-sequential-diagram B n) + ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ + nat-htpy + ( naturality-map-hom-sequential-diagram X h n) + ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ + right-whisker-concat + ( ap-comp + ( map-sequential-diagram X n) + ( map-hom-sequential-diagram X h n) + ( htpy-htpy-hom-sequential-diagram B H n a)) + ( naturality-map-hom-sequential-diagram X h n + ( map-hom-sequential-diagram B g n a))) + ( ap + ( map-hom-sequential-diagram X h (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ + assoc _ _ _ + + htpy-eq-left-whisker-htpy-hom-sequential-diagram : + (h : hom-sequential-diagram B X) (p : f ๏ผ g) โ†’ + htpy-eq-sequential-diagram A X ( comp-hom-sequential-diagram A B X h f) ( comp-hom-sequential-diagram A B X h g) - pr1 left-whisker-concat-htpy-hom-sequential-diagram n = - map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n - pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = - assoc _ _ _ โˆ™ - left-whisker-concat - ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) - ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ - ap - ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) - ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ - ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ - inv (assoc _ _ _) โˆ™ - right-whisker-concat - ( left-whisker-concat - ( naturality-map-hom-sequential-diagram X h n - ( map-hom-sequential-diagram B f n a)) - ( inv - ( ap-comp - ( map-hom-sequential-diagram X h (succ-โ„• n)) - ( map-sequential-diagram B n) - ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ - nat-htpy - ( naturality-map-hom-sequential-diagram X h n) - ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ - right-whisker-concat - ( ap-comp - ( map-sequential-diagram X n) - ( map-hom-sequential-diagram X h n) - ( htpy-htpy-hom-sequential-diagram B H n a)) - ( naturality-map-hom-sequential-diagram X h n - ( map-hom-sequential-diagram B g n a))) + ( ap (comp-hom-sequential-diagram A B X h) p) ๏ผ + left-whisker-concat-htpy-hom-sequential-diagram h + ( htpy-eq-sequential-diagram A B f g p) + htpy-eq-left-whisker-htpy-hom-sequential-diagram h refl = + eq-pair-eq-fiber + ( eq-binary-htpy _ _ + ( ฮป n a โ†’ + inv + ( right-unit โˆ™ + ( ap-binary + ( ฮป p q โ†’ + p โˆ™ + left-whisker-concat + ( naturality-map-hom-sequential-diagram X h n + ( map-hom-sequential-diagram B f n a)) + ( inv (ap-concat _ _ refl) โˆ™ + ap + ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) + ( right-unit) โˆ™ + refl) โˆ™ + q โˆ™ + right-whisker-concat (right-unit โˆ™ refl) _) + ( right-unit-law-assoc _ (ap _ _) โˆ™ + left-whisker-concat right-unit (ap-inv _ right-unit)) + ( ap inv (middle-unit-law-assoc _ _))) โˆ™ + ( ap-binary + ( ฮป p q โ†’ + right-unit โˆ™ + inv (left-whisker-concat _ right-unit) โˆ™ + left-whisker-concat _ p โˆ™ + inv (right-whisker-concat right-unit _) โˆ™ + right-whisker-concat q _) + ( right-unit โˆ™ + right-whisker-concat + ( ap inv (compute-right-refl-ap-concat _ _) โˆ™ + distributive-inv-concat + ( ap (ap _) right-unit) + ( inv right-unit) โˆ™ + right-whisker-concat (inv-inv right-unit) _) + ( ap (ap _) right-unit) โˆ™ + is-section-inv-concat' (ap (ap _) right-unit) right-unit) + ( right-unit)) โˆ™ + is-section-inv-concat' + ( right-whisker-concat right-unit _) + ( right-unit โˆ™ inv _ โˆ™ _) โˆ™ + is-section-inv-concat' + ( left-whisker-concat _ right-unit) + ( right-unit)))) + where + open import foundation.action-on-identifications-binary-functions + open import foundation.binary-homotopies + open import foundation.path-algebra + + eq-htpy-left-whisker-htpy-hom-sequential-diagram : + (h : hom-sequential-diagram B X) (H : htpy-hom-sequential-diagram B f g) โ†’ + eq-htpy-sequential-diagram A X + ( comp-hom-sequential-diagram A B X h f) + ( comp-hom-sequential-diagram A B X h g) + ( left-whisker-concat-htpy-hom-sequential-diagram h H) ๏ผ + ap + ( comp-hom-sequential-diagram A B X h) + ( eq-htpy-sequential-diagram A B f g H) + eq-htpy-left-whisker-htpy-hom-sequential-diagram h H = + ap + ( eq-htpy-sequential-diagram A X _ _) + ( inv + ( htpy-eq-left-whisker-htpy-hom-sequential-diagram h + ( eq-htpy-sequential-diagram A B f g H) โˆ™ + ap + ( left-whisker-concat-htpy-hom-sequential-diagram h) + ( is-section-map-inv-equiv + ( extensionality-hom-sequential-diagram A B f g) + ( H)))) โˆ™ + is-retraction-map-inv-equiv + ( extensionality-hom-sequential-diagram A X + ( comp-hom-sequential-diagram A B X h f) + ( comp-hom-sequential-diagram A B X h g)) ( ap - ( map-hom-sequential-diagram X h (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ - assoc _ _ _ + ( comp-hom-sequential-diagram A B X h) + ( eq-htpy-sequential-diagram A B f g H)) ``` ## Action on homotopies of morphisms of sequential diagrams preserves whiskering -```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} -``` - ```agda module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -451,27 +604,80 @@ module _ (up-b : universal-property-sequential-colimit b) {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) {f g : hom-sequential-diagram B C} - (H : htpy-hom-sequential-diagram C f g) - (h : hom-sequential-diagram A B) where + coh-comp-hom-sequential-diagram : + (p : f ๏ผ g) (h : hom-sequential-diagram A B) โ†’ + ap + ( map-sequential-colimit-hom-sequential-diagram up-a c) + ( ap (ฮป f โ†’ comp-hom-sequential-diagram A B C f h) p) โˆ™ + eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) ๏ผ + eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™ + ap + ( _โˆ˜ map-sequential-colimit-hom-sequential-diagram up-a b h) + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-b c) + ( p)) + coh-comp-hom-sequential-diagram refl h = inv right-unit + preserves-right-whisker-htpy-hom-sequential-diagram : + (H : htpy-hom-sequential-diagram C f g) + (h : hom-sequential-diagram A B) โ†’ ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c ( right-whisker-concat-htpy-hom-sequential-diagram H h)) โˆ™h ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h)) ~ ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™h ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-b c H ยทr map-sequential-colimit-hom-sequential-diagram up-a b h)) - preserves-right-whisker-htpy-hom-sequential-diagram = - right-whisker-concat-htpy - ( htpy-eq - ( ap + preserves-right-whisker-htpy-hom-sequential-diagram H h = + htpy-eq + ( ( ap ( ฮป p โ†’ htpy-eq - ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p)) - ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h))) - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) โˆ™h - {!!} + ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h + preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c g h) + ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h)) โˆ™ + ( inv [i]) โˆ™ + ( ap htpy-eq + ( coh-comp-hom-sequential-diagram + ( eq-htpy-sequential-diagram B C f g H) + ( h))) โˆ™ + ( htpy-eq-concat _ _) โˆ™ + ( ap-binary + ( _โˆ™h_) + ( is-section-eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c f h)) + ( htpy-eq-right-whisker + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-b c) + ( eq-htpy-sequential-diagram B C f g H)) + ( map-sequential-colimit-hom-sequential-diagram up-a b h)))) + where + open import foundation.action-on-identifications-binary-functions + [i] = + htpy-eq-concat + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a c) + ( ap + ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) + ( eq-htpy-sequential-diagram B C f g H))) + ( eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c g h)) โˆ™ + ap + ( htpy-eq + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a c) + ( ap + ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) + ( eq-htpy-sequential-diagram B C f g H))) โˆ™h_) + ( is-section-eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c g h)) ``` ```agda @@ -484,17 +690,69 @@ module _ {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) (h : hom-sequential-diagram B C) {f g : hom-sequential-diagram A B} - (H : htpy-hom-sequential-diagram B f g) where + coh-comp-hom-sequential-diagram' : + (p : f ๏ผ g) โ†’ + ap + ( map-sequential-colimit-hom-sequential-diagram up-a c) + ( ap (comp-hom-sequential-diagram A B C h) p) โˆ™ + eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g) ๏ผ + eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™ + ap + ( map-sequential-colimit-hom-sequential-diagram up-b c h โˆ˜_) + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( p)) + coh-comp-hom-sequential-diagram' refl = inv right-unit + preserves-left-whisker-htpy-hom-sequential-diagram : + (H : htpy-hom-sequential-diagram B f g) โ†’ ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c ( left-whisker-concat-htpy-hom-sequential-diagram h H)) โˆ™h ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g)) ~ ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™h ( map-sequential-colimit-hom-sequential-diagram up-b c h ยทl htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H)) - preserves-left-whisker-htpy-hom-sequential-diagram = {!!} + preserves-left-whisker-htpy-hom-sequential-diagram H = + htpy-eq + ( ap-binary + ( ฮป p q โ†’ + htpy-eq + ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h + q) + ( eq-htpy-left-whisker-htpy-hom-sequential-diagram h H) + ( inv + ( is-section-eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c h g))) โˆ™ + inv + ( htpy-eq-concat + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a c) + ( ap + ( comp-hom-sequential-diagram A B C h) + ( eq-htpy-sequential-diagram A B f g H))) + ( eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c h g))) โˆ™ + ap htpy-eq + ( coh-comp-hom-sequential-diagram' + ( eq-htpy-sequential-diagram A B f g H)) โˆ™ + htpy-eq-concat _ _ โˆ™ + ap-binary _โˆ™h_ + ( is-section-eq-htpy + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c h f)) + ( htpy-eq-left-whisker + ( map-sequential-colimit-hom-sequential-diagram up-b c h) + ( ap + ( map-sequential-colimit-hom-sequential-diagram up-a b) + ( eq-htpy-sequential-diagram A B f g H)))) + where + open import foundation.action-on-identifications-binary-functions ``` ## Action on homotopies of morphisms of sequential diagrams preserves concatenation @@ -538,6 +796,44 @@ module _ ( eq-htpy-sequential-diagram A B g h K)))) ``` +## Action on homotopies of morphisms of sequential diagrams preserves associativity + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} + (up-a : universal-property-sequential-colimit a) + {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} + (up-b : universal-property-sequential-colimit b) + {C : sequential-diagram l5} {Z : UU l6} {c : cocone-sequential-diagram C Z} + (up-c : universal-property-sequential-colimit c) + {D : sequential-diagram l7} {V : UU l8} (d : cocone-sequential-diagram D V) + (f : hom-sequential-diagram A B) (g : hom-sequential-diagram B C) + (h : hom-sequential-diagram C D) + where + + coh-assoc-comp-hom-sequential-diagram : + {!!} + coh-assoc-comp-hom-sequential-diagram = {!!} + + preserves-assoc-comp-hom-sequential-diagram : + ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a d + ( assoc-comp-hom-sequential-diagram f g h)) โˆ™h + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-c d h + ( comp-hom-sequential-diagram A B C g f)) โˆ™h + ( map-sequential-colimit-hom-sequential-diagram up-c d h ยทl + preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-a up-b c g f)) ~ + ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b d + ( comp-hom-sequential-diagram B C D h g) + ( f)) โˆ™h + ( preserves-comp-map-sequential-colimit-hom-sequential-diagram + up-b up-c d h g ยทr + map-sequential-colimit-hom-sequential-diagram up-a b f)) + preserves-assoc-comp-hom-sequential-diagram = + {!!} +``` + -- ```agda -- nat-lemma : -- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} diff --git a/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md index a094834153..94686c5aed 100644 --- a/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md @@ -274,3 +274,54 @@ module _ eq-htpy-sequential-diagram f f' = map-inv-equiv (extensionality-hom-sequential-diagram f f') ``` + +### Composition of morphisms of sequential diagrams is associative + +```agda +module _ + {l1 l2 l3 l4 : Level} + {A : sequential-diagram l1} {B : sequential-diagram l2} + {C : sequential-diagram l3} {D : sequential-diagram l4} + (f : hom-sequential-diagram A B) (g : hom-sequential-diagram B C) + (h : hom-sequential-diagram C D) + where + + assoc-comp-hom-sequential-diagram : + htpy-hom-sequential-diagram D + ( comp-hom-sequential-diagram A B D + ( comp-hom-sequential-diagram B C D h g) + ( f)) + ( comp-hom-sequential-diagram A C D h + ( comp-hom-sequential-diagram A B C g f)) + pr1 assoc-comp-hom-sequential-diagram n = refl-htpy + pr2 assoc-comp-hom-sequential-diagram n = + right-unit-htpy โˆ™h + assoc-htpy + ( naturality-map-hom-sequential-diagram D h n ยทr + ( map-hom-sequential-diagram C g n โˆ˜ + map-hom-sequential-diagram B f n)) + ( map-hom-sequential-diagram D h (succ-โ„• n) ยทl + naturality-map-hom-sequential-diagram C g n ยทr + map-hom-sequential-diagram B f n) + ( ( map-hom-sequential-diagram D h (succ-โ„• n) โˆ˜ + map-hom-sequential-diagram C g (succ-โ„• n)) ยทl + naturality-map-hom-sequential-diagram B f n) โˆ™h + left-whisker-concat-htpy + ( naturality-map-hom-sequential-diagram D h n ยทr + ( map-hom-sequential-diagram C g n โˆ˜ map-hom-sequential-diagram B f n)) + ( left-whisker-concat-htpy + ( map-hom-sequential-diagram D h (succ-โ„• n) ยทl + naturality-map-hom-sequential-diagram C g n ยทr + map-hom-sequential-diagram B f n) + ( inv-preserves-comp-left-whisker-comp + ( map-hom-sequential-diagram D h (succ-โ„• n)) + ( map-hom-sequential-diagram C g (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n)) โˆ™h + inv-htpy + ( distributive-left-whisker-comp-concat + ( map-hom-sequential-diagram D h (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram C g n ยทr + map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram C g (succ-โ„• n) ยทl + naturality-map-hom-sequential-diagram B f n))) +``` From d5299f5975879802a749989554b0b2db94324885 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Mon, 24 Feb 2025 18:02:42 +0100 Subject: [PATCH 23/33] Move stuff around, new strategy --- ...cocones-under-sequential-diagrams.lagda.md | 32 + .../functoriality-stuff.lagda.md | 1712 ++++------------- .../old-stuff.lagda.md | 1400 ++++++++++++++ 3 files changed, 1764 insertions(+), 1380 deletions(-) create mode 100644 src/synthetic-homotopy-theory/old-stuff.lagda.md diff --git a/src/synthetic-homotopy-theory/dependent-cocones-under-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/dependent-cocones-under-sequential-diagrams.lagda.md index debb9262d7..95280a4e84 100644 --- a/src/synthetic-homotopy-theory/dependent-cocones-under-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/dependent-cocones-under-sequential-diagrams.lagda.md @@ -1,6 +1,7 @@ # Dependent cocones under sequential diagrams ```agda +{-# OPTIONS --allow-unsolved-metas #-} module synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams where ``` @@ -158,6 +159,37 @@ module _ coherence-htpy-htpy-dependent-cocone-sequential-diagram = pr2 H ``` +### Inversion of homotopies of dependent cocones under sequential diagrams + +```agda +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} (P : X โ†’ UU l3) + {d d' : dependent-cocone-sequential-diagram c P} + (H : htpy-dependent-cocone-sequential-diagram P d d') + where + + inv-htpy-dependent-cocone-sequential-diagram : + htpy-dependent-cocone-sequential-diagram P d' d + inv-htpy-dependent-cocone-sequential-diagram = ? +``` + +### Concatenation of homotopies of dependent cocones under sequential diagrams + +```agda +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} (P : X โ†’ UU l3) + {d d' d'' : dependent-cocone-sequential-diagram c P} + (H : htpy-dependent-cocone-sequential-diagram P d d') + (K : htpy-dependent-cocone-sequential-diagram P d' d'') + where + + concat-htpy-dependent-cocone-sequential-diagram : + htpy-dependent-cocone-sequential-diagram P d d'' + concat-htpy-dependent-cocone-sequential-diagram = {!!} +``` + ### Obtaining dependent cocones under sequential diagrams by postcomposing cocones under sequential diagrams with dependent maps Given a cocone `c` with vertex `X`, and a dependent map `h : (x : X) โ†’ P x`, we diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 2fa9750471..56975dc874 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -39,6 +39,7 @@ open import foundation.whiskering-homotopies-composition -- open import foundation.whiskering-homotopies-concatenation open import synthetic-homotopy-theory.cocones-under-sequential-diagrams +open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams open import synthetic-homotopy-theory.dependent-sequential-diagrams open import synthetic-homotopy-theory.dependent-universal-property-sequential-colimits open import synthetic-homotopy-theory.descent-data-sequential-colimits @@ -47,1405 +48,63 @@ open import synthetic-homotopy-theory.morphisms-sequential-diagrams open import synthetic-homotopy-theory.sequential-diagrams open import synthetic-homotopy-theory.stuff-over open import synthetic-homotopy-theory.universal-property-sequential-colimits + +open import foundation.binary-homotopies +open import foundation.commuting-squares-of-homotopies +open import foundation.fundamental-theorem-of-identity-types +open import foundation.homotopy-induction +open import foundation.structure-identity-principle +open import foundation.torsorial-type-families ``` ## Theorem -New idea: instead of bruteforcing this direction, show that a square induces -coherent cubes, and show that it's an equivalence because it fits in a diagram. - -## Commuting cubes induce commuting squares in the colimit - -```agda -open import foundation.commuting-cubes-of-maps -module _ - {l1 l2 l3 l4 l5 l6 l7 l8 : Level} - {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} - (up-a : universal-property-sequential-colimit a) - {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} - (up-b : universal-property-sequential-colimit b) - {P : sequential-diagram l5} {V : UU l6} {p : cocone-sequential-diagram P V} - (up-p : universal-property-sequential-colimit p) - {Q : sequential-diagram l7} {W : UU l8} {q : cocone-sequential-diagram Q W} - (up-q : universal-property-sequential-colimit q) - (f' : hom-sequential-diagram P Q) - (f : hom-sequential-diagram A B) - (g : hom-sequential-diagram P A) - (h : hom-sequential-diagram Q B) - where - - square-cube-sequential-colimit : - (faces : - (n : โ„•) โ†’ - coherence-square-maps - ( map-hom-sequential-diagram Q f' n) - ( map-hom-sequential-diagram A g n) - ( map-hom-sequential-diagram B h n) - ( map-hom-sequential-diagram B f n)) โ†’ - (cubes : - (n : โ„•) โ†’ - coherence-cube-maps - ( map-hom-sequential-diagram B f n) - ( map-sequential-diagram A n) - ( map-sequential-diagram B n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-hom-sequential-diagram Q f' n) - ( map-sequential-diagram P n) - ( map-sequential-diagram Q n) - ( map-hom-sequential-diagram Q f' (succ-โ„• n)) - ( map-hom-sequential-diagram A g n) - ( map-hom-sequential-diagram B h n) - ( map-hom-sequential-diagram A g (succ-โ„• n)) - ( map-hom-sequential-diagram B h (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram Q f' n) - ( faces n) - ( naturality-map-hom-sequential-diagram A g n) - ( naturality-map-hom-sequential-diagram B h n) - ( faces (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n)) โ†’ - coherence-square-maps - ( map-sequential-colimit-hom-sequential-diagram up-p q f') - ( map-sequential-colimit-hom-sequential-diagram up-p a g) - ( map-sequential-colimit-hom-sequential-diagram up-q b h) - ( map-sequential-colimit-hom-sequential-diagram up-a b f) - square-cube-sequential-colimit faces cubes = - inv-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-a b - f g) โˆ™h - induced-htpy โˆ™h - preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-q b h f' - where - comp1 comp2 : hom-sequential-diagram P B - comp1 = comp-hom-sequential-diagram P A B f g - comp2 = comp-hom-sequential-diagram P Q B h f' - induced-hom-htpy : htpy-hom-sequential-diagram B comp1 comp2 - pr1 induced-hom-htpy = faces - pr2 induced-hom-htpy n = - assoc-htpy _ _ _ โˆ™h - inv-htpy (cubes n) โˆ™h - assoc-htpy _ _ _ - induced-htpy : - map-sequential-colimit-hom-sequential-diagram up-p b comp1 ~ - map-sequential-colimit-hom-sequential-diagram up-p b comp2 - induced-htpy = - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-p b - ( induced-hom-htpy) -``` - -## Concatenation of homotopies of morphisms of sequential diagrams - -```agda -open import foundation.whiskering-homotopies-concatenation +-- ```agda module _ {l1 l2 : Level} - {A : sequential-diagram l1} {B : sequential-diagram l2} - (f g h : hom-sequential-diagram A B) - where - - module _ - (H : htpy-hom-sequential-diagram B f g) - (K : htpy-hom-sequential-diagram B g h) - where - - concat-htpy-hom-sequential-diagram : htpy-hom-sequential-diagram B f h - pr1 concat-htpy-hom-sequential-diagram n = - htpy-htpy-hom-sequential-diagram _ H n โˆ™h - htpy-htpy-hom-sequential-diagram _ K n - pr2 concat-htpy-hom-sequential-diagram n = - inv-htpy-assoc-htpy _ _ _ โˆ™h - right-whisker-concat-htpy - ( coherence-htpy-htpy-hom-sequential-diagram B H n) - ( htpy-htpy-hom-sequential-diagram _ K (succ-โ„• n) ยทr map-sequential-diagram A n) โˆ™h - assoc-htpy _ _ _ โˆ™h - left-whisker-concat-htpy - ( map-sequential-diagram B n ยทl htpy-htpy-hom-sequential-diagram _ H n) - ( coherence-htpy-htpy-hom-sequential-diagram B K n) โˆ™h - inv-htpy-assoc-htpy _ _ _ โˆ™h - right-whisker-concat-htpy - ( inv-htpy - ( distributive-left-whisker-comp-concat - ( map-sequential-diagram B n) - ( htpy-htpy-hom-sequential-diagram _ H n) - ( htpy-htpy-hom-sequential-diagram _ K n))) - ( naturality-map-hom-sequential-diagram B h n) - - htpy-eq-concat-hom-sequential-diagram : - (p : f ๏ผ g) (q : g ๏ผ h) โ†’ - htpy-eq-sequential-diagram A B f h (p โˆ™ q) ๏ผ - concat-htpy-hom-sequential-diagram - ( htpy-eq-sequential-diagram A B f g p) - ( htpy-eq-sequential-diagram A B g h q) - htpy-eq-concat-hom-sequential-diagram refl refl = - eq-pair-eq-fiber - ( inv - ( eq-binary-htpy _ _ - ฮป n a โ†’ - right-unit โˆ™ right-unit โˆ™ - ap - ( (inv (assoc _ refl refl) โˆ™ ap (_โˆ™ refl) right-unit) โˆ™ refl โˆ™_) - ( ap-id right-unit) โˆ™ - ap - ( _โˆ™ right-unit) - ( right-unit โˆ™ - ap - ( ฮป p โ†’ inv p โˆ™ ap (_โˆ™ refl) right-unit) - ( middle-unit-law-assoc - ( naturality-map-hom-sequential-diagram B f n a) - ( refl)) โˆ™ - left-inv (ap (_โˆ™ refl) right-unit)))) - where - open import foundation.binary-homotopies - open import foundation.path-algebra - - eq-htpy-concat-hom-sequential-diagram : - (H : htpy-hom-sequential-diagram B f g) - (K : htpy-hom-sequential-diagram B g h) โ†’ - eq-htpy-sequential-diagram A B f h - ( concat-htpy-hom-sequential-diagram H K) ๏ผ - eq-htpy-sequential-diagram A B f g H โˆ™ - eq-htpy-sequential-diagram A B g h K - eq-htpy-concat-hom-sequential-diagram H K = - ap - ( eq-htpy-sequential-diagram A B f h) - ( inv - ( htpy-eq-concat-hom-sequential-diagram - ( eq-htpy-sequential-diagram A B f g H) - ( eq-htpy-sequential-diagram A B g h K) โˆ™ - ap-binary concat-htpy-hom-sequential-diagram - ( is-section-map-inv-equiv - ( extensionality-hom-sequential-diagram A B f g) - ( H)) - ( is-section-map-inv-equiv - ( extensionality-hom-sequential-diagram A B g h) - ( K)))) โˆ™ - is-retraction-map-inv-equiv - ( extensionality-hom-sequential-diagram A B f h) - ( eq-htpy-sequential-diagram A B f g H โˆ™ - eq-htpy-sequential-diagram A B g h K) - where open import foundation.action-on-identifications-binary-functions -``` - -## Vertical pasting of cubes of stuff - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {B : sequential-diagram l2} - {A' : sequential-diagram l3} {B' : sequential-diagram l4} - {A'' : sequential-diagram l5} {B'' : sequential-diagram l6} - (top : hom-sequential-diagram A'' B'') - (top-left : hom-sequential-diagram A'' A') - (top-right : hom-sequential-diagram B'' B') - (mid : hom-sequential-diagram A' B') - (bottom-left : hom-sequential-diagram A' A) - (bottom-right : hom-sequential-diagram B' B) - (bottom : hom-sequential-diagram A B) - (H : - htpy-hom-sequential-diagram B - ( comp-hom-sequential-diagram A' A B bottom bottom-left) - ( comp-hom-sequential-diagram A' B' B bottom-right mid)) - (K : - htpy-hom-sequential-diagram B' - ( comp-hom-sequential-diagram A'' A' B' mid top-left) - ( comp-hom-sequential-diagram A'' B'' B' top-right top)) - -- (faces-top : - -- (n : โ„•) โ†’ - -- coherence-square-maps - -- ( map-hom-sequential-diagram B'' top n) - -- ( map-hom-sequential-diagram A' top-left n) - -- ( map-hom-sequential-diagram B' top-right n) - -- ( map-hom-sequential-diagram B' mid n)) - -- (faces-bottom : - -- (n : โ„•) โ†’ {!!}) - -- (cubes-top : - -- (n : โ„•) โ†’ {!!}) - -- (cubes-bottom : - -- (n : โ„•) โ†’ {!!}) - -- -- (cubes : - -- -- (n : โ„•) โ†’ - -- -- coherence-cube-maps - -- -- ( map-hom-sequential-diagram B f n) - -- -- ( map-sequential-diagram A n) - -- -- ( map-sequential-diagram B n) - -- -- ( map-hom-sequential-diagram B f (succ-โ„• n)) - -- -- ( map-hom-sequential-diagram Q f' n) - -- -- ( map-sequential-diagram P n) - -- -- ( map-sequential-diagram Q n) - -- -- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) - -- -- ( map-hom-sequential-diagram A g n) - -- -- ( map-hom-sequential-diagram B h n) - -- -- ( map-hom-sequential-diagram A g (succ-โ„• n)) - -- -- ( map-hom-sequential-diagram B h (succ-โ„• n)) - -- -- ( naturality-map-hom-sequential-diagram Q f' n) - -- -- ( faces n) - -- -- ( naturality-map-hom-sequential-diagram A g n) - -- -- ( naturality-map-hom-sequential-diagram B h n) - -- -- ( faces (succ-โ„• n)) - -- -- ( naturality-map-hom-sequential-diagram B f n)) โ†’ - where - - pasting-vertical-coherence-square-hom-sequential-diagram : - htpy-hom-sequential-diagram B - ( comp-hom-sequential-diagram A'' A B bottom - ( comp-hom-sequential-diagram A'' A' A bottom-left top-left)) - ( comp-hom-sequential-diagram A'' B'' B - ( comp-hom-sequential-diagram B'' B' B bottom-right top-right) - ( top)) - pasting-vertical-coherence-square-hom-sequential-diagram = {!!} -``` - -## Whiskering of homotopies of morphisms of sequential diagrams - -### Right whiskering - -```agda -module _ - {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} - where - - htpy-eq-right-whisker : - {f g : B โ†’ C} (p : f ๏ผ g) (h : A โ†’ B) โ†’ - htpy-eq (ap (_โˆ˜ h) p) ๏ผ htpy-eq p ยทr h - htpy-eq-right-whisker refl h = refl - - eq-htpy-right-whisker : - {f g : B โ†’ C} (H : f ~ g) (h : A โ†’ B) โ†’ - eq-htpy (H ยทr h) ๏ผ ap (_โˆ˜ h) (eq-htpy H) - eq-htpy-right-whisker H h = - ap eq-htpy - ( inv - ( htpy-eq-right-whisker (eq-htpy H) h โˆ™ - ap (_ยทr h) (is-section-eq-htpy H))) โˆ™ - is-retraction-eq-htpy (ap (_โˆ˜ h) (eq-htpy H)) - - htpy-eq-left-whisker : - {f g : A โ†’ B} (h : B โ†’ C) (p : f ๏ผ g) โ†’ - htpy-eq (ap (h โˆ˜_) p) ๏ผ h ยทl htpy-eq p - htpy-eq-left-whisker h refl = refl - - -- alternatively, using homotopy induction - eq-htpy-left-whisker : - {f g : A โ†’ B} (h : B โ†’ C) (H : f ~ g) โ†’ - eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H) - eq-htpy-left-whisker {f} h = - ind-htpy f - ( ฮป g H โ†’ - eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H)) - ( eq-htpy-refl-htpy (h โˆ˜ f) โˆ™ - inv (ap (ap (h โˆ˜_)) (eq-htpy-refl-htpy f))) - where open import foundation.homotopy-induction -``` - -```agda -module _ - {l1 l2 l3 : Level} - {A : sequential-diagram l1} {B : sequential-diagram l2} - {X : sequential-diagram l3} - {f g : hom-sequential-diagram A B} + {A : sequential-diagram l1} + (P : descent-data-sequential-colimit A l2) where - open import foundation.whiskering-identifications-concatenation - - module _ - (H : htpy-hom-sequential-diagram B f g) - (h : hom-sequential-diagram X A) - where - right-whisker-concat-htpy-hom-sequential-diagram : - htpy-hom-sequential-diagram B - ( comp-hom-sequential-diagram X A B f h) - ( comp-hom-sequential-diagram X A B g h) - pr1 right-whisker-concat-htpy-hom-sequential-diagram n = - htpy-htpy-hom-sequential-diagram _ H n ยทr map-hom-sequential-diagram A h n - pr2 right-whisker-concat-htpy-hom-sequential-diagram n x = - assoc _ _ _ โˆ™ - left-whisker-concat - ( naturality-map-hom-sequential-diagram B f n (map-hom-sequential-diagram A h n x)) - ( inv-nat-htpy - ( htpy-htpy-hom-sequential-diagram B H (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ - inv (assoc _ _ _) โˆ™ - right-whisker-concat - ( coherence-htpy-htpy-hom-sequential-diagram B H n (map-hom-sequential-diagram A h n x)) - ( ap - ( map-hom-sequential-diagram B g (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ - assoc _ _ _ + section-descent-data-sequential-colimit : UU (l1 โŠ” l2) + section-descent-data-sequential-colimit = + section-dependent-sequential-diagram A + ( dependent-sequential-diagram-descent-data P) - htpy-eq-right-whisker-htpy-hom-sequential-diagram : - (p : f ๏ผ g) (h : hom-sequential-diagram X A) โ†’ - htpy-eq-sequential-diagram X B - ( comp-hom-sequential-diagram X A B f h) - ( comp-hom-sequential-diagram X A B g h) - ( ap (ฮป f โ†’ comp-hom-sequential-diagram X A B f h) p) ๏ผ - right-whisker-concat-htpy-hom-sequential-diagram - ( htpy-eq-sequential-diagram A B f g p) - ( h) - htpy-eq-right-whisker-htpy-hom-sequential-diagram refl h = - eq-pair-eq-fiber - ( eq-binary-htpy _ _ - ฮป n x โ†’ - inv - ( right-unit โˆ™ - ap-binary - ( ฮป p q โ†’ - p โˆ™ - left-whisker-concat _ q โˆ™ - inv (assoc _ refl _) โˆ™ - right-whisker-concat _ _) - ( right-unit-law-assoc _ _) - ( inv-nat-refl-htpy _ _) โˆ™ - ap - ( ฮป p โ†’ - right-unit โˆ™ - left-whisker-concat _ (inv right-unit) โˆ™ - left-whisker-concat _ right-unit โˆ™ - inv p โˆ™ - right-whisker-concat right-unit _) - ( middle-unit-law-assoc _ _) โˆ™ - is-section-inv-concat' - ( right-whisker-concat right-unit _) - ( right-unit โˆ™ - left-whisker-concat _ (inv right-unit) โˆ™ - left-whisker-concat _ right-unit) โˆ™ - ap - ( ฮป p โ†’ right-unit โˆ™ p โˆ™ left-whisker-concat _ right-unit) - ( ap-inv (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) โˆ™ - is-section-inv-concat' - ( ap (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) - ( right-unit))) - where - open import foundation.binary-homotopies - open import foundation.path-algebra - open import foundation.action-on-identifications-binary-functions - - eq-htpy-right-whisker-htpy-hom-sequential-diagram : - (H : htpy-hom-sequential-diagram B f g) (h : hom-sequential-diagram X A) โ†’ - eq-htpy-sequential-diagram X B - ( comp-hom-sequential-diagram X A B f h) - ( comp-hom-sequential-diagram X A B g h) - ( right-whisker-concat-htpy-hom-sequential-diagram H h) ๏ผ - ap - ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) - ( eq-htpy-sequential-diagram A B f g H) - eq-htpy-right-whisker-htpy-hom-sequential-diagram H h = - ap - ( eq-htpy-sequential-diagram X B _ _) - ( inv - ( htpy-eq-right-whisker-htpy-hom-sequential-diagram - ( eq-htpy-sequential-diagram A B f g H) - ( h) โˆ™ - ap - ( ฮป H โ†’ right-whisker-concat-htpy-hom-sequential-diagram H h) - ( is-section-map-inv-equiv - ( extensionality-hom-sequential-diagram A B f g) - ( H)))) โˆ™ - is-retraction-map-inv-equiv - ( extensionality-hom-sequential-diagram X B - ( comp-hom-sequential-diagram X A B f h) - ( comp-hom-sequential-diagram X A B g h)) - ( ap - ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) - ( eq-htpy-sequential-diagram A B f g H)) -``` - -### Left whiskering - -```agda module _ {l1 l2 l3 : Level} - {A : sequential-diagram l1} {B : sequential-diagram l2} - {X : sequential-diagram l3} - {f g : hom-sequential-diagram A B} - where - open import foundation.whiskering-identifications-concatenation - - module _ - (h : hom-sequential-diagram B X) - (H : htpy-hom-sequential-diagram B f g) - where - - left-whisker-concat-htpy-hom-sequential-diagram : - htpy-hom-sequential-diagram X - ( comp-hom-sequential-diagram A B X h f) - ( comp-hom-sequential-diagram A B X h g) - pr1 left-whisker-concat-htpy-hom-sequential-diagram n = - map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n - pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = - assoc _ _ _ โˆ™ - left-whisker-concat - ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) - ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ - ap - ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) - ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ - ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ - inv (assoc _ _ _) โˆ™ - right-whisker-concat - ( left-whisker-concat - ( naturality-map-hom-sequential-diagram X h n - ( map-hom-sequential-diagram B f n a)) - ( inv - ( ap-comp - ( map-hom-sequential-diagram X h (succ-โ„• n)) - ( map-sequential-diagram B n) - ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ - nat-htpy - ( naturality-map-hom-sequential-diagram X h n) - ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ - right-whisker-concat - ( ap-comp - ( map-sequential-diagram X n) - ( map-hom-sequential-diagram X h n) - ( htpy-htpy-hom-sequential-diagram B H n a)) - ( naturality-map-hom-sequential-diagram X h n - ( map-hom-sequential-diagram B g n a))) - ( ap - ( map-hom-sequential-diagram X h (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ - assoc _ _ _ - - htpy-eq-left-whisker-htpy-hom-sequential-diagram : - (h : hom-sequential-diagram B X) (p : f ๏ผ g) โ†’ - htpy-eq-sequential-diagram A X - ( comp-hom-sequential-diagram A B X h f) - ( comp-hom-sequential-diagram A B X h g) - ( ap (comp-hom-sequential-diagram A B X h) p) ๏ผ - left-whisker-concat-htpy-hom-sequential-diagram h - ( htpy-eq-sequential-diagram A B f g p) - htpy-eq-left-whisker-htpy-hom-sequential-diagram h refl = - eq-pair-eq-fiber - ( eq-binary-htpy _ _ - ( ฮป n a โ†’ - inv - ( right-unit โˆ™ - ( ap-binary - ( ฮป p q โ†’ - p โˆ™ - left-whisker-concat - ( naturality-map-hom-sequential-diagram X h n - ( map-hom-sequential-diagram B f n a)) - ( inv (ap-concat _ _ refl) โˆ™ - ap - ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) - ( right-unit) โˆ™ - refl) โˆ™ - q โˆ™ - right-whisker-concat (right-unit โˆ™ refl) _) - ( right-unit-law-assoc _ (ap _ _) โˆ™ - left-whisker-concat right-unit (ap-inv _ right-unit)) - ( ap inv (middle-unit-law-assoc _ _))) โˆ™ - ( ap-binary - ( ฮป p q โ†’ - right-unit โˆ™ - inv (left-whisker-concat _ right-unit) โˆ™ - left-whisker-concat _ p โˆ™ - inv (right-whisker-concat right-unit _) โˆ™ - right-whisker-concat q _) - ( right-unit โˆ™ - right-whisker-concat - ( ap inv (compute-right-refl-ap-concat _ _) โˆ™ - distributive-inv-concat - ( ap (ap _) right-unit) - ( inv right-unit) โˆ™ - right-whisker-concat (inv-inv right-unit) _) - ( ap (ap _) right-unit) โˆ™ - is-section-inv-concat' (ap (ap _) right-unit) right-unit) - ( right-unit)) โˆ™ - is-section-inv-concat' - ( right-whisker-concat right-unit _) - ( right-unit โˆ™ inv _ โˆ™ _) โˆ™ - is-section-inv-concat' - ( left-whisker-concat _ right-unit) - ( right-unit)))) - where - open import foundation.action-on-identifications-binary-functions - open import foundation.binary-homotopies - open import foundation.path-algebra - - eq-htpy-left-whisker-htpy-hom-sequential-diagram : - (h : hom-sequential-diagram B X) (H : htpy-hom-sequential-diagram B f g) โ†’ - eq-htpy-sequential-diagram A X - ( comp-hom-sequential-diagram A B X h f) - ( comp-hom-sequential-diagram A B X h g) - ( left-whisker-concat-htpy-hom-sequential-diagram h H) ๏ผ - ap - ( comp-hom-sequential-diagram A B X h) - ( eq-htpy-sequential-diagram A B f g H) - eq-htpy-left-whisker-htpy-hom-sequential-diagram h H = - ap - ( eq-htpy-sequential-diagram A X _ _) - ( inv - ( htpy-eq-left-whisker-htpy-hom-sequential-diagram h - ( eq-htpy-sequential-diagram A B f g H) โˆ™ - ap - ( left-whisker-concat-htpy-hom-sequential-diagram h) - ( is-section-map-inv-equiv - ( extensionality-hom-sequential-diagram A B f g) - ( H)))) โˆ™ - is-retraction-map-inv-equiv - ( extensionality-hom-sequential-diagram A X - ( comp-hom-sequential-diagram A B X h f) - ( comp-hom-sequential-diagram A B X h g)) - ( ap - ( comp-hom-sequential-diagram A B X h) - ( eq-htpy-sequential-diagram A B f g H)) -``` - -## Action on homotopies of morphisms of sequential diagrams preserves whiskering - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} - (up-a : universal-property-sequential-colimit a) - {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} - (up-b : universal-property-sequential-colimit b) - {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) - {f g : hom-sequential-diagram B C} - where - - coh-comp-hom-sequential-diagram : - (p : f ๏ผ g) (h : hom-sequential-diagram A B) โ†’ - ap - ( map-sequential-colimit-hom-sequential-diagram up-a c) - ( ap (ฮป f โ†’ comp-hom-sequential-diagram A B C f h) p) โˆ™ - eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) ๏ผ - eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™ - ap - ( _โˆ˜ map-sequential-colimit-hom-sequential-diagram up-a b h) - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-b c) - ( p)) - coh-comp-hom-sequential-diagram refl h = inv right-unit - - preserves-right-whisker-htpy-hom-sequential-diagram : - (H : htpy-hom-sequential-diagram C f g) - (h : hom-sequential-diagram A B) โ†’ - ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c - ( right-whisker-concat-htpy-hom-sequential-diagram H h)) โˆ™h - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h)) ~ - ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™h - ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-b c H ยทr - map-sequential-colimit-hom-sequential-diagram up-a b h)) - preserves-right-whisker-htpy-hom-sequential-diagram H h = - htpy-eq - ( ( ap - ( ฮป p โ†’ - htpy-eq - ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h - preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c g h) - ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h)) โˆ™ - ( inv [i]) โˆ™ - ( ap htpy-eq - ( coh-comp-hom-sequential-diagram - ( eq-htpy-sequential-diagram B C f g H) - ( h))) โˆ™ - ( htpy-eq-concat _ _) โˆ™ - ( ap-binary - ( _โˆ™h_) - ( is-section-eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c f h)) - ( htpy-eq-right-whisker - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-b c) - ( eq-htpy-sequential-diagram B C f g H)) - ( map-sequential-colimit-hom-sequential-diagram up-a b h)))) - where - open import foundation.action-on-identifications-binary-functions - [i] = - htpy-eq-concat - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a c) - ( ap - ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) - ( eq-htpy-sequential-diagram B C f g H))) - ( eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c g h)) โˆ™ - ap - ( htpy-eq - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a c) - ( ap - ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) - ( eq-htpy-sequential-diagram B C f g H))) โˆ™h_) - ( is-section-eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c g h)) -``` - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} - (up-a : universal-property-sequential-colimit a) - {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} - (up-b : universal-property-sequential-colimit b) - {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) - (h : hom-sequential-diagram B C) - {f g : hom-sequential-diagram A B} - where - - coh-comp-hom-sequential-diagram' : - (p : f ๏ผ g) โ†’ - ap - ( map-sequential-colimit-hom-sequential-diagram up-a c) - ( ap (comp-hom-sequential-diagram A B C h) p) โˆ™ - eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g) ๏ผ - eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™ - ap - ( map-sequential-colimit-hom-sequential-diagram up-b c h โˆ˜_) - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( p)) - coh-comp-hom-sequential-diagram' refl = inv right-unit - - preserves-left-whisker-htpy-hom-sequential-diagram : - (H : htpy-hom-sequential-diagram B f g) โ†’ - ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c - ( left-whisker-concat-htpy-hom-sequential-diagram h H)) โˆ™h - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g)) ~ - ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™h - ( map-sequential-colimit-hom-sequential-diagram up-b c h ยทl - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H)) - preserves-left-whisker-htpy-hom-sequential-diagram H = - htpy-eq - ( ap-binary - ( ฮป p q โ†’ - htpy-eq - ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h - q) - ( eq-htpy-left-whisker-htpy-hom-sequential-diagram h H) - ( inv - ( is-section-eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c h g))) โˆ™ - inv - ( htpy-eq-concat - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a c) - ( ap - ( comp-hom-sequential-diagram A B C h) - ( eq-htpy-sequential-diagram A B f g H))) - ( eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c h g))) โˆ™ - ap htpy-eq - ( coh-comp-hom-sequential-diagram' - ( eq-htpy-sequential-diagram A B f g H)) โˆ™ - htpy-eq-concat _ _ โˆ™ - ap-binary _โˆ™h_ - ( is-section-eq-htpy - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c h f)) - ( htpy-eq-left-whisker - ( map-sequential-colimit-hom-sequential-diagram up-b c h) - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( eq-htpy-sequential-diagram A B f g H)))) - where - open import foundation.action-on-identifications-binary-functions -``` - -## Action on homotopies of morphisms of sequential diagrams preserves concatenation - -```agda -module _ - {l1 l2 l3 l4 : Level} - {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} - (up-a : universal-property-sequential-colimit a) - {B : sequential-diagram l3} {Y : UU l4} (b : cocone-sequential-diagram B Y) - {f g h : hom-sequential-diagram A B} - (H : htpy-hom-sequential-diagram B f g) - (K : htpy-hom-sequential-diagram B g h) + {A : sequential-diagram l1} + {X : UU l2} {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + (P : X โ†’ UU l3) where - preserves-concat-htpy-hom-sequential-diagram : - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b - ( concat-htpy-hom-sequential-diagram f g h H K) ~ - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H โˆ™h - htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b K - preserves-concat-htpy-hom-sequential-diagram = - htpy-eq - ( ( ap - ( ฮป p โ†’ - htpy-eq - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( p))) - ( eq-htpy-concat-hom-sequential-diagram f g h H K)) โˆ™ - ( ap htpy-eq - ( ap-concat - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( eq-htpy-sequential-diagram A B f g H) - ( eq-htpy-sequential-diagram A B g h K))) โˆ™ - ( htpy-eq-concat - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( eq-htpy-sequential-diagram A B f g H)) - ( ap - ( map-sequential-colimit-hom-sequential-diagram up-a b) - ( eq-htpy-sequential-diagram A B g h K)))) -``` - -## Action on homotopies of morphisms of sequential diagrams preserves associativity + sect-family-sect-dd-sequential-colimit : + section-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c P) โ†’ + ((x : X) โ†’ P x) + sect-family-sect-dd-sequential-colimit s = + map-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( s) -```agda module _ - {l1 l2 l3 l4 l5 l6 l7 l8 : Level} - {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} - (up-a : universal-property-sequential-colimit a) - {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} - (up-b : universal-property-sequential-colimit b) - {C : sequential-diagram l5} {Z : UU l6} {c : cocone-sequential-diagram C Z} - (up-c : universal-property-sequential-colimit c) - {D : sequential-diagram l7} {V : UU l8} (d : cocone-sequential-diagram D V) - (f : hom-sequential-diagram A B) (g : hom-sequential-diagram B C) - (h : hom-sequential-diagram C D) + {l1 l2 l3 : Level} {A : sequential-diagram l1} {X : UU l2} + (c : cocone-sequential-diagram A X) + (P : X โ†’ UU l3) where - - coh-assoc-comp-hom-sequential-diagram : - {!!} - coh-assoc-comp-hom-sequential-diagram = {!!} - - preserves-assoc-comp-hom-sequential-diagram : - ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a d - ( assoc-comp-hom-sequential-diagram f g h)) โˆ™h - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-c d h - ( comp-hom-sequential-diagram A B C g f)) โˆ™h - ( map-sequential-colimit-hom-sequential-diagram up-c d h ยทl - preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-a up-b c g f)) ~ - ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b d - ( comp-hom-sequential-diagram B C D h g) - ( f)) โˆ™h - ( preserves-comp-map-sequential-colimit-hom-sequential-diagram - up-b up-c d h g ยทr - map-sequential-colimit-hom-sequential-diagram up-a b f)) - preserves-assoc-comp-hom-sequential-diagram = - {!!} + open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams + + section-descent-data-section-family-cocone-sequential-colimit : + ((x : X) โ†’ P x) โ†’ + section-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c P) + section-descent-data-section-family-cocone-sequential-colimit = + dependent-cocone-map-sequential-diagram c P ``` --- ```agda --- nat-lemma : --- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} --- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} --- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) --- {x y : A} {p : x ๏ผ y} --- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ --- coherence-square-maps --- ( tr P p) --- ( h x) --- ( h y) --- ( tr Q q) --- nat-lemma f h {p = p} refl x = --- substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) --- ``` - --- ## - --- ```agda --- open import synthetic-homotopy-theory.families-descent-data-sequential-colimits --- open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams --- open import synthetic-homotopy-theory.total-sequential-diagrams - --- open import foundation.action-on-identifications-functions --- open import foundation.commuting-squares-of-identifications --- open import foundation.functoriality-dependent-pair-types --- open import foundation.equality-dependent-pair-types --- open import foundation.identity-types --- open import synthetic-homotopy-theory.sequential-colimits --- open import synthetic-homotopy-theory.functoriality-sequential-colimits --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} --- {X : UU l2} {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- (P : family-with-descent-data-sequential-colimit c l3) --- {Y : UU l4} --- {c' : --- cocone-sequential-diagram --- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( Y)} --- (up-c' : universal-property-sequential-colimit c') --- where - --- mediating-cocone : --- cocone-sequential-diagram --- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) --- pr1 mediating-cocone n = --- map-ฮฃ --- ( family-cocone-family-with-descent-data-sequential-colimit P) --- ( map-cocone-sequential-diagram c n) --- ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) --- pr2 mediating-cocone n (a , p) = --- eq-pair-ฮฃ --- ( coherence-cocone-sequential-diagram c n a) --- ( inv --- ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) - --- totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) --- totฮน' = --- map-universal-property-sequential-colimit up-c' mediating-cocone --- triangle-pr1โˆž-pr1 : --- pr1-sequential-colimit-total-sequential-diagram --- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( up-c') --- ( c) ~ --- pr1 โˆ˜ totฮน' --- triangle-pr1โˆž-pr1 = --- htpy-htpy-out-of-sequential-colimit up-c' --- ( concat-htpy-cocone-sequential-diagram --- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c --- ( pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) --- ( ( ฮป n โ†’ --- inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , --- ( ฮป n x โ†’ --- ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ --- horizontal-inv-coherence-square-identifications _ --- ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) --- ( coherence-cocone-sequential-diagram c n (pr1 x)) --- _ --- ( ( ap --- ( _โˆ™ ap pr1 --- ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) --- ( ap-comp pr1 --- ( totฮน') --- ( coherence-cocone-sequential-diagram c' n x))) โˆ™ --- ( inv --- ( ap-concat pr1 --- ( ap --- ( totฮน') --- ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ --- ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ --- ( ap-concat pr1 --- ( pr1 --- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) --- n x) --- ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ --- ( ap --- ( ap pr1 --- ( pr1 --- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) --- n x) โˆ™_) --- ( ap-pr1-eq-pair-ฮฃ --- ( coherence-cocone-sequential-diagram c n (pr1 x)) --- ( _))))))) --- ``` - --- ```agda --- module _ --- {l1 l2 : Level} --- {A : sequential-diagram l1} --- (P : descent-data-sequential-colimit A l2) --- where - --- section-descent-data-sequential-colimit : UU (l1 โŠ” l2) --- section-descent-data-sequential-colimit = --- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ --- family-descent-data-sequential-colimit P n a) --- ( ฮป s โ†’ --- (n : โ„•) (a : family-sequential-diagram A n) โ†’ --- map-family-descent-data-sequential-colimit P n a (s n a) ๏ผ --- s (succ-โ„• n) (map-sequential-diagram A n a)) - --- module _ --- {l1 l2 l3 : Level} --- {A : sequential-diagram l1} --- {X : UU l2} {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- (P : X โ†’ UU l3) --- where - --- sect-family-sect-dd-sequential-colimit : --- section-descent-data-sequential-colimit --- ( descent-data-family-cocone-sequential-diagram c P) โ†’ --- ((x : X) โ†’ P x) --- sect-family-sect-dd-sequential-colimit s = --- map-dependent-universal-property-sequential-colimit --- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) --- ( s) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) --- (f : hom-sequential-diagram A B) --- (f' : --- (x : X) โ†’ P x โ†’ --- Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) --- where - --- open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits - --- ฮฃAP : sequential-diagram (l1 โŠ” l5) --- ฮฃAP = --- total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) - --- ฮฃBQ : sequential-diagram (l3 โŠ” l6) --- ฮฃBQ = --- total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) - --- private --- finf : X โ†’ Y --- finf = (map-sequential-colimit-hom-sequential-diagram up-c c' f) - --- totff' : hom-sequential-diagram ฮฃAP ฮฃBQ --- pr1 totff' n = --- map-ฮฃ _ --- ( map-hom-sequential-diagram B f n) --- ( ฮป a โ†’ --- tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) โˆ˜ --- f' (map-cocone-sequential-diagram c n a)) --- pr2 totff' n (a , p) = --- eq-pair-ฮฃ --- ( naturality-map-hom-sequential-diagram B f n a) --- ((pasting-vertical-coherence-square-maps --- ( tr P (coherence-cocone-sequential-diagram c n a)) --- ( f' _) --- ( f' _) --- ( tr Q (ap finf (coherence-cocone-sequential-diagram c n a))) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) --- ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) --- ( ฮป q โ†’ --- substitution-law-tr Q finf (coherence-cocone-sequential-diagram c n a) โˆ™ --- inv (preserves-tr f' (coherence-cocone-sequential-diagram c n a) q)) --- ( ( inv-htpy --- ( ฮป q โ†’ --- ( tr-concat --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( _) --- ( q)) โˆ™ --- ( tr-concat --- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( q))) โˆ™ --- ( substitution-law-tr Q --- ( map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h --- ( ฮป q โ†’ --- ap --- ( ฮป p โ†’ tr Q p q) --- ( inv --- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h --- ( tr-concat --- ( ap finf (coherence-cocone-sequential-diagram c n a)) --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a))))) p) - - --- totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q --- totff'โˆž = --- map-sequential-colimit-hom-sequential-diagram --- ( flattening-lemma-sequential-colimit _ P up-c) --- ( total-cocone-family-cocone-sequential-diagram c' Q) --- ( totff') - --- pr1Aโˆ™ : hom-sequential-diagram ฮฃAP A --- pr1Aโˆ™ = --- pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-cocone c P) --- pr1Bโˆ™ : hom-sequential-diagram ฮฃBQ B --- pr1Bโˆ™ = --- pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-cocone c' Q) - --- pr1โˆ˜totff' : hom-sequential-diagram ฮฃAP B --- pr1โˆ˜totff' = comp-hom-sequential-diagram ฮฃAP ฮฃBQ B pr1Bโˆ™ totff' --- fโˆ˜pr1 : hom-sequential-diagram ฮฃAP B --- fโˆ˜pr1 = comp-hom-sequential-diagram ฮฃAP A B f pr1Aโˆ™ - --- pr1cohโˆ™ : htpy-hom-sequential-diagram B fโˆ˜pr1 pr1โˆ˜totff' --- pr1 pr1cohโˆ™ n = --- refl-htpy --- pr2 pr1cohโˆ™ n = --- right-unit-htpy โˆ™h --- right-unit-htpy โˆ™h --- ( ฮป x โ†’ --- inv --- ( ap-pr1-eq-pair-ฮฃ --- ( naturality-map-hom-sequential-diagram B f n (pr1 x)) --- ( _))) - --- module _ --- (sA : --- section-descent-data-sequential-colimit --- ( descent-data-family-cocone-sequential-diagram c P)) --- (sB : --- section-descent-data-sequential-colimit --- ( descent-data-family-cocone-sequential-diagram c' Q)) --- where --- open import foundation.sections - --- -- vertical maps, the "sides" of the cubes --- sAโˆ™ : hom-sequential-diagram A ฮฃAP --- pr1 sAโˆ™ n = map-section-family (pr1 sA n) --- pr2 sAโˆ™ n a = eq-pair-eq-fiber (pr2 sA n a) --- sBโˆ™ : hom-sequential-diagram B ฮฃBQ --- pr1 sBโˆ™ n = map-section-family (pr1 sB n) --- pr2 sBโˆ™ n b = eq-pair-eq-fiber (pr2 sB n b) --- totff'โˆ˜sAโˆ™ : hom-sequential-diagram A ฮฃBQ --- totff'โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP ฮฃBQ totff' sAโˆ™ --- sBโˆ™โˆ˜f : hom-sequential-diagram A ฮฃBQ --- sBโˆ™โˆ˜f = comp-hom-sequential-diagram A B ฮฃBQ sBโˆ™ f --- -- the unaligned cubes --- Hโˆ™ : --- htpy-hom-sequential-diagram ฮฃBQ totff'โˆ˜sAโˆ™ sBโˆ™โˆ˜f --- pr1 Hโˆ™ n a = eq-pair-eq-fiber {!!} --- pr2 Hโˆ™ = {!!} - --- pr1โˆ™โˆ˜sAโˆ™ : hom-sequential-diagram A A --- pr1โˆ™โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP A pr1Aโˆ™ sAโˆ™ - --- idAโˆ™ : hom-sequential-diagram A A --- idAโˆ™ = id-hom-sequential-diagram A --- idBโˆ™ : hom-sequential-diagram B B --- idBโˆ™ = id-hom-sequential-diagram B --- fโˆ˜idAโˆ™ : hom-sequential-diagram A B --- fโˆ˜idAโˆ™ = comp-hom-sequential-diagram A A B f idAโˆ™ --- idBโˆ™โˆ˜f : hom-sequential-diagram A B --- idBโˆ™โˆ˜f = comp-hom-sequential-diagram A B B idBโˆ™ f --- reflโˆ™ : htpy-hom-sequential-diagram B fโˆ˜idAโˆ™ idBโˆ™โˆ˜f --- pr1 reflโˆ™ = ev-pair refl-htpy --- pr2 reflโˆ™ n a = --- right-unit โˆ™ --- right-unit โˆ™ --- inv (ap-id (naturality-map-hom-sequential-diagram B f n a)) --- -- the alignment: postcomposing Hโˆ™ with pr1cohโˆ™ is homotopic with id --- โ„‹ : --- {!htpyยฒ-hom-sequential-diagram!} --- โ„‹ = {!!} - --- _ : --- totฮน' up-c --- ( family-with-descent-data-family-cocone-sequential-diagram c P) --- ( flattening-lemma-sequential-colimit c P up-c) ~ --- id --- _ = --- compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit _ P up-c) - --- _ : --- coherence-square-maps --- ( totฮน' up-c --- ( family-with-descent-data-family-cocone-sequential-diagram c P) --- ( flattening-lemma-sequential-colimit c P up-c)) --- ( totff'โˆž) --- ( map-ฮฃ Q --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- f') --- ( totฮน' up-c' --- ( family-with-descent-data-family-cocone-sequential-diagram c' Q) --- ( flattening-lemma-sequential-colimit c' Q up-c')) --- _ = --- ( compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h --- ( htpy-htpy-out-of-sequential-colimit --- ( flattening-lemma-sequential-colimit c P up-c) --- ( concat-htpy-cocone-sequential-diagram --- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- ( flattening-lemma-sequential-colimit c P up-c) --- ( total-cocone-family-cocone-sequential-diagram c' Q) --- ( totff')) --- ( ( ฮป n (a , p) โ†’ --- inv --- ( eq-pair-ฮฃ --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' --- ( f) --- ( n) --- ( a)) --- refl)) , --- {!!}))) โˆ™h --- ( _ ยทl --- ( inv-htpy --- (compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit c P up-c)))) - --- -- htpy-htpy-out-of-sequential-colimit --- -- ( flattening-lemma-sequential-colimit c P up-c) --- -- ( {!!}) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (f : hom-sequential-diagram A B) --- where --- open import foundation.homotopies-morphisms-arrows - --- interm : --- coherence-square-maps --- ( id) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( id) --- interm = --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' --- ( refl-htpy-hom-sequential-diagram A B f) - --- preserves-refl-htpy-sequential-colimit : --- htpy-hom-arrow --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( id , id , interm) --- ( id , id , refl-htpy) --- pr1 preserves-refl-htpy-sequential-colimit = refl-htpy --- pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy --- pr2 (pr2 preserves-refl-htpy-sequential-colimit) = --- right-unit-htpy โˆ™h --- htpy-eq --- ( ap --- ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) --- ( is-retraction-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f f) --- ( refl))) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} --- (B : sequential-diagram l2) --- (f : hom-sequential-diagram A B) --- (P : descent-data-sequential-colimit A l3) --- (Q : descent-data-sequential-colimit B l4) --- where - --- hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) --- hom-over-hom = --- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ --- family-descent-data-sequential-colimit P n a โ†’ --- family-descent-data-sequential-colimit Q n --- ( map-hom-sequential-diagram B f n a)) --- ( ฮป f'n โ†’ --- (n : โ„•) โ†’ --- square-over --- { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} --- ( map-sequential-diagram A n) --- ( map-hom-sequential-diagram B f n) --- ( map-hom-sequential-diagram B f (succ-โ„• n)) --- ( map-sequential-diagram B n) --- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) --- ( ฮป {a} โ†’ f'n n a) --- ( ฮป {a} โ†’ f'n (succ-โ„• n) a) --- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) --- ( naturality-map-hom-sequential-diagram B f n)) --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (f : hom-sequential-diagram A B) --- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) --- where - --- private --- fโˆž : X โ†’ Y --- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f --- DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) --- pr1 DDMO n a = --- P (map-cocone-sequential-diagram c n a) โ†’ --- Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- pr2 DDMO n a = --- ( equiv-postcomp _ --- ( ( equiv-tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e --- ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e --- ( equiv-precomp --- ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) --- ( _)) - --- sect-over-DDMO-map-over : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- section-descent-data-sequential-colimit DDMO --- pr1 (sect-over-DDMO-map-over fโˆž') n a = --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ --- ( fโˆž' (map-cocone-sequential-diagram c n a)) --- pr2 (sect-over-DDMO-map-over fโˆž') n a = --- eq-htpy --- ( ฮป p โ†’ --- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) - --- sect-over-DDMO-map-over' : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- section-descent-data-sequential-colimit DDMO --- sect-over-DDMO-map-over' = --- {!sect-family-sect-dd-sequential-colimit!} - --- map-over-sect-DDMO : --- section-descent-data-sequential-colimit DDMO โ†’ --- hom-over-hom B f --- ( descent-data-family-cocone-sequential-diagram c P) --- ( descent-data-family-cocone-sequential-diagram c' Q) --- map-over-sect-DDMO = --- tot --- ( ฮป s โ†’ --- map-ฮ  --- ( ฮป n โ†’ --- ( map-implicit-ฮ  --- ( ฮป a โ†’ --- ( concat-htpy --- ( inv-htpy --- ( ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q --- ( coherence-cocone-sequential-diagram c' n --- (map-hom-sequential-diagram B f n a))) โˆ˜ --- ( s n a)) ยทl --- ( is-retraction-inv-tr P --- ( coherence-cocone-sequential-diagram c n a)))) --- ( _)) โˆ˜ --- ( map-equiv --- ( equiv-htpy-precomp-htpy-ฮ  _ _ --- ( equiv-tr P --- ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ --- ( htpy-eq --- {f = --- ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q --- ( coherence-cocone-sequential-diagram c' n --- ( map-hom-sequential-diagram B f n a))) โˆ˜ --- ( s n a) โˆ˜ --- ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} --- { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ --- ( implicit-explicit-ฮ ))) - --- map-over-diagram-map-over-colimit : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- hom-over-hom B f --- ( descent-data-family-cocone-sequential-diagram c P) --- ( descent-data-family-cocone-sequential-diagram c' Q) --- pr1 (map-over-diagram-map-over-colimit fโˆž') n a = --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ --- ( fโˆž' (map-cocone-sequential-diagram c n a)) --- pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = --- pasting-vertical-coherence-square-maps --- ( tr P (coherence-cocone-sequential-diagram c n a)) --- ( fโˆž' _) --- ( fโˆž' _) --- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) --- ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) --- ( ฮป q โ†’ --- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ --- inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) --- ( ( inv-htpy --- ( ฮป q โ†’ --- ( tr-concat --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( _) --- ( q)) โˆ™ --- ( tr-concat --- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( q))) โˆ™ --- ( substitution-law-tr Q --- ( map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h --- ( ฮป q โ†’ --- ap --- ( ฮป p โ†’ tr Q p q) --- ( inv --- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h --- ( tr-concat --- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) - --- abstract --- triangle-map-over-sect-DDMO : --- coherence-triangle-maps --- ( map-over-diagram-map-over-colimit) --- ( map-over-sect-DDMO) --- ( sect-over-DDMO-map-over) --- triangle-map-over-sect-DDMO fโˆž' = --- eq-pair-eq-fiber --- ( eq-htpy --- ( ฮป n โ†’ --- eq-htpy-implicit --- ( ฮป a โ†’ --- eq-htpy --- ( ฮป p โ†’ --- {!!})))) - --- is-equiv-map-over-sect-DDMO : --- is-equiv map-over-sect-DDMO --- is-equiv-map-over-sect-DDMO = --- is-equiv-tot-is-fiberwise-equiv --- ( ฮป s โ†’ --- is-equiv-map-ฮ -is-fiberwise-equiv --- ( ฮป n โ†’ --- is-equiv-comp _ _ --- ( is-equiv-implicit-explicit-ฮ ) --- ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv --- ( ฮป a โ†’ --- is-equiv-comp _ _ --- ( funext _ _) --- ( is-equiv-comp _ _ --- ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) --- ( is-equiv-concat-htpy _ _)))))) - --- is-equiv-map-over-diagram-map-over-colimit : --- is-equiv map-over-diagram-map-over-colimit --- is-equiv-map-over-diagram-map-over-colimit = --- {!is-equiv-left-map-triangle --- ( map-over-diagram-map-over-colimit) --- ( map-over-sect-DDMO) --- ( sect-over-DDMO-map-over) --- ( triangle-map-over-sect-DDMO) --- ( is-equiv) !} --- ``` - -- ```agda -- module big-thm -- {l1 l2 l3 l4 l5 l6 : Level} @@ -1621,4 +280,297 @@ module _ -- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit -- ( dependent-universal-property-universal-property-sequential-colimit _ up-c') -- ( sB)) n (fn a))) --- ``` +``` + +```agda +module _ + {l1 l2 : Level} {A : sequential-diagram l1} + {B : dependent-sequential-diagram A l2} + (s t : section-dependent-sequential-diagram A B) + where + + htpy-section-dependent-sequential-diagram : UU (l1 โŠ” l2) + htpy-section-dependent-sequential-diagram = + ฮฃ ((n : โ„•) โ†’ + map-section-dependent-sequential-diagram A B s n ~ + map-section-dependent-sequential-diagram A B t n) + ( ฮป H โ†’ + (n : โ„•) โ†’ + coherence-square-homotopies + ( map-dependent-sequential-diagram B n _ ยทl H n) + ( naturality-map-section-dependent-sequential-diagram A B s n) + ( naturality-map-section-dependent-sequential-diagram A B t n) + ( H (succ-โ„• n) ยทr map-sequential-diagram A n)) + +module _ + {l1 l2 : Level} {A : sequential-diagram l1} + {B : dependent-sequential-diagram A l2} + (s : section-dependent-sequential-diagram A B) + where + + refl-htpy-section-dependent-sequential-diagram : + htpy-section-dependent-sequential-diagram s s + pr1 refl-htpy-section-dependent-sequential-diagram n = + refl-htpy + pr2 refl-htpy-section-dependent-sequential-diagram n = + right-unit-htpy + + htpy-eq-section-dependent-sequential-diagram : + (t : section-dependent-sequential-diagram A B) โ†’ + s ๏ผ t โ†’ htpy-section-dependent-sequential-diagram s t + htpy-eq-section-dependent-sequential-diagram .s refl = + refl-htpy-section-dependent-sequential-diagram + + abstract + is-torsorial-htpy-section-dependent-sequential-diagram : + is-torsorial (htpy-section-dependent-sequential-diagram s) + is-torsorial-htpy-section-dependent-sequential-diagram = + is-torsorial-Eq-structure + ( is-torsorial-binary-htpy _) + ( pr1 s , ฮป n โ†’ refl-htpy) + ( is-torsorial-binary-htpy _) + + is-equiv-htpy-eq-section-dependent-sequential-diagram : + (t : section-dependent-sequential-diagram A B) โ†’ + is-equiv (htpy-eq-section-dependent-sequential-diagram t) + is-equiv-htpy-eq-section-dependent-sequential-diagram = + fundamental-theorem-id + ( is-torsorial-htpy-section-dependent-sequential-diagram) + ( htpy-eq-section-dependent-sequential-diagram) + + equiv-htpy-eq-section-dependent-sequential-diagram : + (t : section-dependent-sequential-diagram A B) โ†’ + (s ๏ผ t) โ‰ƒ + htpy-section-dependent-sequential-diagram s t + equiv-htpy-eq-section-dependent-sequential-diagram t = + ( htpy-eq-section-dependent-sequential-diagram t , + is-equiv-htpy-eq-section-dependent-sequential-diagram t) + + eq-htpy-section-dependent-sequential-diagram : + (t : section-dependent-sequential-diagram A B) โ†’ + htpy-section-dependent-sequential-diagram s t โ†’ + s ๏ผ t + eq-htpy-section-dependent-sequential-diagram t = + map-inv-equiv (equiv-htpy-eq-section-dependent-sequential-diagram t) + +module _ + {l1 l2 : Level} {A : sequential-diagram l1} + (B : descent-data-sequential-colimit A l2) + (s t : section-descent-data-sequential-colimit B) + where + + eq-htpy-section-descent-data-sequential-colimit : + htpy-section-dependent-sequential-diagram s t โ†’ + s ๏ผ t + eq-htpy-section-descent-data-sequential-colimit = + eq-htpy-section-dependent-sequential-diagram s t + +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + (P : X โ†’ UU l3) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (s t : section-descent-data-sequential-colimit P') + where + + htpy-colimit-htpy-diagram-section : + htpy-section-dependent-sequential-diagram s t โ†’ + sect-family-sect-dd-sequential-colimit up-c P s ~ + sect-family-sect-dd-sequential-colimit up-c P t + htpy-colimit-htpy-diagram-section H = + htpy-eq + ( ap + ( sect-family-sect-dd-sequential-colimit up-c P) + ( eq-htpy-section-dependent-sequential-diagram s t H)) +``` + +```agda +module _ + {l1 l2 l3 : Level} {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + (P : X โ†’ UU l3) + where + + htpy-section-out-of-sequential-colimit : (s t : (x : X) โ†’ P x) โ†’ UU (l1 โŠ” l3) + htpy-section-out-of-sequential-colimit s t = + htpy-section-dependent-sequential-diagram + ( section-descent-data-section-family-cocone-sequential-colimit c P s) + ( section-descent-data-section-family-cocone-sequential-colimit c P t) + + equiv-htpy-section-out-of-sequential-colimit : + (s t : (x : X) โ†’ P x) โ†’ + htpy-section-out-of-sequential-colimit s t โ‰ƒ (s ~ t) + equiv-htpy-section-out-of-sequential-colimit s t = + ( inv-equiv + ( equiv-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit c + ( up-c)))) โˆ˜e + ( equiv-tot + ( ฮป H โ†’ + equiv-ฮ -equiv-family + ( ฮป n โ†’ + equiv-ฮ -equiv-family + ( ฮป a โ†’ + compute-dependent-identification-eq-value s t + ( coherence-cocone-sequential-diagram c n a) + ( H n a) + ( H (succ-โ„• n) (map-sequential-diagram A n a)))))) + + -- (2.i) + htpy-htpy-section-out-of-sequential-colimit : + (s t : (x : X) โ†’ P x) โ†’ + htpy-section-out-of-sequential-colimit s t โ†’ (s ~ t) + htpy-htpy-section-out-of-sequential-colimit s t = + map-equiv (equiv-htpy-section-out-of-sequential-colimit s t) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (f : hom-sequential-diagram A B) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let P = Q โˆ˜ fโˆž) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (let C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (s : section-descent-data-sequential-colimit Q') + (let sโˆž = sect-family-sect-dd-sequential-colimit up-c' Q s) + -- remove later + (t : section-descent-data-sequential-colimit P') + (let tโˆž = sect-family-sect-dd-sequential-colimit up-c P t) + where + + private + ฮณ : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( tr Q (C n a)) + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ n a q = + inv + ( ( tr-concat + ( C n a) + ( _) + ( q)) โˆ™ + ( tr-concat + ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) + ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) _) + ( _)) โˆ™ + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) โˆ™ + ap + ( ฮป p โ†’ tr Q p q) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ + tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a)) + ( q) โˆ™ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + + ฮณ-flip : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( tr Q (inv (C n a))) + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ฮณ-flip n a = + vertical-inv-equiv-coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( equiv-tr Q (C n a)) + ( equiv-tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( ฮณ n a) + + comp-over-diagram : + section-descent-data-sequential-colimit + ( descent-data-family-cocone-sequential-diagram c (Q โˆ˜ fโˆž)) + pr1 comp-over-diagram n a = + tr Q + ( inv (C n a)) + ( map-section-dependent-sequential-diagram _ _ s n + (map-hom-sequential-diagram B f n a)) + pr2 comp-over-diagram n a = + ( ฮณ-flip n a + ( map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a))) โˆ™ + ( ap + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( ( ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a))) โˆ™ + ( apd + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)))) + + lemma-1-1 : + htpy-section-dependent-sequential-diagram + ( section-descent-data-section-family-cocone-sequential-colimit c P + ( sect-family-sect-dd-sequential-colimit up-c P comp-over-diagram)) + ( comp-over-diagram) + lemma-1-1 = + htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dependent-universal-property-universal-property-sequential-colimit _ up-c) + ( comp-over-diagram) + + -- needs work + lemma-1-2 : + htpy-section-dependent-sequential-diagram + ( section-descent-data-section-family-cocone-sequential-colimit c P + ( sโˆž โˆ˜ fโˆž)) + ( comp-over-diagram) + pr1 lemma-1-2 n a = {!!} + pr2 lemma-1-2 = {!!} + + lemma-1 : + sโˆž โˆ˜ fโˆž ~ sect-family-sect-dd-sequential-colimit up-c P comp-over-diagram + lemma-1 = + htpy-htpy-section-out-of-sequential-colimit up-c P _ _ + ( concat-htpy-dependent-cocone-sequential-diagram P + ( lemma-1-2) + ( inv-htpy-dependent-cocone-sequential-diagram P lemma-1-1)) + + -- needs work, needs another input + lemma-2 : htpy-section-dependent-sequential-diagram t comp-over-diagram + pr1 lemma-2 = {!!} + pr2 lemma-2 = {!!} + + theorem : tโˆž ~ sโˆž โˆ˜ fโˆž + theorem = + htpy-colimit-htpy-diagram-section up-c P t comp-over-diagram lemma-2 โˆ™h + inv-htpy lemma-1 +``` + diff --git a/src/synthetic-homotopy-theory/old-stuff.lagda.md b/src/synthetic-homotopy-theory/old-stuff.lagda.md new file mode 100644 index 0000000000..8234ecbf02 --- /dev/null +++ b/src/synthetic-homotopy-theory/old-stuff.lagda.md @@ -0,0 +1,1400 @@ +New idea: instead of bruteforcing this direction, show that a square induces +coherent cubes, and show that it's an equivalence because it fits in a diagram. + +-- ## Commuting cubes induce commuting squares in the colimit + +-- ```agda +-- open import foundation.commuting-cubes-of-maps +-- module _ +-- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} +-- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} +-- (up-a : universal-property-sequential-colimit a) +-- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} +-- (up-b : universal-property-sequential-colimit b) +-- {P : sequential-diagram l5} {V : UU l6} {p : cocone-sequential-diagram P V} +-- (up-p : universal-property-sequential-colimit p) +-- {Q : sequential-diagram l7} {W : UU l8} {q : cocone-sequential-diagram Q W} +-- (up-q : universal-property-sequential-colimit q) +-- (f' : hom-sequential-diagram P Q) +-- (f : hom-sequential-diagram A B) +-- (g : hom-sequential-diagram P A) +-- (h : hom-sequential-diagram Q B) +-- where + +-- square-cube-sequential-colimit : +-- (faces : +-- (n : โ„•) โ†’ +-- coherence-square-maps +-- ( map-hom-sequential-diagram Q f' n) +-- ( map-hom-sequential-diagram A g n) +-- ( map-hom-sequential-diagram B h n) +-- ( map-hom-sequential-diagram B f n)) โ†’ +-- (cubes : +-- (n : โ„•) โ†’ +-- coherence-cube-maps +-- ( map-hom-sequential-diagram B f n) +-- ( map-sequential-diagram A n) +-- ( map-sequential-diagram B n) +-- ( map-hom-sequential-diagram B f (succ-โ„• n)) +-- ( map-hom-sequential-diagram Q f' n) +-- ( map-sequential-diagram P n) +-- ( map-sequential-diagram Q n) +-- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) +-- ( map-hom-sequential-diagram A g n) +-- ( map-hom-sequential-diagram B h n) +-- ( map-hom-sequential-diagram A g (succ-โ„• n)) +-- ( map-hom-sequential-diagram B h (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram Q f' n) +-- ( faces n) +-- ( naturality-map-hom-sequential-diagram A g n) +-- ( naturality-map-hom-sequential-diagram B h n) +-- ( faces (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n)) โ†’ +-- coherence-square-maps +-- ( map-sequential-colimit-hom-sequential-diagram up-p q f') +-- ( map-sequential-colimit-hom-sequential-diagram up-p a g) +-- ( map-sequential-colimit-hom-sequential-diagram up-q b h) +-- ( map-sequential-colimit-hom-sequential-diagram up-a b f) +-- square-cube-sequential-colimit faces cubes = +-- inv-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-a b +-- f g) โˆ™h +-- induced-htpy โˆ™h +-- preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-q b h f' +-- where +-- comp1 comp2 : hom-sequential-diagram P B +-- comp1 = comp-hom-sequential-diagram P A B f g +-- comp2 = comp-hom-sequential-diagram P Q B h f' +-- induced-hom-htpy : htpy-hom-sequential-diagram B comp1 comp2 +-- pr1 induced-hom-htpy = faces +-- pr2 induced-hom-htpy n = +-- assoc-htpy _ _ _ โˆ™h +-- inv-htpy (cubes n) โˆ™h +-- assoc-htpy _ _ _ +-- induced-htpy : +-- map-sequential-colimit-hom-sequential-diagram up-p b comp1 ~ +-- map-sequential-colimit-hom-sequential-diagram up-p b comp2 +-- induced-htpy = +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-p b +-- ( induced-hom-htpy) +-- ``` + +-- ## Concatenation of homotopies of morphisms of sequential diagrams + +-- ```agda +-- open import foundation.whiskering-homotopies-concatenation +-- module _ +-- {l1 l2 : Level} +-- {A : sequential-diagram l1} {B : sequential-diagram l2} +-- (f g h : hom-sequential-diagram A B) +-- where + +-- module _ +-- (H : htpy-hom-sequential-diagram B f g) +-- (K : htpy-hom-sequential-diagram B g h) +-- where + +-- concat-htpy-hom-sequential-diagram : htpy-hom-sequential-diagram B f h +-- pr1 concat-htpy-hom-sequential-diagram n = +-- htpy-htpy-hom-sequential-diagram _ H n โˆ™h +-- htpy-htpy-hom-sequential-diagram _ K n +-- pr2 concat-htpy-hom-sequential-diagram n = +-- inv-htpy-assoc-htpy _ _ _ โˆ™h +-- right-whisker-concat-htpy +-- ( coherence-htpy-htpy-hom-sequential-diagram B H n) +-- ( htpy-htpy-hom-sequential-diagram _ K (succ-โ„• n) ยทr map-sequential-diagram A n) โˆ™h +-- assoc-htpy _ _ _ โˆ™h +-- left-whisker-concat-htpy +-- ( map-sequential-diagram B n ยทl htpy-htpy-hom-sequential-diagram _ H n) +-- ( coherence-htpy-htpy-hom-sequential-diagram B K n) โˆ™h +-- inv-htpy-assoc-htpy _ _ _ โˆ™h +-- right-whisker-concat-htpy +-- ( inv-htpy +-- ( distributive-left-whisker-comp-concat +-- ( map-sequential-diagram B n) +-- ( htpy-htpy-hom-sequential-diagram _ H n) +-- ( htpy-htpy-hom-sequential-diagram _ K n))) +-- ( naturality-map-hom-sequential-diagram B h n) + +-- htpy-eq-concat-hom-sequential-diagram : +-- (p : f ๏ผ g) (q : g ๏ผ h) โ†’ +-- htpy-eq-sequential-diagram A B f h (p โˆ™ q) ๏ผ +-- concat-htpy-hom-sequential-diagram +-- ( htpy-eq-sequential-diagram A B f g p) +-- ( htpy-eq-sequential-diagram A B g h q) +-- htpy-eq-concat-hom-sequential-diagram refl refl = +-- eq-pair-eq-fiber +-- ( inv +-- ( eq-binary-htpy _ _ +-- ฮป n a โ†’ +-- right-unit โˆ™ right-unit โˆ™ +-- ap +-- ( (inv (assoc _ refl refl) โˆ™ ap (_โˆ™ refl) right-unit) โˆ™ refl โˆ™_) +-- ( ap-id right-unit) โˆ™ +-- ap +-- ( _โˆ™ right-unit) +-- ( right-unit โˆ™ +-- ap +-- ( ฮป p โ†’ inv p โˆ™ ap (_โˆ™ refl) right-unit) +-- ( middle-unit-law-assoc +-- ( naturality-map-hom-sequential-diagram B f n a) +-- ( refl)) โˆ™ +-- left-inv (ap (_โˆ™ refl) right-unit)))) +-- where +-- open import foundation.binary-homotopies +-- open import foundation.path-algebra + +-- eq-htpy-concat-hom-sequential-diagram : +-- (H : htpy-hom-sequential-diagram B f g) +-- (K : htpy-hom-sequential-diagram B g h) โ†’ +-- eq-htpy-sequential-diagram A B f h +-- ( concat-htpy-hom-sequential-diagram H K) ๏ผ +-- eq-htpy-sequential-diagram A B f g H โˆ™ +-- eq-htpy-sequential-diagram A B g h K +-- eq-htpy-concat-hom-sequential-diagram H K = +-- ap +-- ( eq-htpy-sequential-diagram A B f h) +-- ( inv +-- ( htpy-eq-concat-hom-sequential-diagram +-- ( eq-htpy-sequential-diagram A B f g H) +-- ( eq-htpy-sequential-diagram A B g h K) โˆ™ +-- ap-binary concat-htpy-hom-sequential-diagram +-- ( is-section-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f g) +-- ( H)) +-- ( is-section-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B g h) +-- ( K)))) โˆ™ +-- is-retraction-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f h) +-- ( eq-htpy-sequential-diagram A B f g H โˆ™ +-- eq-htpy-sequential-diagram A B g h K) +-- where open import foundation.action-on-identifications-binary-functions +-- ``` + +-- ## Vertical pasting of cubes of stuff + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {B : sequential-diagram l2} +-- {A' : sequential-diagram l3} {B' : sequential-diagram l4} +-- {A'' : sequential-diagram l5} {B'' : sequential-diagram l6} +-- (top : hom-sequential-diagram A'' B'') +-- (top-left : hom-sequential-diagram A'' A') +-- (top-right : hom-sequential-diagram B'' B') +-- (mid : hom-sequential-diagram A' B') +-- (bottom-left : hom-sequential-diagram A' A) +-- (bottom-right : hom-sequential-diagram B' B) +-- (bottom : hom-sequential-diagram A B) +-- (H : +-- htpy-hom-sequential-diagram B +-- ( comp-hom-sequential-diagram A' A B bottom bottom-left) +-- ( comp-hom-sequential-diagram A' B' B bottom-right mid)) +-- (K : +-- htpy-hom-sequential-diagram B' +-- ( comp-hom-sequential-diagram A'' A' B' mid top-left) +-- ( comp-hom-sequential-diagram A'' B'' B' top-right top)) +-- -- (faces-top : +-- -- (n : โ„•) โ†’ +-- -- coherence-square-maps +-- -- ( map-hom-sequential-diagram B'' top n) +-- -- ( map-hom-sequential-diagram A' top-left n) +-- -- ( map-hom-sequential-diagram B' top-right n) +-- -- ( map-hom-sequential-diagram B' mid n)) +-- -- (faces-bottom : +-- -- (n : โ„•) โ†’ {!!}) +-- -- (cubes-top : +-- -- (n : โ„•) โ†’ {!!}) +-- -- (cubes-bottom : +-- -- (n : โ„•) โ†’ {!!}) +-- -- -- (cubes : +-- -- -- (n : โ„•) โ†’ +-- -- -- coherence-cube-maps +-- -- -- ( map-hom-sequential-diagram B f n) +-- -- -- ( map-sequential-diagram A n) +-- -- -- ( map-sequential-diagram B n) +-- -- -- ( map-hom-sequential-diagram B f (succ-โ„• n)) +-- -- -- ( map-hom-sequential-diagram Q f' n) +-- -- -- ( map-sequential-diagram P n) +-- -- -- ( map-sequential-diagram Q n) +-- -- -- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) +-- -- -- ( map-hom-sequential-diagram A g n) +-- -- -- ( map-hom-sequential-diagram B h n) +-- -- -- ( map-hom-sequential-diagram A g (succ-โ„• n)) +-- -- -- ( map-hom-sequential-diagram B h (succ-โ„• n)) +-- -- -- ( naturality-map-hom-sequential-diagram Q f' n) +-- -- -- ( faces n) +-- -- -- ( naturality-map-hom-sequential-diagram A g n) +-- -- -- ( naturality-map-hom-sequential-diagram B h n) +-- -- -- ( faces (succ-โ„• n)) +-- -- -- ( naturality-map-hom-sequential-diagram B f n)) โ†’ +-- where + +-- pasting-vertical-coherence-square-hom-sequential-diagram : +-- htpy-hom-sequential-diagram B +-- ( comp-hom-sequential-diagram A'' A B bottom +-- ( comp-hom-sequential-diagram A'' A' A bottom-left top-left)) +-- ( comp-hom-sequential-diagram A'' B'' B +-- ( comp-hom-sequential-diagram B'' B' B bottom-right top-right) +-- ( top)) +-- pasting-vertical-coherence-square-hom-sequential-diagram = {!!} +-- ``` + +-- ## Whiskering of homotopies of morphisms of sequential diagrams + +-- ### Right whiskering + +-- ```agda +-- module _ +-- {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} +-- where + +-- htpy-eq-right-whisker : +-- {f g : B โ†’ C} (p : f ๏ผ g) (h : A โ†’ B) โ†’ +-- htpy-eq (ap (_โˆ˜ h) p) ๏ผ htpy-eq p ยทr h +-- htpy-eq-right-whisker refl h = refl + +-- eq-htpy-right-whisker : +-- {f g : B โ†’ C} (H : f ~ g) (h : A โ†’ B) โ†’ +-- eq-htpy (H ยทr h) ๏ผ ap (_โˆ˜ h) (eq-htpy H) +-- eq-htpy-right-whisker H h = +-- ap eq-htpy +-- ( inv +-- ( htpy-eq-right-whisker (eq-htpy H) h โˆ™ +-- ap (_ยทr h) (is-section-eq-htpy H))) โˆ™ +-- is-retraction-eq-htpy (ap (_โˆ˜ h) (eq-htpy H)) + +-- htpy-eq-left-whisker : +-- {f g : A โ†’ B} (h : B โ†’ C) (p : f ๏ผ g) โ†’ +-- htpy-eq (ap (h โˆ˜_) p) ๏ผ h ยทl htpy-eq p +-- htpy-eq-left-whisker h refl = refl + +-- -- alternatively, using homotopy induction +-- eq-htpy-left-whisker : +-- {f g : A โ†’ B} (h : B โ†’ C) (H : f ~ g) โ†’ +-- eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H) +-- eq-htpy-left-whisker {f} h = +-- ind-htpy f +-- ( ฮป g H โ†’ +-- eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H)) +-- ( eq-htpy-refl-htpy (h โˆ˜ f) โˆ™ +-- inv (ap (ap (h โˆ˜_)) (eq-htpy-refl-htpy f))) +-- where open import foundation.homotopy-induction +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 : Level} +-- {A : sequential-diagram l1} {B : sequential-diagram l2} +-- {X : sequential-diagram l3} +-- {f g : hom-sequential-diagram A B} +-- where +-- open import foundation.whiskering-identifications-concatenation + +-- module _ +-- (H : htpy-hom-sequential-diagram B f g) +-- (h : hom-sequential-diagram X A) +-- where + +-- right-whisker-concat-htpy-hom-sequential-diagram : +-- htpy-hom-sequential-diagram B +-- ( comp-hom-sequential-diagram X A B f h) +-- ( comp-hom-sequential-diagram X A B g h) +-- pr1 right-whisker-concat-htpy-hom-sequential-diagram n = +-- htpy-htpy-hom-sequential-diagram _ H n ยทr map-hom-sequential-diagram A h n +-- pr2 right-whisker-concat-htpy-hom-sequential-diagram n x = +-- assoc _ _ _ โˆ™ +-- left-whisker-concat +-- ( naturality-map-hom-sequential-diagram B f n (map-hom-sequential-diagram A h n x)) +-- ( inv-nat-htpy +-- ( htpy-htpy-hom-sequential-diagram B H (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ +-- inv (assoc _ _ _) โˆ™ +-- right-whisker-concat +-- ( coherence-htpy-htpy-hom-sequential-diagram B H n (map-hom-sequential-diagram A h n x)) +-- ( ap +-- ( map-hom-sequential-diagram B g (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ +-- assoc _ _ _ + +-- htpy-eq-right-whisker-htpy-hom-sequential-diagram : +-- (p : f ๏ผ g) (h : hom-sequential-diagram X A) โ†’ +-- htpy-eq-sequential-diagram X B +-- ( comp-hom-sequential-diagram X A B f h) +-- ( comp-hom-sequential-diagram X A B g h) +-- ( ap (ฮป f โ†’ comp-hom-sequential-diagram X A B f h) p) ๏ผ +-- right-whisker-concat-htpy-hom-sequential-diagram +-- ( htpy-eq-sequential-diagram A B f g p) +-- ( h) +-- htpy-eq-right-whisker-htpy-hom-sequential-diagram refl h = +-- eq-pair-eq-fiber +-- ( eq-binary-htpy _ _ +-- ฮป n x โ†’ +-- inv +-- ( right-unit โˆ™ +-- ap-binary +-- ( ฮป p q โ†’ +-- p โˆ™ +-- left-whisker-concat _ q โˆ™ +-- inv (assoc _ refl _) โˆ™ +-- right-whisker-concat _ _) +-- ( right-unit-law-assoc _ _) +-- ( inv-nat-refl-htpy _ _) โˆ™ +-- ap +-- ( ฮป p โ†’ +-- right-unit โˆ™ +-- left-whisker-concat _ (inv right-unit) โˆ™ +-- left-whisker-concat _ right-unit โˆ™ +-- inv p โˆ™ +-- right-whisker-concat right-unit _) +-- ( middle-unit-law-assoc _ _) โˆ™ +-- is-section-inv-concat' +-- ( right-whisker-concat right-unit _) +-- ( right-unit โˆ™ +-- left-whisker-concat _ (inv right-unit) โˆ™ +-- left-whisker-concat _ right-unit) โˆ™ +-- ap +-- ( ฮป p โ†’ right-unit โˆ™ p โˆ™ left-whisker-concat _ right-unit) +-- ( ap-inv (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) โˆ™ +-- is-section-inv-concat' +-- ( ap (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) +-- ( right-unit))) +-- where +-- open import foundation.binary-homotopies +-- open import foundation.path-algebra +-- open import foundation.action-on-identifications-binary-functions + +-- eq-htpy-right-whisker-htpy-hom-sequential-diagram : +-- (H : htpy-hom-sequential-diagram B f g) (h : hom-sequential-diagram X A) โ†’ +-- eq-htpy-sequential-diagram X B +-- ( comp-hom-sequential-diagram X A B f h) +-- ( comp-hom-sequential-diagram X A B g h) +-- ( right-whisker-concat-htpy-hom-sequential-diagram H h) ๏ผ +-- ap +-- ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) +-- ( eq-htpy-sequential-diagram A B f g H) +-- eq-htpy-right-whisker-htpy-hom-sequential-diagram H h = +-- ap +-- ( eq-htpy-sequential-diagram X B _ _) +-- ( inv +-- ( htpy-eq-right-whisker-htpy-hom-sequential-diagram +-- ( eq-htpy-sequential-diagram A B f g H) +-- ( h) โˆ™ +-- ap +-- ( ฮป H โ†’ right-whisker-concat-htpy-hom-sequential-diagram H h) +-- ( is-section-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f g) +-- ( H)))) โˆ™ +-- is-retraction-map-inv-equiv +-- ( extensionality-hom-sequential-diagram X B +-- ( comp-hom-sequential-diagram X A B f h) +-- ( comp-hom-sequential-diagram X A B g h)) +-- ( ap +-- ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) +-- ( eq-htpy-sequential-diagram A B f g H)) +-- ``` + +-- ### Left whiskering + +-- ```agda +-- module _ +-- {l1 l2 l3 : Level} +-- {A : sequential-diagram l1} {B : sequential-diagram l2} +-- {X : sequential-diagram l3} +-- {f g : hom-sequential-diagram A B} +-- where +-- open import foundation.whiskering-identifications-concatenation + +-- module _ +-- (h : hom-sequential-diagram B X) +-- (H : htpy-hom-sequential-diagram B f g) +-- where + +-- left-whisker-concat-htpy-hom-sequential-diagram : +-- htpy-hom-sequential-diagram X +-- ( comp-hom-sequential-diagram A B X h f) +-- ( comp-hom-sequential-diagram A B X h g) +-- pr1 left-whisker-concat-htpy-hom-sequential-diagram n = +-- map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n +-- pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = +-- assoc _ _ _ โˆ™ +-- left-whisker-concat +-- ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) +-- ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ +-- ap +-- ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) +-- ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ +-- ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ +-- inv (assoc _ _ _) โˆ™ +-- right-whisker-concat +-- ( left-whisker-concat +-- ( naturality-map-hom-sequential-diagram X h n +-- ( map-hom-sequential-diagram B f n a)) +-- ( inv +-- ( ap-comp +-- ( map-hom-sequential-diagram X h (succ-โ„• n)) +-- ( map-sequential-diagram B n) +-- ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ +-- nat-htpy +-- ( naturality-map-hom-sequential-diagram X h n) +-- ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ +-- right-whisker-concat +-- ( ap-comp +-- ( map-sequential-diagram X n) +-- ( map-hom-sequential-diagram X h n) +-- ( htpy-htpy-hom-sequential-diagram B H n a)) +-- ( naturality-map-hom-sequential-diagram X h n +-- ( map-hom-sequential-diagram B g n a))) +-- ( ap +-- ( map-hom-sequential-diagram X h (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ +-- assoc _ _ _ + +-- htpy-eq-left-whisker-htpy-hom-sequential-diagram : +-- (h : hom-sequential-diagram B X) (p : f ๏ผ g) โ†’ +-- htpy-eq-sequential-diagram A X +-- ( comp-hom-sequential-diagram A B X h f) +-- ( comp-hom-sequential-diagram A B X h g) +-- ( ap (comp-hom-sequential-diagram A B X h) p) ๏ผ +-- left-whisker-concat-htpy-hom-sequential-diagram h +-- ( htpy-eq-sequential-diagram A B f g p) +-- htpy-eq-left-whisker-htpy-hom-sequential-diagram h refl = +-- eq-pair-eq-fiber +-- ( eq-binary-htpy _ _ +-- ( ฮป n a โ†’ +-- inv +-- ( right-unit โˆ™ +-- ( ap-binary +-- ( ฮป p q โ†’ +-- p โˆ™ +-- left-whisker-concat +-- ( naturality-map-hom-sequential-diagram X h n +-- ( map-hom-sequential-diagram B f n a)) +-- ( inv (ap-concat _ _ refl) โˆ™ +-- ap +-- ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) +-- ( right-unit) โˆ™ +-- refl) โˆ™ +-- q โˆ™ +-- right-whisker-concat (right-unit โˆ™ refl) _) +-- ( right-unit-law-assoc _ (ap _ _) โˆ™ +-- left-whisker-concat right-unit (ap-inv _ right-unit)) +-- ( ap inv (middle-unit-law-assoc _ _))) โˆ™ +-- ( ap-binary +-- ( ฮป p q โ†’ +-- right-unit โˆ™ +-- inv (left-whisker-concat _ right-unit) โˆ™ +-- left-whisker-concat _ p โˆ™ +-- inv (right-whisker-concat right-unit _) โˆ™ +-- right-whisker-concat q _) +-- ( right-unit โˆ™ +-- right-whisker-concat +-- ( ap inv (compute-right-refl-ap-concat _ _) โˆ™ +-- distributive-inv-concat +-- ( ap (ap _) right-unit) +-- ( inv right-unit) โˆ™ +-- right-whisker-concat (inv-inv right-unit) _) +-- ( ap (ap _) right-unit) โˆ™ +-- is-section-inv-concat' (ap (ap _) right-unit) right-unit) +-- ( right-unit)) โˆ™ +-- is-section-inv-concat' +-- ( right-whisker-concat right-unit _) +-- ( right-unit โˆ™ inv _ โˆ™ _) โˆ™ +-- is-section-inv-concat' +-- ( left-whisker-concat _ right-unit) +-- ( right-unit)))) +-- where +-- open import foundation.action-on-identifications-binary-functions +-- open import foundation.binary-homotopies +-- open import foundation.path-algebra + +-- eq-htpy-left-whisker-htpy-hom-sequential-diagram : +-- (h : hom-sequential-diagram B X) (H : htpy-hom-sequential-diagram B f g) โ†’ +-- eq-htpy-sequential-diagram A X +-- ( comp-hom-sequential-diagram A B X h f) +-- ( comp-hom-sequential-diagram A B X h g) +-- ( left-whisker-concat-htpy-hom-sequential-diagram h H) ๏ผ +-- ap +-- ( comp-hom-sequential-diagram A B X h) +-- ( eq-htpy-sequential-diagram A B f g H) +-- eq-htpy-left-whisker-htpy-hom-sequential-diagram h H = +-- ap +-- ( eq-htpy-sequential-diagram A X _ _) +-- ( inv +-- ( htpy-eq-left-whisker-htpy-hom-sequential-diagram h +-- ( eq-htpy-sequential-diagram A B f g H) โˆ™ +-- ap +-- ( left-whisker-concat-htpy-hom-sequential-diagram h) +-- ( is-section-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f g) +-- ( H)))) โˆ™ +-- is-retraction-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A X +-- ( comp-hom-sequential-diagram A B X h f) +-- ( comp-hom-sequential-diagram A B X h g)) +-- ( ap +-- ( comp-hom-sequential-diagram A B X h) +-- ( eq-htpy-sequential-diagram A B f g H)) +-- ``` + +-- ## Action on homotopies of morphisms of sequential diagrams preserves whiskering + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} +-- (up-a : universal-property-sequential-colimit a) +-- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} +-- (up-b : universal-property-sequential-colimit b) +-- {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) +-- {f g : hom-sequential-diagram B C} +-- where + +-- coh-comp-hom-sequential-diagram : +-- (p : f ๏ผ g) (h : hom-sequential-diagram A B) โ†’ +-- ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a c) +-- ( ap (ฮป f โ†’ comp-hom-sequential-diagram A B C f h) p) โˆ™ +-- eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) ๏ผ +-- eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™ +-- ap +-- ( _โˆ˜ map-sequential-colimit-hom-sequential-diagram up-a b h) +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-b c) +-- ( p)) +-- coh-comp-hom-sequential-diagram refl h = inv right-unit + +-- preserves-right-whisker-htpy-hom-sequential-diagram : +-- (H : htpy-hom-sequential-diagram C f g) +-- (h : hom-sequential-diagram A B) โ†’ +-- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c +-- ( right-whisker-concat-htpy-hom-sequential-diagram H h)) โˆ™h +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h)) ~ +-- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™h +-- ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-b c H ยทr +-- map-sequential-colimit-hom-sequential-diagram up-a b h)) +-- preserves-right-whisker-htpy-hom-sequential-diagram H h = +-- htpy-eq +-- ( ( ap +-- ( ฮป p โ†’ +-- htpy-eq +-- ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h +-- preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c g h) +-- ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h)) โˆ™ +-- ( inv [i]) โˆ™ +-- ( ap htpy-eq +-- ( coh-comp-hom-sequential-diagram +-- ( eq-htpy-sequential-diagram B C f g H) +-- ( h))) โˆ™ +-- ( htpy-eq-concat _ _) โˆ™ +-- ( ap-binary +-- ( _โˆ™h_) +-- ( is-section-eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c f h)) +-- ( htpy-eq-right-whisker +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-b c) +-- ( eq-htpy-sequential-diagram B C f g H)) +-- ( map-sequential-colimit-hom-sequential-diagram up-a b h)))) +-- where +-- open import foundation.action-on-identifications-binary-functions +-- [i] = +-- htpy-eq-concat +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a c) +-- ( ap +-- ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) +-- ( eq-htpy-sequential-diagram B C f g H))) +-- ( eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c g h)) โˆ™ +-- ap +-- ( htpy-eq +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a c) +-- ( ap +-- ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) +-- ( eq-htpy-sequential-diagram B C f g H))) โˆ™h_) +-- ( is-section-eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c g h)) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} +-- (up-a : universal-property-sequential-colimit a) +-- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} +-- (up-b : universal-property-sequential-colimit b) +-- {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) +-- (h : hom-sequential-diagram B C) +-- {f g : hom-sequential-diagram A B} +-- where + +-- coh-comp-hom-sequential-diagram' : +-- (p : f ๏ผ g) โ†’ +-- ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a c) +-- ( ap (comp-hom-sequential-diagram A B C h) p) โˆ™ +-- eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g) ๏ผ +-- eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™ +-- ap +-- ( map-sequential-colimit-hom-sequential-diagram up-b c h โˆ˜_) +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( p)) +-- coh-comp-hom-sequential-diagram' refl = inv right-unit + +-- preserves-left-whisker-htpy-hom-sequential-diagram : +-- (H : htpy-hom-sequential-diagram B f g) โ†’ +-- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c +-- ( left-whisker-concat-htpy-hom-sequential-diagram h H)) โˆ™h +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g)) ~ +-- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™h +-- ( map-sequential-colimit-hom-sequential-diagram up-b c h ยทl +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H)) +-- preserves-left-whisker-htpy-hom-sequential-diagram H = +-- htpy-eq +-- ( ap-binary +-- ( ฮป p q โ†’ +-- htpy-eq +-- ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h +-- q) +-- ( eq-htpy-left-whisker-htpy-hom-sequential-diagram h H) +-- ( inv +-- ( is-section-eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c h g))) โˆ™ +-- inv +-- ( htpy-eq-concat +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a c) +-- ( ap +-- ( comp-hom-sequential-diagram A B C h) +-- ( eq-htpy-sequential-diagram A B f g H))) +-- ( eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c h g))) โˆ™ +-- ap htpy-eq +-- ( coh-comp-hom-sequential-diagram' +-- ( eq-htpy-sequential-diagram A B f g H)) โˆ™ +-- htpy-eq-concat _ _ โˆ™ +-- ap-binary _โˆ™h_ +-- ( is-section-eq-htpy +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c h f)) +-- ( htpy-eq-left-whisker +-- ( map-sequential-colimit-hom-sequential-diagram up-b c h) +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( eq-htpy-sequential-diagram A B f g H)))) +-- where +-- open import foundation.action-on-identifications-binary-functions +-- ``` + +-- ## Action on homotopies of morphisms of sequential diagrams preserves concatenation + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} +-- (up-a : universal-property-sequential-colimit a) +-- {B : sequential-diagram l3} {Y : UU l4} (b : cocone-sequential-diagram B Y) +-- {f g h : hom-sequential-diagram A B} +-- (H : htpy-hom-sequential-diagram B f g) +-- (K : htpy-hom-sequential-diagram B g h) +-- where + +-- preserves-concat-htpy-hom-sequential-diagram : +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b +-- ( concat-htpy-hom-sequential-diagram f g h H K) ~ +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H โˆ™h +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b K +-- preserves-concat-htpy-hom-sequential-diagram = +-- htpy-eq +-- ( ( ap +-- ( ฮป p โ†’ +-- htpy-eq +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( p))) +-- ( eq-htpy-concat-hom-sequential-diagram f g h H K)) โˆ™ +-- ( ap htpy-eq +-- ( ap-concat +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( eq-htpy-sequential-diagram A B f g H) +-- ( eq-htpy-sequential-diagram A B g h K))) โˆ™ +-- ( htpy-eq-concat +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( eq-htpy-sequential-diagram A B f g H)) +-- ( ap +-- ( map-sequential-colimit-hom-sequential-diagram up-a b) +-- ( eq-htpy-sequential-diagram A B g h K)))) +-- ``` + +-- ## Action on homotopies of morphisms of sequential diagrams preserves associativity + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} +-- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} +-- (up-a : universal-property-sequential-colimit a) +-- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} +-- (up-b : universal-property-sequential-colimit b) +-- {C : sequential-diagram l5} {Z : UU l6} {c : cocone-sequential-diagram C Z} +-- (up-c : universal-property-sequential-colimit c) +-- {D : sequential-diagram l7} {V : UU l8} (d : cocone-sequential-diagram D V) +-- (f : hom-sequential-diagram A B) (g : hom-sequential-diagram B C) +-- (h : hom-sequential-diagram C D) +-- where + +-- coh-assoc-comp-hom-sequential-diagram : +-- {!!} +-- coh-assoc-comp-hom-sequential-diagram = {!!} + +-- preserves-assoc-comp-hom-sequential-diagram : +-- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a d +-- ( assoc-comp-hom-sequential-diagram f g h)) โˆ™h +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-c d h +-- ( comp-hom-sequential-diagram A B C g f)) โˆ™h +-- ( map-sequential-colimit-hom-sequential-diagram up-c d h ยทl +-- preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-a up-b c g f)) ~ +-- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b d +-- ( comp-hom-sequential-diagram B C D h g) +-- ( f)) โˆ™h +-- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram +-- up-b up-c d h g ยทr +-- map-sequential-colimit-hom-sequential-diagram up-a b f)) +-- preserves-assoc-comp-hom-sequential-diagram = +-- {!!} +-- ``` + +-- ```agda +-- nat-lemma : +-- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} +-- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} +-- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) +-- {x y : A} {p : x ๏ผ y} +-- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ +-- coherence-square-maps +-- ( tr P p) +-- ( h x) +-- ( h y) +-- ( tr Q q) +-- nat-lemma f h {p = p} refl x = +-- substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) +-- ``` + +-- ## + +-- ```agda +-- open import synthetic-homotopy-theory.families-descent-data-sequential-colimits +-- open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams +-- open import synthetic-homotopy-theory.total-sequential-diagrams + +-- open import foundation.action-on-identifications-functions +-- open import foundation.commuting-squares-of-identifications +-- open import foundation.functoriality-dependent-pair-types +-- open import foundation.equality-dependent-pair-types +-- open import foundation.identity-types +-- open import synthetic-homotopy-theory.sequential-colimits +-- open import synthetic-homotopy-theory.functoriality-sequential-colimits +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} +-- {X : UU l2} {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- (P : family-with-descent-data-sequential-colimit c l3) +-- {Y : UU l4} +-- {c' : +-- cocone-sequential-diagram +-- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( Y)} +-- (up-c' : universal-property-sequential-colimit c') +-- where + +-- mediating-cocone : +-- cocone-sequential-diagram +-- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) +-- pr1 mediating-cocone n = +-- map-ฮฃ +-- ( family-cocone-family-with-descent-data-sequential-colimit P) +-- ( map-cocone-sequential-diagram c n) +-- ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) +-- pr2 mediating-cocone n (a , p) = +-- eq-pair-ฮฃ +-- ( coherence-cocone-sequential-diagram c n a) +-- ( inv +-- ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) + +-- totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) +-- totฮน' = +-- map-universal-property-sequential-colimit up-c' mediating-cocone +-- triangle-pr1โˆž-pr1 : +-- pr1-sequential-colimit-total-sequential-diagram +-- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) +-- ( up-c') +-- ( c) ~ +-- pr1 โˆ˜ totฮน' +-- triangle-pr1โˆž-pr1 = +-- htpy-htpy-out-of-sequential-colimit up-c' +-- ( concat-htpy-cocone-sequential-diagram +-- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c +-- ( pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) +-- ( ( ฮป n โ†’ +-- inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , +-- ( ฮป n x โ†’ +-- ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ +-- horizontal-inv-coherence-square-identifications _ +-- ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) +-- ( coherence-cocone-sequential-diagram c n (pr1 x)) +-- _ +-- ( ( ap +-- ( _โˆ™ ap pr1 +-- ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) +-- ( ap-comp pr1 +-- ( totฮน') +-- ( coherence-cocone-sequential-diagram c' n x))) โˆ™ +-- ( inv +-- ( ap-concat pr1 +-- ( ap +-- ( totฮน') +-- ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ +-- ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ +-- ( ap-concat pr1 +-- ( pr1 +-- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) +-- n x) +-- ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ +-- ( ap +-- ( ap pr1 +-- ( pr1 +-- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) +-- n x) โˆ™_) +-- ( ap-pr1-eq-pair-ฮฃ +-- ( coherence-cocone-sequential-diagram c n (pr1 x)) +-- ( _))))))) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) +-- (f : hom-sequential-diagram A B) +-- (f' : +-- (x : X) โ†’ P x โ†’ +-- Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) +-- where + +-- open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits + +-- ฮฃAP : sequential-diagram (l1 โŠ” l5) +-- ฮฃAP = +-- total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) + +-- ฮฃBQ : sequential-diagram (l3 โŠ” l6) +-- ฮฃBQ = +-- total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) + +-- private +-- finf : X โ†’ Y +-- finf = (map-sequential-colimit-hom-sequential-diagram up-c c' f) + +-- totff' : hom-sequential-diagram ฮฃAP ฮฃBQ +-- pr1 totff' n = +-- map-ฮฃ _ +-- ( map-hom-sequential-diagram B f n) +-- ( ฮป a โ†’ +-- tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) โˆ˜ +-- f' (map-cocone-sequential-diagram c n a)) +-- pr2 totff' n (a , p) = +-- eq-pair-ฮฃ +-- ( naturality-map-hom-sequential-diagram B f n a) +-- ((pasting-vertical-coherence-square-maps +-- ( tr P (coherence-cocone-sequential-diagram c n a)) +-- ( f' _) +-- ( f' _) +-- ( tr Q (ap finf (coherence-cocone-sequential-diagram c n a))) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) +-- ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) +-- ( ฮป q โ†’ +-- substitution-law-tr Q finf (coherence-cocone-sequential-diagram c n a) โˆ™ +-- inv (preserves-tr f' (coherence-cocone-sequential-diagram c n a) q)) +-- ( ( inv-htpy +-- ( ฮป q โ†’ +-- ( tr-concat +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( _) +-- ( q)) โˆ™ +-- ( tr-concat +-- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( q))) โˆ™ +-- ( substitution-law-tr Q +-- ( map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h +-- ( ฮป q โ†’ +-- ap +-- ( ฮป p โ†’ tr Q p q) +-- ( inv +-- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h +-- ( tr-concat +-- ( ap finf (coherence-cocone-sequential-diagram c n a)) +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a))))) p) + + +-- totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q +-- totff'โˆž = +-- map-sequential-colimit-hom-sequential-diagram +-- ( flattening-lemma-sequential-colimit _ P up-c) +-- ( total-cocone-family-cocone-sequential-diagram c' Q) +-- ( totff') + +-- pr1Aโˆ™ : hom-sequential-diagram ฮฃAP A +-- pr1Aโˆ™ = +-- pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-cocone c P) +-- pr1Bโˆ™ : hom-sequential-diagram ฮฃBQ B +-- pr1Bโˆ™ = +-- pr1-total-sequential-diagram +-- ( dependent-sequential-diagram-family-cocone c' Q) + +-- pr1โˆ˜totff' : hom-sequential-diagram ฮฃAP B +-- pr1โˆ˜totff' = comp-hom-sequential-diagram ฮฃAP ฮฃBQ B pr1Bโˆ™ totff' +-- fโˆ˜pr1 : hom-sequential-diagram ฮฃAP B +-- fโˆ˜pr1 = comp-hom-sequential-diagram ฮฃAP A B f pr1Aโˆ™ + +-- pr1cohโˆ™ : htpy-hom-sequential-diagram B fโˆ˜pr1 pr1โˆ˜totff' +-- pr1 pr1cohโˆ™ n = +-- refl-htpy +-- pr2 pr1cohโˆ™ n = +-- right-unit-htpy โˆ™h +-- right-unit-htpy โˆ™h +-- ( ฮป x โ†’ +-- inv +-- ( ap-pr1-eq-pair-ฮฃ +-- ( naturality-map-hom-sequential-diagram B f n (pr1 x)) +-- ( _))) + +-- module _ +-- (sA : +-- section-descent-data-sequential-colimit +-- ( descent-data-family-cocone-sequential-diagram c P)) +-- (sB : +-- section-descent-data-sequential-colimit +-- ( descent-data-family-cocone-sequential-diagram c' Q)) +-- where +-- open import foundation.sections + +-- -- vertical maps, the "sides" of the cubes +-- sAโˆ™ : hom-sequential-diagram A ฮฃAP +-- pr1 sAโˆ™ n = map-section-family (pr1 sA n) +-- pr2 sAโˆ™ n a = eq-pair-eq-fiber (pr2 sA n a) +-- sBโˆ™ : hom-sequential-diagram B ฮฃBQ +-- pr1 sBโˆ™ n = map-section-family (pr1 sB n) +-- pr2 sBโˆ™ n b = eq-pair-eq-fiber (pr2 sB n b) +-- totff'โˆ˜sAโˆ™ : hom-sequential-diagram A ฮฃBQ +-- totff'โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP ฮฃBQ totff' sAโˆ™ +-- sBโˆ™โˆ˜f : hom-sequential-diagram A ฮฃBQ +-- sBโˆ™โˆ˜f = comp-hom-sequential-diagram A B ฮฃBQ sBโˆ™ f +-- -- the unaligned cubes +-- Hโˆ™ : +-- htpy-hom-sequential-diagram ฮฃBQ totff'โˆ˜sAโˆ™ sBโˆ™โˆ˜f +-- pr1 Hโˆ™ n a = eq-pair-eq-fiber {!!} +-- pr2 Hโˆ™ = {!!} + +-- pr1โˆ™โˆ˜sAโˆ™ : hom-sequential-diagram A A +-- pr1โˆ™โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP A pr1Aโˆ™ sAโˆ™ + +-- idAโˆ™ : hom-sequential-diagram A A +-- idAโˆ™ = id-hom-sequential-diagram A +-- idBโˆ™ : hom-sequential-diagram B B +-- idBโˆ™ = id-hom-sequential-diagram B +-- fโˆ˜idAโˆ™ : hom-sequential-diagram A B +-- fโˆ˜idAโˆ™ = comp-hom-sequential-diagram A A B f idAโˆ™ +-- idBโˆ™โˆ˜f : hom-sequential-diagram A B +-- idBโˆ™โˆ˜f = comp-hom-sequential-diagram A B B idBโˆ™ f +-- reflโˆ™ : htpy-hom-sequential-diagram B fโˆ˜idAโˆ™ idBโˆ™โˆ˜f +-- pr1 reflโˆ™ = ev-pair refl-htpy +-- pr2 reflโˆ™ n a = +-- right-unit โˆ™ +-- right-unit โˆ™ +-- inv (ap-id (naturality-map-hom-sequential-diagram B f n a)) +-- -- the alignment: postcomposing Hโˆ™ with pr1cohโˆ™ is homotopic with id +-- โ„‹ : +-- {!htpyยฒ-hom-sequential-diagram!} +-- โ„‹ = {!!} + +-- _ : +-- totฮน' up-c +-- ( family-with-descent-data-family-cocone-sequential-diagram c P) +-- ( flattening-lemma-sequential-colimit c P up-c) ~ +-- id +-- _ = +-- compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit _ P up-c) + +-- _ : +-- coherence-square-maps +-- ( totฮน' up-c +-- ( family-with-descent-data-family-cocone-sequential-diagram c P) +-- ( flattening-lemma-sequential-colimit c P up-c)) +-- ( totff'โˆž) +-- ( map-ฮฃ Q +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- f') +-- ( totฮน' up-c' +-- ( family-with-descent-data-family-cocone-sequential-diagram c' Q) +-- ( flattening-lemma-sequential-colimit c' Q up-c')) +-- _ = +-- ( compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h +-- ( htpy-htpy-out-of-sequential-colimit +-- ( flattening-lemma-sequential-colimit c P up-c) +-- ( concat-htpy-cocone-sequential-diagram +-- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- ( flattening-lemma-sequential-colimit c P up-c) +-- ( total-cocone-family-cocone-sequential-diagram c' Q) +-- ( totff')) +-- ( ( ฮป n (a , p) โ†’ +-- inv +-- ( eq-pair-ฮฃ +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' +-- ( f) +-- ( n) +-- ( a)) +-- refl)) , +-- {!!}))) โˆ™h +-- ( _ ยทl +-- ( inv-htpy +-- (compute-map-universal-property-sequential-colimit-id +-- ( flattening-lemma-sequential-colimit c P up-c)))) + +-- -- htpy-htpy-out-of-sequential-colimit +-- -- ( flattening-lemma-sequential-colimit c P up-c) +-- -- ( {!!}) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (f : hom-sequential-diagram A B) +-- where +-- open import foundation.homotopies-morphisms-arrows + +-- interm : +-- coherence-square-maps +-- ( id) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( id) +-- interm = +-- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' +-- ( refl-htpy-hom-sequential-diagram A B f) + +-- preserves-refl-htpy-sequential-colimit : +-- htpy-hom-arrow +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) +-- ( id , id , interm) +-- ( id , id , refl-htpy) +-- pr1 preserves-refl-htpy-sequential-colimit = refl-htpy +-- pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy +-- pr2 (pr2 preserves-refl-htpy-sequential-colimit) = +-- right-unit-htpy โˆ™h +-- htpy-eq +-- ( ap +-- ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) +-- ( is-retraction-map-inv-equiv +-- ( extensionality-hom-sequential-diagram A B f f) +-- ( refl))) +-- ``` + +-- ```agda +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : sequential-diagram l1} +-- (B : sequential-diagram l2) +-- (f : hom-sequential-diagram A B) +-- (P : descent-data-sequential-colimit A l3) +-- (Q : descent-data-sequential-colimit B l4) +-- where + +-- hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) +-- hom-over-hom = +-- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ +-- family-descent-data-sequential-colimit P n a โ†’ +-- family-descent-data-sequential-colimit Q n +-- ( map-hom-sequential-diagram B f n a)) +-- ( ฮป f'n โ†’ +-- (n : โ„•) โ†’ +-- square-over +-- { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} +-- ( map-sequential-diagram A n) +-- ( map-hom-sequential-diagram B f n) +-- ( map-hom-sequential-diagram B f (succ-โ„• n)) +-- ( map-sequential-diagram B n) +-- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) +-- ( ฮป {a} โ†’ f'n n a) +-- ( ฮป {a} โ†’ f'n (succ-โ„• n) a) +-- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) +-- ( naturality-map-hom-sequential-diagram B f n)) +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : sequential-diagram l1} {X : UU l2} +-- {c : cocone-sequential-diagram A X} +-- (up-c : universal-property-sequential-colimit c) +-- {B : sequential-diagram l3} {Y : UU l4} +-- {c' : cocone-sequential-diagram B Y} +-- (up-c' : universal-property-sequential-colimit c') +-- (f : hom-sequential-diagram A B) +-- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) +-- where + +-- private +-- fโˆž : X โ†’ Y +-- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f +-- DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) +-- pr1 DDMO n a = +-- P (map-cocone-sequential-diagram c n a) โ†’ +-- Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- pr2 DDMO n a = +-- ( equiv-postcomp _ +-- ( ( equiv-tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e +-- ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e +-- ( equiv-precomp +-- ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) +-- ( _)) + +-- sect-over-DDMO-map-over : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- section-descent-data-sequential-colimit DDMO +-- pr1 (sect-over-DDMO-map-over fโˆž') n a = +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ +-- ( fโˆž' (map-cocone-sequential-diagram c n a)) +-- pr2 (sect-over-DDMO-map-over fโˆž') n a = +-- eq-htpy +-- ( ฮป p โ†’ +-- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) + +-- sect-over-DDMO-map-over' : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- section-descent-data-sequential-colimit DDMO +-- sect-over-DDMO-map-over' = +-- {!sect-family-sect-dd-sequential-colimit!} + +-- map-over-sect-DDMO : +-- section-descent-data-sequential-colimit DDMO โ†’ +-- hom-over-hom B f +-- ( descent-data-family-cocone-sequential-diagram c P) +-- ( descent-data-family-cocone-sequential-diagram c' Q) +-- map-over-sect-DDMO = +-- tot +-- ( ฮป s โ†’ +-- map-ฮ  +-- ( ฮป n โ†’ +-- ( map-implicit-ฮ  +-- ( ฮป a โ†’ +-- ( concat-htpy +-- ( inv-htpy +-- ( ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q +-- ( coherence-cocone-sequential-diagram c' n +-- (map-hom-sequential-diagram B f n a))) โˆ˜ +-- ( s n a)) ยทl +-- ( is-retraction-inv-tr P +-- ( coherence-cocone-sequential-diagram c n a)))) +-- ( _)) โˆ˜ +-- ( map-equiv +-- ( equiv-htpy-precomp-htpy-ฮ  _ _ +-- ( equiv-tr P +-- ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ +-- ( htpy-eq +-- {f = +-- ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q +-- ( coherence-cocone-sequential-diagram c' n +-- ( map-hom-sequential-diagram B f n a))) โˆ˜ +-- ( s n a) โˆ˜ +-- ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} +-- { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ +-- ( implicit-explicit-ฮ ))) + +-- map-over-diagram-map-over-colimit : +-- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ +-- hom-over-hom B f +-- ( descent-data-family-cocone-sequential-diagram c P) +-- ( descent-data-family-cocone-sequential-diagram c' Q) +-- pr1 (map-over-diagram-map-over-colimit fโˆž') n a = +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ +-- ( fโˆž' (map-cocone-sequential-diagram c n a)) +-- pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = +-- pasting-vertical-coherence-square-maps +-- ( tr P (coherence-cocone-sequential-diagram c n a)) +-- ( fโˆž' _) +-- ( fโˆž' _) +-- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) +-- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) +-- ( ( tr +-- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ +-- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) +-- ( ฮป q โ†’ +-- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ +-- inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) +-- ( ( inv-htpy +-- ( ฮป q โ†’ +-- ( tr-concat +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( _) +-- ( q)) โˆ™ +-- ( tr-concat +-- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) +-- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) +-- ( tr Q +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f n a) +-- ( q))) โˆ™ +-- ( substitution-law-tr Q +-- ( map-cocone-sequential-diagram c' (succ-โ„• n)) +-- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h +-- ( ฮป q โ†’ +-- ap +-- ( ฮป p โ†’ tr Q p q) +-- ( inv +-- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h +-- ( tr-concat +-- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) +-- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram +-- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) + +-- abstract +-- triangle-map-over-sect-DDMO : +-- coherence-triangle-maps +-- ( map-over-diagram-map-over-colimit) +-- ( map-over-sect-DDMO) +-- ( sect-over-DDMO-map-over) +-- triangle-map-over-sect-DDMO fโˆž' = +-- eq-pair-eq-fiber +-- ( eq-htpy +-- ( ฮป n โ†’ +-- eq-htpy-implicit +-- ( ฮป a โ†’ +-- eq-htpy +-- ( ฮป p โ†’ +-- {!!})))) + +-- is-equiv-map-over-sect-DDMO : +-- is-equiv map-over-sect-DDMO +-- is-equiv-map-over-sect-DDMO = +-- is-equiv-tot-is-fiberwise-equiv +-- ( ฮป s โ†’ +-- is-equiv-map-ฮ -is-fiberwise-equiv +-- ( ฮป n โ†’ +-- is-equiv-comp _ _ +-- ( is-equiv-implicit-explicit-ฮ ) +-- ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv +-- ( ฮป a โ†’ +-- is-equiv-comp _ _ +-- ( funext _ _) +-- ( is-equiv-comp _ _ +-- ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) +-- ( is-equiv-concat-htpy _ _)))))) + +-- is-equiv-map-over-diagram-map-over-colimit : +-- is-equiv map-over-diagram-map-over-colimit +-- is-equiv-map-over-diagram-map-over-colimit = +-- {!is-equiv-left-map-triangle +-- ( map-over-diagram-map-over-colimit) +-- ( map-over-sect-DDMO) +-- ( sect-over-DDMO-map-over) +-- ( triangle-map-over-sect-DDMO) +-- ( is-equiv) !} +-- ``` + +NB: apd sBโˆž (Cn n a) โ‰  apd sBโˆž (ฮบ n a)!!! + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + + unap-square' : + {x y : A} (p : x ๏ผ y) โ†’ + (is-retraction-map-inv-equiv e x) โˆ™ map-equiv (inv-equiv-ap-emb (emb-equiv e)) (ap (map-equiv e) p) ๏ผ + ap (map-inv-equiv e) (ap (map-equiv e) p) โˆ™ is-retraction-map-inv-equiv e y + unap-square' {x} {y} p = + ap + ( is-retraction-map-inv-equiv e x โˆ™_) + ( is-retraction-map-inv-equiv (equiv-ap e x y) p โˆ™ inv (ap-id p)) โˆ™ + nat-htpy + ( is-retraction-map-inv-equiv e) + ( p) โˆ™ + ap + ( _โˆ™ is-retraction-map-inv-equiv e y) + ( ap-comp (map-inv-equiv e) (map-equiv e) p) + + unap-square : + {x y : A} (p : map-equiv e x ๏ผ map-equiv e y) โ†’ + is-retraction-map-inv-equiv e x โˆ™ map-equiv (inv-equiv-ap-emb (emb-equiv e)) p ๏ผ + ap (map-inv-equiv e) p โˆ™ is-retraction-map-inv-equiv e y + unap-square {x} {y} p = + ap + ( ฮป p โ†’ + is-retraction-map-inv-equiv e x โˆ™ + map-equiv (inv-equiv-ap-emb (emb-equiv e)) p) + ( inv (is-section-map-inv-equiv (equiv-ap e x y) p)) โˆ™ + unap-square' + ( map-equiv (inv-equiv-ap-emb (emb-equiv e)) p) โˆ™ + ap + ( ฮป p โ†’ + ap (map-inv-equiv e) p โˆ™ + is-retraction-map-inv-equiv e y) + ( is-section-map-inv-equiv (equiv-ap e x y) p) +``` From 00dc1731bc836d6007adfd28dc81e01de47155bc Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 5 Mar 2025 20:24:13 +0100 Subject: [PATCH 24/33] Flipping homs of vertical arrows --- .../functoriality-stuff.lagda.md | 461 ++++++++++++++++-- 1 file changed, 408 insertions(+), 53 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 56975dc874..1d25dbd245 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -426,6 +426,281 @@ module _ map-equiv (equiv-htpy-section-out-of-sequential-colimit s t) ``` +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} + (s : (a : A) โ†’ B a) (t : (a : A) โ†’ C a) + (e : (a : A) โ†’ B a โ‰ƒ C a) + (H : (a : A) โ†’ map-equiv (e a) (s a) ๏ผ t a) + where + open import foundation.action-on-identifications-binary-functions + + invert-fiberwise-triangle : (a : A) โ†’ s a ๏ผ map-inv-equiv (e a) (t a) + invert-fiberwise-triangle a = + inv (is-retraction-map-inv-equiv (e a) (s a)) โˆ™ + ap (map-inv-equiv (e a)) (H a) + + invert-fiberwise-triangle' : (a : A) โ†’ map-inv-equiv (e a) (t a) ๏ผ s a + invert-fiberwise-triangle' a = + ap (map-inv-equiv (e a)) (inv (H a)) โˆ™ + is-retraction-map-inv-equiv (e a) (s a) + + compute-inv-invert-fiberwise-triangle : + (a : A) โ†’ + inv (invert-fiberwise-triangle a) ๏ผ + invert-fiberwise-triangle' a + compute-inv-invert-fiberwise-triangle a = + distributive-inv-concat + ( inv (is-retraction-map-inv-equiv (e a) (s a))) + ( ap (map-inv-equiv (e a)) (H a)) โˆ™ + ap-binary (_โˆ™_) + ( inv (ap-inv (map-inv-equiv (e a)) (H a))) + ( inv-inv (is-retraction-map-inv-equiv (e a) (s a))) + + compute-inv-invert-fiberwise-triangle' : + (a : A) โ†’ + inv (invert-fiberwise-triangle' a) ๏ผ + invert-fiberwise-triangle a + compute-inv-invert-fiberwise-triangle' a = + distributive-inv-concat + ( ap (map-inv-equiv (e a)) (inv (H a))) + ( is-retraction-map-inv-equiv (e a) (s a)) โˆ™ + ap + ( inv (is-retraction-map-inv-equiv (e a) (s a)) โˆ™_) + ( ap inv (ap-inv (map-inv-equiv (e a)) (H a)) โˆ™ inv-inv _) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} {P' : A โ†’ UU l5} {Q' : B โ†’ UU l6} + (f : A โ†’ B) + (s : (a : A) โ†’ P a) (t : (b : B) โ†’ Q b) + (s' : (a : A) โ†’ P' a) (t' : (b : B) โ†’ Q' b) + (f' : {a : A} โ†’ P a โ†’ Q (f a)) + (f'' : {a : A} โ†’ P' a โ†’ Q' (f a)) + (e : {a : A} โ†’ P a โ‰ƒ P' a) + (let g = ฮป {a} โ†’ map-equiv (e {a})) + (let inv-g = ฮป {a} โ†’ map-inv-equiv (e {a})) + (j : {b : B} โ†’ Q b โ‰ƒ Q' b) + (let h = ฮป {b} โ†’ map-equiv (j {b})) + (let inv-h = ฮป {b} โ†’ map-inv-equiv (j {b})) + (T : (a : A) โ†’ f' (s a) ๏ผ t (f a)) + (G : {a : A} (p : P a) โ†’ f'' (g p) ๏ผ h (f' p)) + (let + inv-G = + ฮป {a} (p : P' a) โ†’ + vertical-inv-equiv-coherence-square-maps f' e j f'' G p) + (F : (b : B) โ†’ h (t b) ๏ผ t' b) + (let inv-F = invert-fiberwise-triangle t t' (ฮป b โ†’ j {b}) F) + (let inv-F' = invert-fiberwise-triangle' t t' (ฮป b โ†’ j {b}) F) + (H : (a : A) โ†’ g (s a) ๏ผ s' a) + (let inv-H = invert-fiberwise-triangle s s' (ฮป a โ†’ e {a}) H) + -- (X : (a : A) โ†’ f'' (g (s a)) ๏ผ t' (f a)) + (X : (a : A) โ†’ f'' (s' a) ๏ผ t' (f a)) + -- (ฮฑ : (a : A) โ†’ G (s a) โˆ™ (ap h (T a) โˆ™ F (f a)) ๏ผ X a) + (ฮฑ : (a : A) โ†’ G (s a) โˆ™ (ap h (T a) โˆ™ F (f a)) ๏ผ ap f'' (H a) โˆ™ X a) + where + + opaque + transpose-sq : + (a : A) โ†’ + T a โˆ™ inv-F (f a) ๏ผ + ap f' (inv-H a) โˆ™ + ( inv-G (s' a) โˆ™ + ap inv-h (X a)) + transpose-sq a = + ap + ( T a โˆ™_) + ( inv (compute-inv-invert-fiberwise-triangle' t t' (ฮป b โ†’ j {b}) F (f a))) โˆ™ + right-transpose-eq-concat' + ( T a) + ( _) + ( inv-F' (f a)) + ( [g]) + where + [i] : + ap f' (is-retraction-map-inv-equiv e (s a)) ๏ผ + ( pasting-vertical-coherence-square-maps f' g h f'' inv-g inv-h f' + G inv-G (s a) โˆ™ + is-retraction-map-inv-equiv j (f' (s a))) + [i] = + inv right-unit โˆ™ + left-inverse-law-pasting-vertical-coherence-square-maps f' e j f'' G (s a) + [a] : + ap inv-h (G (s a) โˆ™ (ap h (T a) โˆ™ F (f a))) ๏ผ + ap inv-h (ap f'' (H a) โˆ™ X a) + [a] = ap (ap inv-h) (ฮฑ a) + [b] : ap inv-h (G (s a)) โˆ™ + ap inv-h (ap h (T a) โˆ™ F (f a)) ๏ผ + ap inv-h (ap f'' (H a) โˆ™ X a) + [b] = inv (ap-concat inv-h (G (s a)) (ap h (T a) โˆ™ F (f a))) โˆ™ [a] + [c] : + ap inv-h (G (s a)) โˆ™ + ( ap (inv-h โˆ˜ h) (T a) โˆ™ ap inv-h (F (f a))) ๏ผ + ap inv-h (ap f'' (H a) โˆ™ X a) + [c] = + ap + ( ap inv-h (G (s a)) โˆ™_) + ( ap (_โˆ™ ap inv-h (F (f a))) (ap-comp inv-h h (T a)) โˆ™ + inv (ap-concat inv-h (ap h (T a)) (F (f a)))) โˆ™ + [b] + [d] : + pasting-vertical-coherence-square-maps f' g h f'' inv-g inv-h f' G inv-G (s a) โˆ™ + ( ap (inv-h โˆ˜ h) (T a) โˆ™ ap inv-h (F (f a))) ๏ผ + inv-G (g (s a)) โˆ™ ap inv-h (ap f'' (H a) โˆ™ X a) + [d] = assoc _ _ _ โˆ™ ap (inv-G (g (s a)) โˆ™_) [c] + [f'] : + inv-G (g (s a)) โˆ™ + ap inv-h (ap f'' (H a)) ๏ผ + ap f' (ap inv-g (H a)) โˆ™ + inv-G (s' a) + [f'] = + nat-coherence-square-maps f'' inv-g inv-h f' inv-G (H a) + [e] : + ap f' (is-retraction-map-inv-equiv e (s a)) ๏ผ + ap f' (ap inv-g (H a)) โˆ™ + inv-G (s' a) โˆ™ + ap inv-h (X a) โˆ™ + ap inv-h (inv (F (f a))) โˆ™ + inv (ap (inv-h โˆ˜ h) (T a)) โˆ™ + is-retraction-map-inv-equiv j (f' (s a)) + [e] = + [i] โˆ™ + ap + ( _โˆ™ is-retraction-map-inv-equiv j (f' (s a))) + ( right-transpose-eq-concat _ _ _ [d] โˆ™ + ( ( ap + ( _ โˆ™_) + ( ( distributive-inv-concat + ( ap (inv-h โˆ˜ h) (T a)) + ( ap inv-h (F (f a)))) โˆ™ + ( ap (_โˆ™ _) (inv (ap-inv inv-h (F (f a))))))) โˆ™ + ( inv (assoc _ _ _)) โˆ™ + ( ap + ( ฮป p โ†’ p โˆ™ _ โˆ™ _) + ( ap (_ โˆ™_) (ap-concat inv-h (ap f'' (H a)) (X a)) โˆ™ + inv (assoc _ _ _) โˆ™ + ap (_โˆ™ ap inv-h (X a)) [f'])))) + [f] : + inv (ap (inv-h โˆ˜ h) (T a)) โˆ™ + is-retraction-map-inv-equiv j (f' (s a)) ๏ผ + is-retraction-map-inv-equiv j (t (f a)) โˆ™ inv (T a) + [f] = + inv + ( nat-htpy (is-retraction-map-inv-equiv j) (inv (T a)) โˆ™ + ap (_โˆ™ is-retraction-map-inv-equiv j (f' (s a))) (ap-inv (inv-h โˆ˜ h) (T a))) โˆ™ + ap + ( is-retraction-map-inv-equiv j (t (f a)) โˆ™_) + ( ap-id (inv (T a))) + open import foundation.commuting-squares-of-identifications + open import foundation.commuting-triangles-of-identifications + [g] : + T a ๏ผ + ap f' (inv-H a) โˆ™ + ( inv-G (s' a) โˆ™ + ap inv-h (X a)) โˆ™ + inv-F' (f a) + [g] = + left-transpose-eq-concat _ _ _ + ( inv-right-transpose-eq-concat _ _ _ + ( [e] โˆ™ + left-whisker-concat-coherence-square-identifications + ( ap f' (ap inv-g (H a)) โˆ™ inv-G (s' a) โˆ™ ap inv-h (X a) โˆ™ ap inv-h (inv (F (f a)))) + ( is-retraction-map-inv-equiv j (t (f a))) + ( inv (ap (inv-h โˆ˜ h) (T a))) + ( inv (T a)) + ( is-retraction-map-inv-equiv j (f' (s a))) + ( [f]))) โˆ™ + ap + ( _โˆ™ (ap f' (ap inv-g (H a)) โˆ™ _ โˆ™ _ โˆ™ _ โˆ™ _)) + ( inv (ap-inv f' (is-retraction-map-inv-equiv e (s a)))) โˆ™ + inv (assoc _ _ _) โˆ™ + ap + (_โˆ™ is-retraction-map-inv-equiv j (t (f a))) + ( inv (assoc _ _ _)) โˆ™ + assoc _ _ _ โˆ™ + ap + ( _โˆ™ inv-F' (f a)) + ( inv (assoc _ _ _) โˆ™ + ap + ( _โˆ™ ap inv-h (X a)) + ( right-whisker-concat-coherence-triangle-identifications' + ( ap f' (inv-H a)) + ( ap f' (ap inv-g (H a))) + ( ap f' (inv (is-retraction-map-inv-equiv e (s a)))) + ( inv-G (s' a)) + ( inv (ap-concat f' _ _))) โˆ™ + assoc _ _ _) + +module _ + {l1 l2 l3 l4 l5 l6 l7 l8 : Level} + {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} + {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} + (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) + (g1' : {p : P1} โ†’ Q1 p โ†’ Q3 (g1 p)) + (e1' : (p : P1) โ†’ Q1 p โ‰ƒ Q2 (f1 p)) + (let f1' = ฮป {p} โ†’ map-equiv (e1' p)) + (let inv-f1' = ฮป {p} โ†’ map-inv-equiv (e1' p)) + (e2' : (p : P3) โ†’ Q3 p โ‰ƒ Q4 (f2 p)) + (let f2' = ฮป {p} โ†’ map-equiv (e2' p)) + (let inv-f2' = ฮป {p} โ†’ map-inv-equiv (e2' p)) + (g2' : {p : P2} โ†’ Q2 p โ†’ Q4 (g2 p)) + (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) (s3 : (p : P3) โ†’ Q3 p) + (s4 : (p : P4) โ†’ Q4 p) + (G1 : (p : P1) โ†’ g1' (s1 p) ๏ผ s3 (g1 p)) + (F1 : (p : P1) โ†’ f1' (s1 p) ๏ผ s2 (f1 p)) + (F2 : (p : P3) โ†’ f2' (s3 p) ๏ผ s4 (f2 p)) + (G2 : (p : P2) โ†’ g2' (s2 p) ๏ผ s4 (g2 p)) + (H : coherence-square-maps g1 f1 f2 g2) + (H' : square-over {Q4 = Q4} _ _ _ _ g1' f1' f2' g2' H) + where + + opaque + -- good luck if you ever need to unfold this... + flop-section : + section-square-over {Q4 = Q4} + _ _ _ _ g1' f1' f2' g2' + _ _ _ s4 G1 F1 F2 G2 + H H' โ†’ + (p : P1) โ†’ + G1 p โˆ™ invert-fiberwise-triangle s3 (s4 โˆ˜ f2) e2' F2 (g1 p) ๏ผ + ap g1' (invert-fiberwise-triangle s1 (s2 โˆ˜ f1) e1' F1 p) โˆ™ + vertical-inv-equiv-coherence-square-maps g1' (e1' p) (e2' (g1 p)) (tr Q4 (H p) โˆ˜ g2') H' (s2 (f1 p)) โˆ™ + ap (inv-f2' โˆ˜ tr Q4 (H p)) (G2 (f1 p)) โˆ™ + ap inv-f2' (apd s4 (H p)) + flop-section ฮฑ p = + [i] p โˆ™ + left-whisker-concat-coherence-triangle-identifications + ( _) + ( ap inv-f2' (ap (tr Q4 (H p)) (G2 (f1 p)) โˆ™ apd s4 (H p))) + ( ap inv-f2' (apd s4 (H p))) + ( ap (inv-f2' โˆ˜ tr Q4 (H p)) (G2 (f1 p))) + ( ap-concat inv-f2' _ (apd s4 (H p)) โˆ™ + ap (_โˆ™ _) (inv (ap-comp inv-f2' (tr Q4 (H p)) (G2 (f1 p))))) + where + open import foundation.commuting-triangles-of-identifications + [i] : (a : P1) โ†’ + G1 a โˆ™ + invert-fiberwise-triangle s3 (s4 โˆ˜ f2) (ฮป b โ†’ e2' b) F2 (g1 a) + ๏ผ + ap g1' + (invert-fiberwise-triangle s1 (s2 โˆ˜ f1) (ฮป aโ‚ โ†’ e1' aโ‚) F1 a) + โˆ™ + vertical-inv-equiv-coherence-square-maps g1' (e1' a) (e2' (g1 a)) + (tr Q4 (H a) โˆ˜ g2') H' ((s2 โˆ˜ f1) a) + โˆ™ + ap (map-inv-equiv (e2' (g1 a))) + (ap (tr Q4 (H a)) (G2 (f1 a)) โˆ™ apd s4 (H a)) + [i] = + transpose-sq g1 s1 s3 (s2 โˆ˜ f1) (s4 โˆ˜ f2) g1' (ฮป {a} โ†’ tr Q4 (H a) โˆ˜ g2') + ( e1' _) (e2' _) G1 H' F2 F1 + (ฮป p โ†’ ap (tr Q4 (H p)) (G2 (f1 p)) โˆ™ apd s4 (H p)) + (inv-htpy-assoc-htpy _ _ _ โˆ™h ฮฑ โˆ™h assoc-htpy _ _ _) โˆ™h + inv-htpy-assoc-htpy _ _ _ +``` + ```agda module _ {l1 l2 l3 l4 l5 : Level} @@ -442,50 +717,49 @@ module _ (let P = Q โˆ˜ fโˆž) (let P' = descent-data-family-cocone-sequential-diagram c P) (let C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let fโˆžn = ฮป n a โ†’ tr Q (C n a)) (s : section-descent-data-sequential-colimit Q') (let sโˆž = sect-family-sect-dd-sequential-colimit up-c' Q s) - -- remove later - (t : section-descent-data-sequential-colimit P') - (let tโˆž = sect-family-sect-dd-sequential-colimit up-c P t) where private - ฮณ : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - coherence-square-maps - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( tr Q (C n a)) - ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ฮณ n a q = - inv - ( ( tr-concat - ( C n a) - ( _) - ( q)) โˆ™ - ( tr-concat - ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) - ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) _) - ( _)) โˆ™ - ( substitution-law-tr Q - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a))) โˆ™ - ap - ( ฮป p โ†’ tr Q p q) - ( inv - ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ - tr-concat - ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) - ( C (succ-โ„• n) (map-sequential-diagram A n a)) - ( q) โˆ™ - ap - ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + abstract + ฮณ : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( fโˆžn n a) + ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ n a q = + inv + ( ( tr-concat + ( C n a) + ( _) + ( q)) โˆ™ + ( tr-concat + ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) + ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) _) + ( _)) โˆ™ + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) โˆ™ + ap + ( ฮป p โ†’ tr Q p q) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ + tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a)) + ( q) โˆ™ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) ฮณ-flip : (n : โ„•) (a : family-sequential-diagram A n) โ†’ @@ -515,11 +789,10 @@ module _ comp-over-diagram : section-descent-data-sequential-colimit ( descent-data-family-cocone-sequential-diagram c (Q โˆ˜ fโˆž)) - pr1 comp-over-diagram n a = - tr Q - ( inv (C n a)) - ( map-section-dependent-sequential-diagram _ _ s n - (map-hom-sequential-diagram B f n a)) + pr1 comp-over-diagram n = + tr Q (inv (C n _)) โˆ˜ + map-section-dependent-sequential-diagram _ _ s n โˆ˜ + map-hom-sequential-diagram B f n pr2 comp-over-diagram n a = ( ฮณ-flip n a ( map-section-dependent-sequential-diagram _ _ s n @@ -563,14 +836,96 @@ module _ ( lemma-1-2) ( inv-htpy-dependent-cocone-sequential-diagram P lemma-1-1)) - -- needs work, needs another input - lemma-2 : htpy-section-dependent-sequential-diagram t comp-over-diagram - pr1 lemma-2 = {!!} - pr2 lemma-2 = {!!} - - theorem : tโˆž ~ sโˆž โˆ˜ fโˆž - theorem = - htpy-colimit-htpy-diagram-section up-c P t comp-over-diagram lemma-2 โˆ™h - inv-htpy lemma-1 + module _ + (t : section-descent-data-sequential-colimit P') + (let tโˆž = sect-family-sect-dd-sequential-colimit up-c P t) + (F : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + fโˆžn n a (map-section-dependent-sequential-diagram _ _ t n a) ๏ผ + map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)) + (cubes : + (n : โ„•) โ†’ + section-square-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( ฮป {a} โ†’ fโˆžn n a) + ( ฮป {a} โ†’ fโˆžn (succ-โ„• n) a) + ( ฮป {b} โ†’ tr Q (coherence-cocone-sequential-diagram c' n b)) + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s n) + ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ t n) + ( F n) + ( F (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n) + ( naturality-map-hom-sequential-diagram B f n) + ( ฮป {a} โ†’ ฮณ n a)) + where + + lemma-2 : htpy-section-dependent-sequential-diagram t comp-over-diagram + pr1 lemma-2 n = + invert-fiberwise-triangle + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s n โˆ˜ map-hom-sequential-diagram B f n) + ( ฮป a โ†’ equiv-tr Q (C n a)) + ( F n) + pr2 lemma-2 n a = + flop-section + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( ฮป a โ†’ equiv-tr Q (C n a)) + ( ฮป a โ†’ equiv-tr Q (C (succ-โ„• n) a)) + ( ฮป {b} โ†’ tr Q (coherence-cocone-sequential-diagram c' n b)) + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s n) + ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ t n) + ( F n) + ( F (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n) + ( naturality-map-hom-sequential-diagram B f n) + ( ฮป {a} โ†’ ฮณ n a) + ( cubes n) + ( a) โˆ™ + assoc _ _ _ โˆ™ + ap + ( ap + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( pr1 lemma-2 n a) โˆ™ + ฮณ-flip n a (map-section-dependent-sequential-diagram _ _ s n (map-hom-sequential-diagram B f n a)) โˆ™_) + ( ( ap + ( _โˆ™ + ap + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( apd + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( ap-comp + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)))) โˆ™ + inv + ( ( ap-concat + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( _) + ( _)))) โˆ™ + assoc _ _ _ + + theorem : tโˆž ~ sโˆž โˆ˜ fโˆž + theorem = + htpy-colimit-htpy-diagram-section up-c P t comp-over-diagram lemma-2 โˆ™h + inv-htpy lemma-1 ``` From 8ae8d7bd2502154fbc0c99c7fb5500445075e3da Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 6 Mar 2025 18:15:49 +0100 Subject: [PATCH 25/33] One goal down, another to go --- .../functoriality-stuff.lagda.md | 240 +++++++++++------- 1 file changed, 155 insertions(+), 85 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 1d25dbd245..fe2296c1b6 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -55,6 +55,7 @@ open import foundation.fundamental-theorem-of-identity-types open import foundation.homotopy-induction open import foundation.structure-identity-principle open import foundation.torsorial-type-families +open import foundation.transposition-identifications-along-equivalences ``` @@ -701,6 +702,45 @@ module _ inv-htpy-assoc-htpy _ _ _ ``` +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + (f : (a : A) โ†’ B a) + where + + lemma : + {x y : A} (p : x ๏ผ y) โ†’ + apd f (inv p) ๏ผ inv (map-eq-transpose-equiv (equiv-tr B p) (apd f p)) + lemma refl = inv (ap inv (compute-refl-eq-transpose-equiv (equiv-tr B refl))) +``` + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : B โ†’ UU l3} + (f : A โ†’ B) (s : (b : B) โ†’ C b) + where + + apd-left : + {x y : A} (p : x ๏ผ y) โ†’ + apd (s โˆ˜ f) p ๏ผ inv (substitution-law-tr C f p) โˆ™ apd s (ap f p) + apd-left refl = refl + + apd-left' : + {x y : A} (p : x ๏ผ y) โ†’ + substitution-law-tr C f p โˆ™ apd (s โˆ˜ f) p ๏ผ apd s (ap f p) + apd-left' refl = refl + +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : A โ†’ UU l3} + (s : (a : A) โ†’ B a) (f : {a : A} โ†’ B a โ†’ C a) + where + + apd-right : + {x y : A} (p : x ๏ผ y) โ†’ + apd (f โˆ˜ s) p ๏ผ inv (preserves-tr (ฮป a โ†’ f {a}) p (s x)) โˆ™ ap f (apd s p) + apd-right refl = refl +``` + ```agda module _ {l1 l2 l3 l4 l5 : Level} @@ -710,6 +750,9 @@ module _ {B : sequential-diagram l3} {Y : UU l4} {c' : cocone-sequential-diagram B Y} (up-c' : universal-property-sequential-colimit c') + (let + dup-c' = + dependent-universal-property-universal-property-sequential-colimit _ up-c') (Q : Y โ†’ UU l5) (let Q' = descent-data-family-cocone-sequential-diagram c' Q) (f : hom-sequential-diagram A B) @@ -720,14 +763,20 @@ module _ (let fโˆžn = ฮป n a โ†’ tr Q (C n a)) (s : section-descent-data-sequential-colimit Q') (let sโˆž = sect-family-sect-dd-sequential-colimit up-c' Q s) + (let + ๐’ž = + htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dup-c') + ( s)) + (let C' = htpy-htpy-dependent-cocone-sequential-diagram Q ๐’ž) where private - abstract - ฮณ : + opaque + ฮณ-base : (n : โ„•) (a : family-sequential-diagram A n) โ†’ coherence-square-maps - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) ( fโˆžn n a) ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) ( ( tr @@ -736,7 +785,7 @@ module _ ( tr Q ( coherence-cocone-sequential-diagram c' n ( map-hom-sequential-diagram B f n a)))) - ฮณ n a q = + ฮณ-base n a q = inv ( ( tr-concat ( C n a) @@ -756,35 +805,50 @@ module _ tr-concat ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) ( C (succ-โ„• n) (map-sequential-diagram A n a)) - ( q) โˆ™ + ( q) + + ฮณ : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( fโˆžn n a) + ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ n a q = + ฮณ-base n a q โˆ™ ap ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) - ฮณ-flip : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - coherence-square-maps - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ( tr Q (inv (C n a))) - ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ฮณ-flip n a = - vertical-inv-equiv-coherence-square-maps - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( equiv-tr Q (C n a)) - ( equiv-tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ( ฮณ n a) + ฮณ-flip : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( tr Q (inv (C n a))) + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ฮณ-flip n a = + vertical-inv-equiv-coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( equiv-tr Q (C n a)) + ( equiv-tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( ฮณ n a) comp-over-diagram : section-descent-data-sequential-colimit @@ -825,8 +889,11 @@ module _ ( section-descent-data-section-family-cocone-sequential-colimit c P ( sโˆž โˆ˜ fโˆž)) ( comp-over-diagram) - pr1 lemma-1-2 n a = {!!} - pr2 lemma-1-2 = {!!} + pr1 lemma-1-2 n a = + map-eq-transpose-equiv + ( equiv-tr Q (C n a)) + ( apd sโˆž (C n a) โˆ™ C' n (map-hom-sequential-diagram B f n a)) + pr2 lemma-1-2 n a = {!!} lemma-1 : sโˆž โˆ˜ fโˆž ~ sect-family-sect-dd-sequential-colimit up-c P comp-over-diagram @@ -867,61 +934,64 @@ module _ ( ฮป {a} โ†’ ฮณ n a)) where - lemma-2 : htpy-section-dependent-sequential-diagram t comp-over-diagram - pr1 lemma-2 n = - invert-fiberwise-triangle - ( map-section-dependent-sequential-diagram _ _ t n) - ( map-section-dependent-sequential-diagram _ _ s n โˆ˜ map-hom-sequential-diagram B f n) - ( ฮป a โ†’ equiv-tr Q (C n a)) - ( F n) - pr2 lemma-2 n a = - flop-section - ( map-sequential-diagram A n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-diagram B n) - ( ฮป {a} โ†’ tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( ฮป a โ†’ equiv-tr Q (C n a)) - ( ฮป a โ†’ equiv-tr Q (C (succ-โ„• n) a)) - ( ฮป {b} โ†’ tr Q (coherence-cocone-sequential-diagram c' n b)) - ( map-section-dependent-sequential-diagram _ _ t n) - ( map-section-dependent-sequential-diagram _ _ s n) - ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) - ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram _ _ t n) - ( F n) - ( F (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram _ _ s n) - ( naturality-map-hom-sequential-diagram B f n) - ( ฮป {a} โ†’ ฮณ n a) - ( cubes n) - ( a) โˆ™ - assoc _ _ _ โˆ™ - ap - ( ap - ( tr P (coherence-cocone-sequential-diagram c n a)) - ( pr1 lemma-2 n a) โˆ™ - ฮณ-flip n a (map-section-dependent-sequential-diagram _ _ s n (map-hom-sequential-diagram B f n a)) โˆ™_) - ( ( ap - ( _โˆ™ - ap + opaque + unfolding ฮณ-flip + + lemma-2 : htpy-section-dependent-sequential-diagram t comp-over-diagram + pr1 lemma-2 n = + invert-fiberwise-triangle + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s n โˆ˜ map-hom-sequential-diagram B f n) + ( ฮป a โ†’ equiv-tr Q (C n a)) + ( F n) + pr2 lemma-2 n a = + flop-section + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( ฮป a โ†’ equiv-tr Q (C n a)) + ( ฮป a โ†’ equiv-tr Q (C (succ-โ„• n) a)) + ( ฮป {b} โ†’ tr Q (coherence-cocone-sequential-diagram c' n b)) + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s n) + ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ t n) + ( F n) + ( F (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n) + ( naturality-map-hom-sequential-diagram B f n) + ( ฮป {a} โ†’ ฮณ n a) + ( cubes n) + ( a) โˆ™ + assoc _ _ _ โˆ™ + ap + ( ap + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( pr1 lemma-2 n a) โˆ™ + ฮณ-flip n a (map-section-dependent-sequential-diagram _ _ s n (map-hom-sequential-diagram B f n a)) โˆ™_) + ( ( ap + ( _โˆ™ + ap + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( apd + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( ap-comp ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) - ( apd - ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a))) - ( ap-comp - ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) - ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) - ( naturality-map-section-dependent-sequential-diagram _ _ s n - ( map-hom-sequential-diagram B f n a)))) โˆ™ - inv - ( ( ap-concat - ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) - ( _) - ( _)))) โˆ™ - assoc _ _ _ + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)))) โˆ™ + inv + ( ( ap-concat + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( _) + ( _)))) โˆ™ + assoc _ _ _ theorem : tโˆž ~ sโˆž โˆ˜ fโˆž theorem = From cef8863eeb5742c964fd85f56f8bb6a2b4f346a3 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 12 Mar 2025 22:19:23 +0100 Subject: [PATCH 26/33] Functoriality lemma --- .../transport-along-identifications.lagda.md | 9 + .../families-of-equivalences.lagda.md | 32 + ...functoriality-sequential-colimits.lagda.md | 155 +-- .../functoriality-stuff.lagda.md | 1008 +++++++++++++++-- 4 files changed, 1026 insertions(+), 178 deletions(-) diff --git a/src/foundation-core/transport-along-identifications.lagda.md b/src/foundation-core/transport-along-identifications.lagda.md index 49b511e7e0..1dda4c800f 100644 --- a/src/foundation-core/transport-along-identifications.lagda.md +++ b/src/foundation-core/transport-along-identifications.lagda.md @@ -68,6 +68,15 @@ module _ preserves-tr p x ๏ผ inv (tr-ap id f p x) โˆ™ ap (ฮป q โ†’ tr B q (f i x)) (ap-id p) compute-preserves-tr refl x = refl + +module _ + {l1 l2 : Level} {I : UU l1} {A : I โ†’ UU l2} + where + + compute-preserves-tr-id : + {i j : I} (p : i ๏ผ j) (x : A i) โ†’ + preserves-tr (ฮป i โ†’ id {A = A i}) p x ๏ผ refl + compute-preserves-tr-id refl x = refl ``` ### Substitution law for transport diff --git a/src/foundation/families-of-equivalences.lagda.md b/src/foundation/families-of-equivalences.lagda.md index 3cfded46ff..f9b864e830 100644 --- a/src/foundation/families-of-equivalences.lagda.md +++ b/src/foundation/families-of-equivalences.lagda.md @@ -9,10 +9,13 @@ open import foundation-core.families-of-equivalences public
Imports ```agda +open import foundation.equality-dependent-function-types open import foundation.equivalences +open import foundation.univalence open import foundation.universe-levels open import foundation-core.propositions +open import foundation-core.torsorial-type-families ```
@@ -28,6 +31,19 @@ A **family of equivalences** is a family of [equivalences](foundation-core.equivalences.md). Families of equivalences are also called **fiberwise equivalences**. +## Definitions + +### The family of identity equivalences + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + + id-fam-equiv : fam-equiv B B + id-fam-equiv a = id-equiv +``` + ## Properties ### Being a fiberwise equivalence is a proposition @@ -43,6 +59,22 @@ module _ is-prop-ฮ  (ฮป a โ†’ is-property-is-equiv (f a)) ``` +### TODO + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + + is-torsorial-fam-equiv : is-torsorial (fam-equiv B) + is-torsorial-fam-equiv = + is-torsorial-Eq-ฮ  (ฮป a โ†’ is-torsorial-equiv (B a)) + + is-torsorial-fam-equiv' : is-torsorial (ฮป C โ†’ fam-equiv C B) + is-torsorial-fam-equiv' = + is-torsorial-Eq-ฮ  (ฮป a โ†’ is-torsorial-equiv' (B a)) +``` + ## See also - In diff --git a/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md b/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md index 1279c6f21d..32812f6747 100644 --- a/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-sequential-colimits.lagda.md @@ -146,87 +146,88 @@ module _ ( f : hom-sequential-diagram A B) where - map-sequential-colimit-hom-sequential-diagram : X โ†’ Y - map-sequential-colimit-hom-sequential-diagram = - map-universal-property-sequential-colimit up-c - ( map-cocone-hom-sequential-diagram f c') - - htpy-cocone-map-sequential-colimit-hom-sequential-diagram : - htpy-cocone-sequential-diagram - ( cocone-map-sequential-diagram c - ( map-sequential-colimit-hom-sequential-diagram)) - ( map-cocone-hom-sequential-diagram f c') - htpy-cocone-map-sequential-colimit-hom-sequential-diagram = - htpy-cocone-universal-property-sequential-colimit up-c - ( map-cocone-hom-sequential-diagram f c') - - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : - ( n : โ„•) โ†’ - coherence-square-maps - ( map-hom-sequential-diagram B f n) - ( map-cocone-sequential-diagram c n) - ( map-cocone-sequential-diagram c' n) - ( map-sequential-colimit-hom-sequential-diagram) - htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram = - htpy-htpy-cocone-sequential-diagram - ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram) + opaque + map-sequential-colimit-hom-sequential-diagram : X โ†’ Y + map-sequential-colimit-hom-sequential-diagram = + map-universal-property-sequential-colimit up-c + ( map-cocone-hom-sequential-diagram f c') - coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : - ( n : โ„•) โ†’ - coherence-square-homotopies - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n) - ( ( map-sequential-colimit-hom-sequential-diagram) ยทl - ( coherence-cocone-sequential-diagram c n)) - ( coherence-cocone-sequential-diagram + htpy-cocone-map-sequential-colimit-hom-sequential-diagram : + htpy-cocone-sequential-diagram + ( cocone-map-sequential-diagram c + ( map-sequential-colimit-hom-sequential-diagram)) + ( map-cocone-hom-sequential-diagram f c') + htpy-cocone-map-sequential-colimit-hom-sequential-diagram = + htpy-cocone-universal-property-sequential-colimit up-c ( map-cocone-hom-sequential-diagram f c') - ( n)) - ( ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( succ-โ„• n)) ยทr - ( map-sequential-diagram A n)) - coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram = - coherence-htpy-htpy-cocone-sequential-diagram - htpy-cocone-map-sequential-colimit-hom-sequential-diagram - prism-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : - ( n : โ„•) โ†’ - vertical-coherence-prism-maps - ( map-cocone-sequential-diagram c n) - ( map-cocone-sequential-diagram c (succ-โ„• n)) - ( map-sequential-diagram A n) - ( map-cocone-sequential-diagram c' n) - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( map-sequential-diagram B n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-colimit-hom-sequential-diagram) - ( coherence-cocone-sequential-diagram c n) - ( inv-htpy - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n)) - ( inv-htpy + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : + ( n : โ„•) โ†’ + coherence-square-maps + ( map-hom-sequential-diagram B f n) + ( map-cocone-sequential-diagram c n) + ( map-cocone-sequential-diagram c' n) + ( map-sequential-colimit-hom-sequential-diagram) + htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram = + htpy-htpy-cocone-sequential-diagram + ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram) + + coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : + ( n : โ„•) โ†’ + coherence-square-homotopies + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n) + ( ( map-sequential-colimit-hom-sequential-diagram) ยทl + ( coherence-cocone-sequential-diagram c n)) + ( coherence-cocone-sequential-diagram + ( map-cocone-hom-sequential-diagram f c') + ( n)) + ( ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( succ-โ„• n)) ยทr + ( map-sequential-diagram A n)) + coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram = + coherence-htpy-htpy-cocone-sequential-diagram + htpy-cocone-map-sequential-colimit-hom-sequential-diagram + + prism-htpy-cocone-map-sequential-colimit-hom-sequential-diagram : + ( n : โ„•) โ†’ + vertical-coherence-prism-maps + ( map-cocone-sequential-diagram c n) + ( map-cocone-sequential-diagram c (succ-โ„• n)) + ( map-sequential-diagram A n) + ( map-cocone-sequential-diagram c' n) + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( map-sequential-diagram B n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-colimit-hom-sequential-diagram) + ( coherence-cocone-sequential-diagram c n) + ( inv-htpy + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n)) + ( inv-htpy + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( succ-โ„• n))) + ( naturality-map-hom-sequential-diagram B f n) + ( coherence-cocone-sequential-diagram c' n) + prism-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n = + rotate-vertical-coherence-prism-maps + ( map-cocone-sequential-diagram c n) + ( map-cocone-sequential-diagram c (succ-โ„• n)) + ( map-sequential-diagram A n) + ( map-cocone-sequential-diagram c' n) + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( map-sequential-diagram B n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-colimit-hom-sequential-diagram) + ( coherence-cocone-sequential-diagram c n) + ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n) ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( succ-โ„• n))) - ( naturality-map-hom-sequential-diagram B f n) - ( coherence-cocone-sequential-diagram c' n) - prism-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n = - rotate-vertical-coherence-prism-maps - ( map-cocone-sequential-diagram c n) - ( map-cocone-sequential-diagram c (succ-โ„• n)) - ( map-sequential-diagram A n) - ( map-cocone-sequential-diagram c' n) - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( map-sequential-diagram B n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-colimit-hom-sequential-diagram) - ( coherence-cocone-sequential-diagram c n) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram n) - ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n) - ( coherence-cocone-sequential-diagram c' n) - ( inv-htpy - ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( n))) + ( succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n) + ( coherence-cocone-sequential-diagram c' n) + ( inv-htpy + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + ( n))) ``` ### Homotopies between morphisms of sequential diagrams induce homotopies of corresponding maps between sequential colimits diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index fe2296c1b6..30e5bf3280 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -1,7 +1,7 @@ # Functoriality stuff ```agda -{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} +{-# OPTIONS --lossy-unification #-} module synthetic-homotopy-theory.functoriality-stuff where ``` @@ -11,16 +11,21 @@ module synthetic-homotopy-theory.functoriality-stuff where ```agda open import elementary-number-theory.natural-numbers +open import foundation.action-on-identifications-binary-functions open import foundation.action-on-identifications-dependent-functions open import foundation.action-on-identifications-functions -- open import foundation.binary-homotopies +open import foundation.commuting-squares-of-identifications open import foundation.commuting-squares-of-maps +open import foundation.commuting-triangles-of-identifications open import foundation.commuting-triangles-of-maps -- open import foundation.dependent-identifications open import foundation.dependent-pair-types open import foundation.embeddings open import foundation.equality-dependent-pair-types open import foundation.equivalences +open import foundation.families-of-equivalences +open import foundation.fiberwise-equivalence-induction open import foundation.function-extensionality open import foundation.function-types open import foundation.functoriality-dependent-function-types @@ -62,7 +67,7 @@ open import foundation.transposition-identifications-along-equivalences ## Theorem --- ```agda +```agda module _ {l1 l2 : Level} {A : sequential-diagram l1} @@ -96,7 +101,6 @@ module _ (c : cocone-sequential-diagram A X) (P : X โ†’ UU l3) where - open import synthetic-homotopy-theory.dependent-cocones-under-sequential-diagrams section-descent-data-section-family-cocone-sequential-colimit : ((x : X) โ†’ P x) โ†’ @@ -434,7 +438,6 @@ module _ (e : (a : A) โ†’ B a โ‰ƒ C a) (H : (a : A) โ†’ map-equiv (e a) (s a) ๏ผ t a) where - open import foundation.action-on-identifications-binary-functions invert-fiberwise-triangle : (a : A) โ†’ s a ๏ผ map-inv-equiv (e a) (t a) invert-fiberwise-triangle a = @@ -595,8 +598,6 @@ module _ ap ( is-retraction-map-inv-equiv j (t (f a)) โˆ™_) ( ap-id (inv (T a))) - open import foundation.commuting-squares-of-identifications - open import foundation.commuting-triangles-of-identifications [g] : T a ๏ผ ap f' (inv-H a) โˆ™ @@ -681,7 +682,6 @@ module _ ( ap-concat inv-f2' _ (apd s4 (H p)) โˆ™ ap (_โˆ™ _) (inv (ap-comp inv-f2' (tr Q4 (H p)) (G2 (f1 p))))) where - open import foundation.commuting-triangles-of-identifications [i] : (a : P1) โ†’ G1 a โˆ™ invert-fiberwise-triangle s3 (s4 โˆ˜ f2) (ฮป b โ†’ e2' b) F2 (g1 a) @@ -702,18 +702,6 @@ module _ inv-htpy-assoc-htpy _ _ _ ``` -```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} - (f : (a : A) โ†’ B a) - where - - lemma : - {x y : A} (p : x ๏ผ y) โ†’ - apd f (inv p) ๏ผ inv (map-eq-transpose-equiv (equiv-tr B p) (apd f p)) - lemma refl = inv (ap inv (compute-refl-eq-transpose-equiv (equiv-tr B refl))) -``` - ```agda module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : B โ†’ UU l3} @@ -741,6 +729,141 @@ module _ apd-right refl = refl ``` +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + (s : (a : A) โ†’ B a) + where + + apd-concat : + {x y z : A} (p : x ๏ผ y) (q : y ๏ผ z) โ†’ + ap (tr B q) (apd s p) โˆ™ apd s q ๏ผ inv (tr-concat p q (s x)) โˆ™ apd s (p โˆ™ q) + apd-concat refl q = refl + + apd-concat' : + {x y z : A} (p : x ๏ผ y) (q : y ๏ผ z) โ†’ + apd s (p โˆ™ q) ๏ผ tr-concat p q (s x) โˆ™ ap (tr B q) (apd s p) โˆ™ apd s q + apd-concat' refl q = refl +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + (s : (a : A) โ†’ B a) + where + + apd-apd : + {x y : A} (p q : x ๏ผ y) (ฮฑ : p ๏ผ q) โ†’ + ap (ฮป r โ†’ tr B r (s x)) (inv ฮฑ) โˆ™ apd s p ๏ผ apd s q + apd-apd p q refl = refl + + apd-apd' : + {x y : A} (p q : x ๏ผ y) (ฮฑ : p ๏ผ q) โ†’ + apd s p ๏ผ ap (ฮป r โ†’ tr B r (s x)) ฮฑ โˆ™ apd s q + apd-apd' p q refl = refl +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + {f g : (a : A) โ†’ B a} (H : f ~ g) + where + + inv-dep-nat-htpy : + {x y : A} (p : x ๏ผ y) โ†’ + apd f p โˆ™ H y ๏ผ + ap (tr B p) (H x) โˆ™ apd g p + inv-dep-nat-htpy {x = x} {y = y} p = + map-inv-compute-dependent-identification-eq-value f g p (H x) (H y) + ( apd H p) +``` + +```agda +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : UU l2} + {P : A โ†’ UU l3} {Q : B โ†’ UU l4} + (f : A โ†’ B) (sA : (a : A) โ†’ P a) (sB : (b : B) โ†’ Q b) + (f' : {a : A} โ†’ P a โ†’ Q (f a)) + where + + convenient-square : UU (l1 โŠ” l4) + convenient-square = sB โˆ˜ f ~ f' โˆ˜ sA + + convenient-square' : UU (l1 โŠ” l4) + convenient-square' = f' โˆ˜ sA ~ sB โˆ˜ f + +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} + {P : C โ†’ UU l5} {Q : D โ†’ UU l6} + (f : A โ†’ B) (hA : A โ†’ C) (hB : B โ†’ D) (g : C โ†’ D) + (sA : (c : C) โ†’ P c) (sB : (d : D) โ†’ Q d) (f' : {c : C} โ†’ P c โ†’ Q (g c)) + where + + pasting-squares : + (H : coherence-square-maps hA f g hB) โ†’ + convenient-square g sA sB f' โ†’ + (a : A) โ†’ tr Q (H a) (sB (hB (f a))) ๏ผ f' (sA (hA a)) + pasting-squares H K a = + apd sB (H a) โˆ™ K (hA a) + + pasting-squares' : + (H : coherence-square-maps' hA f g hB) โ†’ + convenient-square' g sA sB f' โ†’ + (a : A) โ†’ tr Q (H a) (f' (sA (hA a))) ๏ผ sB (hB (f a)) + pasting-squares' H K a = + ap (tr Q (H a)) (K (hA a)) โˆ™ apd sB (H a) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {A' : UU l4} {B' : UU l5} {C' : UU l6} + (f : A โ†’ C) (g : B โ†’ C) (h : A โ†’ B) + (f' : A' โ†’ C') (g' : B' โ†’ C') (h' : A' โ†’ B') + (hA : A โ†’ A') (hB : B โ†’ B') (hC : C โ†’ C') + (left : hC โˆ˜ f ~ f' โˆ˜ hA) + (right : hC โˆ˜ g ~ g' โˆ˜ hB) + (back : h' โˆ˜ hA ~ hB โˆ˜ h) + (bottom : f ~ g โˆ˜ h) + (top : f' ~ g' โˆ˜ h') + where + + convenient-prism : UU (l1 โŠ” l6) + convenient-prism = + left โˆ™h (top ยทr hA) โˆ™h (g' ยทl back) ~ + (hC ยทl bottom) โˆ™h (right ยทr h) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} + {P : A โ†’ UU l4} {Q : B โ†’ UU l5} {R : C โ†’ UU l6} + (f : A โ†’ C) (g : B โ†’ C) (h : A โ†’ B) + (f' : {a : A} โ†’ P a โ†’ R (f a)) + (g' : {b : B} โ†’ Q b โ†’ R (g b)) + (h' : {a : A} โ†’ P a โ†’ Q (h a)) + (sA : (a : A) โ†’ P a) (sB : (b : B) โ†’ Q b) (sC : (c : C) โ†’ R c) + (left : sC โˆ˜ f ~ f' โˆ˜ sA) + (right : sC โˆ˜ g ~ g' โˆ˜ sB) + (back : h' โˆ˜ sA ~ sB โˆ˜ h) + (bottom : f ~ g โˆ˜ h) + (top : htpy-over R bottom f' (g' โˆ˜ h')) + where + + fiberwise-prism : UU (l1 โŠ” l6) + fiberwise-prism = + (a : A) โ†’ + ( ap (tr R (bottom a)) (left a) โˆ™ + top (sA a) โˆ™ + ap g' (back a)) ๏ผ + ( apd sC (bottom a) โˆ™ + right (h a)) +``` + ```agda module _ {l1 l2 l3 l4 l5 : Level} @@ -771,84 +894,88 @@ module _ (let C' = htpy-htpy-dependent-cocone-sequential-diagram Q ๐’ž) where - private - opaque - ฮณ-base : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - coherence-square-maps - ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) - ( fโˆžn n a) - ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ฮณ-base n a q = - inv - ( ( tr-concat - ( C n a) - ( _) - ( q)) โˆ™ - ( tr-concat - ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) - ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) _) - ( _)) โˆ™ - ( substitution-law-tr Q - ( map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a))) โˆ™ - ap - ( ฮป p โ†’ tr Q p q) - ( inv - ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ - tr-concat - ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) - ( C (succ-โ„• n) (map-sequential-diagram A n a)) - ( q) - - ฮณ : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - coherence-square-maps - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( fโˆžn n a) - ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ฮณ n a q = - ฮณ-base n a q โˆ™ - ap - ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + -- private + opaque + ฮณ-base : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) + ( fโˆžn n a) + ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ-base n a q = + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ™ + inv + ( tr-concat + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( tr Q (C n a) q)) โˆ™ + inv + ( tr-concat (C n a) _ q) โˆ™ + ap + ( ฮป p โ†’ tr Q p q) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ + tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a)) + ( q) - ฮณ-flip : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - coherence-square-maps - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ( tr Q (inv (C n a))) - ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ฮณ-flip n a = - vertical-inv-equiv-coherence-square-maps - ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( equiv-tr Q (C n a)) - ( equiv-tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( ( tr - ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) - ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ - ( tr Q - ( coherence-cocone-sequential-diagram c' n - ( map-hom-sequential-diagram B f n a)))) - ( ฮณ n a) + opaque + ฮณ : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( fโˆžn n a) + ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ n a q = + ฮณ-base n a q โˆ™ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + + opaque + ฮณ-flip : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( tr Q (inv (C n a))) + ( tr Q (inv (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ฮณ-flip n a = + vertical-inv-equiv-coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( equiv-tr Q (C n a)) + ( equiv-tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( ฮณ n a) comp-over-diagram : section-descent-data-sequential-colimit @@ -889,11 +1016,528 @@ module _ ( section-descent-data-section-family-cocone-sequential-colimit c P ( sโˆž โˆ˜ fโˆž)) ( comp-over-diagram) - pr1 lemma-1-2 n a = - map-eq-transpose-equiv - ( equiv-tr Q (C n a)) - ( apd sโˆž (C n a) โˆ™ C' n (map-hom-sequential-diagram B f n a)) - pr2 lemma-1-2 n a = {!!} + pr1 lemma-1-2 n = + invert-fiberwise-triangle + ( sโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) + ( map-section-dependent-sequential-diagram _ _ s n โˆ˜ map-hom-sequential-diagram B f n) + ( ฮป a โ†’ equiv-tr Q (C n a)) + ( ฮป a โ†’ apd sโˆž (C n a) โˆ™ C' n (map-hom-sequential-diagram B f n a)) + pr2 lemma-1-2 n = [i] + where + goal = + (pr2 + (section-descent-data-section-family-cocone-sequential-colimit c P + (sโˆž โˆ˜ fโˆž)) + n + โˆ™h + invert-fiberwise-triangle + (sโˆž โˆ˜ fโˆž โˆ˜ pr1 c (succ-โ„• n)) + (pr1 s (succ-โ„• n) โˆ˜ pr1 f (succ-โ„• n)) + (ฮป aโ‚ โ†’ + equiv-tr Q + (C (succ-โ„• n) aโ‚)) + (ฮป aโ‚ โ†’ + apd sโˆž (C (succ-โ„• n) aโ‚) โˆ™ + C' (succ-โ„• n) (pr1 f (succ-โ„• n) aโ‚)) + ยทr pr2 A n) + ~ + ((ฮป {v} vโ‚ โ†’ + pr2 (dependent-sequential-diagram-descent-data P') n v vโ‚) ยทl + invert-fiberwise-triangle + (sโˆž โˆ˜ fโˆž โˆ˜ pr1 c n) + (pr1 s n โˆ˜ pr1 f n) + (ฮป aโ‚ โ†’ + equiv-tr Q + (C n aโ‚)) + (ฮป aโ‚ โ†’ + apd sโˆž + (C n aโ‚) โˆ™ + C' n (pr1 f n aโ‚)) + โˆ™h + (ฮป aโ‚ โ†’ + ฮณ-flip n aโ‚ (pr1 s n (pr1 f n aโ‚)) โˆ™ + ap + (tr Q + (inv + (C (succ-โ„• n) (pr2 A n aโ‚)))) + (ap (tr (Q โˆ˜ pr1 c' (succ-โ„• n)) (pr2 f n aโ‚)) + (pr2 s n (pr1 f n aโ‚)) + โˆ™ apd (pr1 s (succ-โ„• n)) (pr2 f n aโ‚)))) + + opaque + [step-1] : + (a : family-sequential-diagram A n) โ†’ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) โˆ™ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( apd (sโˆž โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) ๏ผ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( apd sโˆž (ap fโˆž (coherence-cocone-sequential-diagram c n a))) + [step-1] a = + inv + ( ap-concat + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + ( apd (sโˆž โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a))) โˆ™ + ap + ( ap (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a)))) + ( apd-left' fโˆž sโˆž (coherence-cocone-sequential-diagram c n a)) + [step-2] : + (a : family-sequential-diagram A n) โ†’ + tr-concat + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a)) + ( sโˆž (fโˆž (map-cocone-sequential-diagram c n a))) โˆ™ + ap + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( apd sโˆž (ap fโˆž (coherence-cocone-sequential-diagram c n a))) โˆ™ + apd sโˆž (C (succ-โ„• n) (map-sequential-diagram A n a)) ๏ผ + apd sโˆž + ( ap fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ + C (succ-โ„• n) (map-sequential-diagram A n a)) + [step-2] a = + inv + ( apd-concat' sโˆž + ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) + ( C (succ-โ„• n) (map-sequential-diagram A n a))) + [step-3] : + (a : family-sequential-diagram A n) โ†’ + ap + ( ฮป p โ†’ tr Q p (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) + ( inv + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ™ + apd sโˆž + ( ap fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ + C (succ-โ„• n) (map-sequential-diagram A n a)) ๏ผ + apd sโˆž + ( C n a โˆ™ + ( ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) โˆ™ + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)))) + [step-3] a = + apd-apd sโˆž _ _ + ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a) + [step-4] : + (a : family-sequential-diagram A n) โ†’ + inv + ( tr-concat (C n a) _ (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) โˆ™ + apd sโˆž + ( C n a โˆ™ + ( ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) โˆ™ + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)))) ๏ผ + ap + ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a) โˆ™ ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) โˆ™ + apd sโˆž (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a) โˆ™ ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) + [step-4] a = + inv + ( apd-concat sโˆž + ( C n a) + ( _)) + [step-5] : + (a : family-sequential-diagram A n) โ†’ + inv + ( tr-concat + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( tr Q (C n a) (sโˆž (fโˆž (map-cocone-sequential-diagram c n a))))) โˆ™ + ap + ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a) โˆ™ ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) ๏ผ + ap + ( tr Q + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) โˆ™ + inv + ( tr-concat + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( sโˆž (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) + [step-5] a = + nat-htpy + ( inv-htpy + ( tr-concat + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)))) + ( apd sโˆž (C n a)) + [step-6] : + (a : family-sequential-diagram A n) โ†’ + inv + ( tr-concat + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( sโˆž (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) โˆ™ + apd sโˆž + ( ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)) โˆ™ + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) ๏ผ + ap + ( tr Q + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) โˆ™ + apd sโˆž + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + [step-6] a = inv (apd-concat sโˆž _ _) + [step-7] : + (a : family-sequential-diagram A n) โ†’ + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ™ + ap + ( tr Q + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) ๏ผ + ap + ( tr (Q โˆ˜ pr1 c' (succ-โ„• n)) (pr2 f n a) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) โˆ™ + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + [step-7] a = + nat-htpy + ( inv-htpy + ( ฮป q โ†’ + substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) + )) + ( apd sโˆž (C n a)) + [step-8] : + (a : family-sequential-diagram A n) โ†’ + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ™ + ap + ( tr Q + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) ๏ผ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) โˆ™ + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + [step-8] a = + nat-htpy + ( inv-htpy + ( ฮป _ โ†’ + substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + [step-9] : + (a : family-sequential-diagram A n) โ†’ + inv + ( substitution-law-tr Q + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ™ + apd sโˆž + ( ap + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) ๏ผ + apd + ( sโˆž โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) + [step-9] a = + inv + ( apd-left + ( map-cocone-sequential-diagram c' (succ-โ„• n)) + ( sโˆž) + ( naturality-map-hom-sequential-diagram B f n a)) + [step-10] : + (a : family-sequential-diagram A n) โ†’ + apd + ( sโˆž โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) โˆ™ + C' + ( succ-โ„• n) + ( map-hom-sequential-diagram B f + ( succ-โ„• n) + ( map-sequential-diagram A n a)) ๏ผ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( C' + ( succ-โ„• n) + ( map-sequential-diagram B n + ( map-hom-sequential-diagram B f n a))) โˆ™ + apd + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) + [step-10] a = + inv-dep-nat-htpy + ( C' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) + [step-11] : + (a : family-sequential-diagram A n) โ†’ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) โˆ™ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( C' + ( succ-โ„• n) + ( map-sequential-diagram B n + ( map-hom-sequential-diagram B f n a))) ๏ผ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( ap + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( C' n (map-hom-sequential-diagram B f n a)) โˆ™ + naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)) + [step-11] a = + inv + ( ap-concat + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( apd sโˆž + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( C' + ( succ-โ„• n) + ( map-sequential-diagram B n + ( map-hom-sequential-diagram B f n a)))) โˆ™ + ap + ( ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) + ( pr2 ๐’ž n (map-hom-sequential-diagram B f n a)) + [step-12] : + (a : family-sequential-diagram A n) โ†’ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) โˆ™ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( ap + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( C' n (map-hom-sequential-diagram B f n a)) โˆ™ + naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)) ๏ผ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a) โˆ™ + C' n (map-hom-sequential-diagram B f n a)) โˆ™ + ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)) + open import foundation.whiskering-identifications-concatenation + [step-12] a = + left-whisker-concat-coherence-triangle-identifications + ( ap _ (apd sโˆž (C n a))) + _ _ _ + ( ap-concat + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( ap + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( C' n (map-hom-sequential-diagram B f n a))) + ( naturality-map-section-dependent-sequential-diagram _ _ s n + ( map-hom-sequential-diagram B f n a)) โˆ™ + right-whisker-concat + ( inv + ( ap-comp + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( C' n (map-hom-sequential-diagram B f n a)))) + ( _)) โˆ™ + right-whisker-concat + ( inv + (ap-concat + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a)) + ( C' n (map-hom-sequential-diagram B f n a)))) + ( _) + + opaque + unfolding ฮณ ฮณ-base ฮณ-flip + + [i] : goal + [i] = + transpose-sq + ( map-sequential-diagram A n) + ( sโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) + ( sโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ s n โˆ˜ map-hom-sequential-diagram B f n) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n) โˆ˜ map-hom-sequential-diagram B f (succ-โ„• n)) + ( ฮป q โ†’ tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n _) q) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n _)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n _)))) + ( ฮป {a} โ†’ equiv-tr Q (C n a)) + ( ฮป {a} โ†’ equiv-tr Q (C (succ-โ„• n) a)) + ( ฮป a โ†’ apd (sโˆž โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( ฮณ n _) + ( ฮป a โ†’ apd sโˆž (C (succ-โ„• n) a) โˆ™ C' (succ-โ„• n) (map-hom-sequential-diagram B f (succ-โ„• n) a)) + ( ฮป a โ†’ apd sโˆž (C n a) โˆ™ C' n (map-hom-sequential-diagram B f n a)) + ( ฮป a โ†’ + ap + ( tr (Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n (map-hom-sequential-diagram B f n a)) โˆ™ + apd (map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) + ( ฮป a โ†’ + ( left-whisker-concat + ( ฮณ n a (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) + ( inv (assoc _ _ _))) โˆ™ + ( inv (assoc _ _ _)) โˆ™ + ( right-whisker-concat + ( ( right-whisker-concat-coherence-triangle-identifications' _ _ _ + ( apd sโˆž (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( assoc _ _ _ โˆ™ + left-whisker-concat + ( ฮณ-base n a (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) + ( [step-1] a) โˆ™ + assoc _ _ _)) โˆ™ + ( assoc _ _ _) โˆ™ + ( left-whisker-concat + ( _) + ( [step-2] a)) โˆ™ + ( left-whisker-concat-coherence-triangle-identifications' _ _ _ _ + ( [step-3] a)) โˆ™ + ( left-whisker-concat-coherence-triangle-identifications' _ _ _ _ + ( [step-4] a)) โˆ™ + ( left-whisker-concat-coherence-triangle-identifications' _ _ _ _ + ( ( right-whisker-concat-coherence-triangle-identifications' _ _ _ + ( apd sโˆž _) + ( [step-5] a)) โˆ™ + ( ( left-whisker-concat-coherence-triangle-identifications' _ _ _ _ + ( [step-6] a)))) โˆ™ + ( right-whisker-concat-coherence-square-identifications _ _ _ _ + ( [step-7] a) + ( _)) โˆ™ + ( left-whisker-concat _ + ( ( right-whisker-concat-coherence-square-identifications _ _ _ _ + ( [step-8] a) + ( _)) โˆ™ + ( left-whisker-concat _ + ( [step-9] a)))))) + ( C' + ( succ-โ„• n) + ( map-hom-sequential-diagram B f (succ-โ„• n) + ( map-sequential-diagram A n a)))) โˆ™ + ( assoc _ _ _) โˆ™ + ( left-whisker-concat-coherence-triangle-identifications + ( ap + ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a))) + ( apd sโˆž (C n a))) + _ _ _ + ( ( left-whisker-concat-coherence-square-identifications _ _ _ _ _ + ( [step-10] a)) โˆ™ + ( right-whisker-concat + ( [step-11] a) + ( _)))) โˆ™ + ( right-whisker-concat + ( [step-12] a) + ( apd + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a))) โˆ™ + ( assoc _ _ _)) lemma-1 : sโˆž โˆ˜ fโˆž ~ sect-family-sect-dd-sequential-colimit up-c P comp-over-diagram @@ -999,3 +1643,165 @@ module _ inv-htpy lemma-1 ``` +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (f : hom-sequential-diagram A B) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c (Q โˆ˜ fโˆž)) + where + + comp-over-diagram' : + -- For now restricted to l5 + (P : X โ†’ UU l5) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (e' : fam-equiv P (Q โˆ˜ fโˆž)) + (s : section-descent-data-sequential-colimit P') + (let sโˆž = sect-family-sect-dd-sequential-colimit up-c P s) โ†’ + section-descent-data-sequential-colimit Q' + pr1 (comp-over-diagram' P e' s) n a = + map-fam-equiv e' + ( map-cocone-sequential-diagram c n a) + ( map-section-dependent-sequential-diagram _ _ s n a) + pr2 (comp-over-diagram' P e' s) n a = + inv + ( preserves-tr + ( map-fam-equiv e') + ( coherence-cocone-sequential-diagram c n a) + ( map-section-dependent-sequential-diagram _ _ s n a)) โˆ™ + ap + ( map-fam-equiv e' + ( map-cocone-sequential-diagram c (succ-โ„• n) + ( map-sequential-diagram A n a))) + ( naturality-map-section-dependent-sequential-diagram _ _ s n a) + + compute-comp-over-diagram' : + (s : section-descent-data-sequential-colimit Q') โ†’ + htpy-section-dependent-sequential-diagram + ( comp-over-diagram' (Q โˆ˜ fโˆž) id-fam-equiv s) + ( s) + pr1 (compute-comp-over-diagram' s) n = refl-htpy + pr2 (compute-comp-over-diagram' s) n a = + right-unit โˆ™ + ap-binary + ( _โˆ™_) + ( ap + ( inv) + ( compute-preserves-tr-id + ( coherence-cocone-sequential-diagram c n a) + ( map-section-dependent-sequential-diagram _ _ s n a))) + ( ap-id (naturality-map-section-dependent-sequential-diagram _ _ s n a)) + + theorem' : + (P : X โ†’ UU l5) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (e' : fam-equiv P (Q โˆ˜ fโˆž)) + (s : section-descent-data-sequential-colimit P') + (let sโˆž = sect-family-sect-dd-sequential-colimit up-c P s) โ†’ + sect-family-sect-dd-sequential-colimit up-c (Q โˆ˜ fโˆž) + ( comp-over-diagram' P e' s) ~ + (map-fam-equiv e' _ โˆ˜ sโˆž) + theorem' P = + ind-fam-equiv' + ( ฮป P e' โ†’ + let P' = descent-data-family-cocone-sequential-diagram c P in + (s : section-descent-data-sequential-colimit P') โ†’ + sect-family-sect-dd-sequential-colimit up-c (Q โˆ˜ fโˆž) + ( comp-over-diagram' P e' s) ~ + map-fam-equiv e' _ โˆ˜ sect-family-sect-dd-sequential-colimit up-c P s) + ( ฮป s โ†’ + htpy-colimit-htpy-diagram-section up-c (Q โˆ˜ fโˆž) _ _ + ( compute-comp-over-diagram' s)) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (f : hom-sequential-diagram A B) + {P : X โ†’ UU l5} {Q : Y โ†’ UU l5} + (let + P' = descent-data-family-cocone-sequential-diagram c P + Q' = descent-data-family-cocone-sequential-diagram c' Q + fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (s : section-descent-data-sequential-colimit P') + (t : section-descent-data-sequential-colimit Q') + (let + sโˆž = sect-family-sect-dd-sequential-colimit up-c P s + tโˆž = sect-family-sect-dd-sequential-colimit up-c' Q t) + (e : fam-equiv P (Q โˆ˜ fโˆž)) + (let C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let + fโˆžn = + ฮป n a โ†’ + tr Q (C n a) โˆ˜ map-fam-equiv e (map-cocone-sequential-diagram c n a)) + where + + + -- TODO: cleanup + -- - make ฮณ into a proper definition + -- - pasting of squares + -- - find the right lemmas + square-colimit-cube-diagram : + (F : + (n : โ„•) โ†’ + fโˆžn n _ โˆ˜ map-section-dependent-sequential-diagram _ _ s n ~ + map-section-dependent-sequential-diagram _ _ t n โˆ˜ + map-hom-sequential-diagram B f n) โ†’ + ((n : โ„•) โ†’ + section-square-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P' n a) + ( ฮป {a} โ†’ fโˆžn n a) + ( ฮป {a} โ†’ fโˆžn (succ-โ„• n) a) + ( ฮป {b} โ†’ map-family-descent-data-sequential-colimit Q' n b) + ( map-section-dependent-sequential-diagram _ _ s n) + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n) + ( F n) + ( F (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ t n) + ( naturality-map-hom-sequential-diagram B f n) + ( ฮป p โ†’ + ฮณ up-c up-c' Q f t n _ (map-fam-equiv e _ p) โˆ™ + ap + ( tr Q (C (succ-โ„• n) _)) + ( inv + ( preserves-tr + ( map-fam-equiv e) + ( coherence-cocone-sequential-diagram c n _) p)))) โ†’ + map-fam-equiv e _ โˆ˜ sโˆž ~ tโˆž โˆ˜ fโˆž + square-colimit-cube-diagram F cubes = + inv-htpy (theorem' up-c up-c' f Q P e s) โˆ™h + theorem up-c up-c' Q f t _ F + (ฮป n a โ†’ + assoc _ _ _ โˆ™ + ap + ( ฮณ up-c up-c' Q f t n a (map-fam-equiv e (map-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a)) โˆ™_) + ( ap + ( _โˆ™ F (succ-โ„• n) (map-sequential-diagram A n a)) + ( ap-concat (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) + ( ap (map-fam-equiv e (map-cocone-sequential-diagram c (succ-โ„• n) (map-sequential-diagram A n a))) (naturality-map-section-dependent-sequential-diagram _ _ s n a)) โˆ™ + ap + ( ap (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) (inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) โˆ™_) + ( inv (ap-comp (tr Q (C (succ-โ„• n) _)) (map-fam-equiv e _) (naturality-map-section-dependent-sequential-diagram _ _ s n a)))) โˆ™ + assoc _ _ _) โˆ™ inv (assoc _ _ _) โˆ™ inv (assoc _ _ _) โˆ™ cubes n a) +``` From d55fd6c755a7379c3e268eec2419fcd9fa8246c2 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Tue, 18 Mar 2025 00:28:24 +0100 Subject: [PATCH 27/33] Down to a single easy coherence --- .../families-of-equivalences.lagda.md | 18 + .../dependent-identifications.lagda.md | 8 + ...dentifications-along-equivalences.lagda.md | 11 + .../functoriality-stuff.lagda.md | 1034 ++++++++---- .../shifts-sequential-diagrams.lagda.md | 25 +- .../stuff-over.lagda.md | 1387 +++++++++-------- ...nstruction-identity-type-pushouts.lagda.md | 906 ++++++----- 7 files changed, 2015 insertions(+), 1374 deletions(-) diff --git a/src/foundation-core/families-of-equivalences.lagda.md b/src/foundation-core/families-of-equivalences.lagda.md index a3578dcaaa..713a875d28 100644 --- a/src/foundation-core/families-of-equivalences.lagda.md +++ b/src/foundation-core/families-of-equivalences.lagda.md @@ -84,6 +84,24 @@ module _ is-equiv-map-fam-equiv x = is-equiv-map-equiv (e x) ``` +### Inverses of families of equivalences + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {P : A โ†’ UU l2} {Q : A โ†’ UU l3} + (e : fam-equiv P Q) + where + + inv-fam-equiv : fam-equiv Q P + inv-fam-equiv a = inv-equiv (e a) + + map-inv-fam-equiv : (a : A) โ†’ Q a โ†’ P a + map-inv-fam-equiv = map-fam-equiv inv-fam-equiv + + is-equiv-map-inv-fam-equiv : is-fiberwise-equiv map-inv-fam-equiv + is-equiv-map-inv-fam-equiv = is-equiv-map-fam-equiv inv-fam-equiv +``` + ## Properties ### Families of equivalences are equivalent to fiberwise equivalences diff --git a/src/foundation/dependent-identifications.lagda.md b/src/foundation/dependent-identifications.lagda.md index 77743467f5..7267f431ab 100644 --- a/src/foundation/dependent-identifications.lagda.md +++ b/src/foundation/dependent-identifications.lagda.md @@ -124,6 +124,14 @@ module _ ( q' : dependent-identification B q y' z') โ†’ concat-dependent-identification refl q p' q' ๏ผ ap (tr B q) p' โˆ™ q' compute-concat-dependent-identification-left-base-refl q p' q' = refl + + compute-concat-dependent-identification : + {x y z : A} (p : x ๏ผ y) (q : y ๏ผ z) โ†’ + {x' : B x} {y' : B y} {z' : B z} โ†’ + (p' : dependent-identification B p x' y') โ†’ + (q' : dependent-identification B q y' z') โ†’ + concat-dependent-identification p q p' q' ๏ผ tr-concat p q x' โˆ™ ap (tr B q) p' โˆ™ q' + compute-concat-dependent-identification refl q p' q' = refl ``` #### Strictly right unital concatenation of dependent identifications diff --git a/src/foundation/transposition-identifications-along-equivalences.lagda.md b/src/foundation/transposition-identifications-along-equivalences.lagda.md index ef7e0b1cc7..b7bd10a460 100644 --- a/src/foundation/transposition-identifications-along-equivalences.lagda.md +++ b/src/foundation/transposition-identifications-along-equivalences.lagda.md @@ -127,6 +127,11 @@ module _ {a : A} {b : B} โ†’ map-inv-equiv e b ๏ผ a โ†’ b ๏ผ map-equiv e a map-inv-eq-transpose-equiv-inv {a} {b} = map-inv-equiv (eq-transpose-equiv-inv a b) + + map-eq-transpose-equiv-inv' : + {a : A} {b : B} โ†’ b ๏ผ map-equiv e a โ†’ map-inv-equiv e b ๏ผ a + map-eq-transpose-equiv-inv' {a} {b} p = + ap (map-inv-equiv e) p โˆ™ is-retraction-map-inv-equiv e a ``` ## Properties @@ -155,6 +160,12 @@ module _ ( equiv-ap e _ _) ( ( right-unit) โˆ™ ( coherence-map-inv-equiv e _)) + + compute-refl-eq-transpose-equiv-inv' : + {x : A} โ†’ + map-eq-transpose-equiv-inv' e refl ๏ผ is-retraction-map-inv-equiv e x + compute-refl-eq-transpose-equiv-inv' = + refl ``` ### The two definitions of transposing identifications along equivalences are homotopic diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 30e5bf3280..6164d0acb0 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -1,7 +1,7 @@ # Functoriality stuff ```agda -{-# OPTIONS --lossy-unification #-} +{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} module synthetic-homotopy-theory.functoriality-stuff where ``` @@ -110,183 +110,6 @@ module _ dependent-cocone-map-sequential-diagram c P ``` --- ```agda --- module big-thm --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} --- {B : sequential-diagram l2} --- {X : UU l3} {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {Y : UU l4} {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (H : hom-sequential-diagram A B) --- where - --- -- the squares induce a map - --- fโˆž : X โ†’ Y --- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' H - --- Cn : (n : โ„•) โ†’ --- fโˆž โˆ˜ map-cocone-sequential-diagram c n ~ --- map-cocone-sequential-diagram c' n โˆ˜ map-hom-sequential-diagram B H n --- Cn = --- htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H - --- module _ --- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) --- (f'โˆž : {x : X} โ†’ P x โ†’ Q (fโˆž x)) --- where - --- An : โ„• โ†’ UU l1 --- An = family-sequential-diagram A --- Bn : โ„• โ†’ UU l2 --- Bn = family-sequential-diagram B --- an : {n : โ„•} โ†’ An n โ†’ An (succ-โ„• n) --- an = map-sequential-diagram A _ --- bn : {n : โ„•} โ†’ Bn n โ†’ Bn (succ-โ„• n) --- bn = map-sequential-diagram B _ --- fn : {n : โ„•} โ†’ An n โ†’ Bn n --- fn = map-hom-sequential-diagram B H _ --- Hn : {n : โ„•} โ†’ bn {n} โˆ˜ fn ~ fn โˆ˜ an --- Hn = naturality-map-hom-sequential-diagram B H _ - --- -- a map-over induces squares-over - --- -- first, the sequences-over: --- ๐’ŸP : descent-data-sequential-colimit A l5 --- ๐’ŸP = descent-data-family-cocone-sequential-diagram c P --- ๐’ซ = dependent-sequential-diagram-descent-data ๐’ŸP --- ๐’ŸQ : descent-data-sequential-colimit B l6 --- ๐’ŸQ = descent-data-family-cocone-sequential-diagram c' Q --- ๐’ฌ = dependent-sequential-diagram-descent-data ๐’ŸQ - --- Pn : {n : โ„•} โ†’ An n โ†’ UU l5 --- Pn = family-descent-data-sequential-colimit ๐’ŸP _ --- Qn : {n : โ„•} โ†’ Bn n โ†’ UU l6 --- Qn = family-descent-data-sequential-colimit ๐’ŸQ _ - --- pn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Pn (an a) --- pn = map-family-descent-data-sequential-colimit ๐’ŸP _ --- qn : {n : โ„•} (b : Bn n) โ†’ Qn b โ†’ Qn (bn b) --- qn = map-family-descent-data-sequential-colimit ๐’ŸQ _ - --- -- then, the maps over homs --- f'โˆžn : {n : โ„•} (a : An n) โ†’ Pn a โ†’ Qn (fn a) --- f'โˆžn a = --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' --- ( H) --- ( _) --- ( a))) โˆ˜ --- ( f'โˆž) - --- -- then, the squares-over --- f'โˆžn-square-over : --- {n : โ„•} โ†’ --- square-over {Q4 = Qn} (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) Hn --- f'โˆžn-square-over {n} {a} = --- pasting-vertical-coherence-square-maps --- ( tr P (coherence-cocone-sequential-diagram c n a)) --- ( f'โˆž) --- ( f'โˆž) --- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ a)) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H _ (an a))) --- ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( Hn a)) โˆ˜ --- ( tr Q (coherence-cocone-sequential-diagram c' n (fn a)))) --- ( ฮป q โ†’ --- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ --- inv (preserves-tr (ฮป p โ†’ f'โˆž {p}) (coherence-cocone-sequential-diagram c n a) q)) --- ( ( inv-htpy --- ( ฮป q โ†’ --- ( tr-concat --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' H n a) --- ( _) --- ( q)) โˆ™ --- ( tr-concat --- ( coherence-cocone-sequential-diagram c' n (fn a)) --- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (Hn a)) --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' H n a) --- ( q))) โˆ™ --- ( substitution-law-tr Q --- ( map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( Hn a)))) โˆ™h --- ( ฮป q โ†’ --- ap --- ( ฮป p โ†’ tr Q p q) --- ( inv --- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' H n a))) โˆ™h --- ( tr-concat --- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' H (succ-โ„• n) (an a)))) - --- thm : --- (sA : section-dependent-sequential-diagram A ๐’ซ) โ†’ --- (sB : section-dependent-sequential-diagram B ๐’ฌ) โ†’ --- (S : (n : โ„•) โ†’ --- section-map-over (fn {n}) (f'โˆžn _) --- ( map-section-dependent-sequential-diagram A ๐’ซ sA n) --- ( map-section-dependent-sequential-diagram B ๐’ฌ sB n)) โ†’ --- ((n : โ„•) โ†’ --- section-square-over (an {n}) fn fn bn (pn _) (f'โˆžn _) (f'โˆžn _) (qn _) --- ( map-section-dependent-sequential-diagram A ๐’ซ sA n) --- ( map-section-dependent-sequential-diagram B ๐’ฌ sB n) --- ( map-section-dependent-sequential-diagram A ๐’ซ sA (succ-โ„• n)) --- ( map-section-dependent-sequential-diagram B ๐’ฌ sB (succ-โ„• n)) --- ( naturality-map-section-dependent-sequential-diagram A ๐’ซ sA n) --- ( S n) --- ( S (succ-โ„• n)) --- ( naturality-map-section-dependent-sequential-diagram B ๐’ฌ sB n) --- ( Hn) --- ( f'โˆžn-square-over)) โ†’ --- section-map-over fโˆž f'โˆž --- ( sect-family-sect-dd-sequential-colimit up-c P sA) --- ( sect-family-sect-dd-sequential-colimit up-c' Q sB) --- thm sA sB S ฮฑ = --- map-dependent-universal-property-sequential-colimit --- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) --- ( tS , --- ( ฮป n a โ†’ --- map-compute-dependent-identification-eq-value --- ( f'โˆž โˆ˜ sAโˆž) --- ( sBโˆž โˆ˜ fโˆž) --- ( coherence-cocone-sequential-diagram c n a) --- ( tS n a) --- ( tS (succ-โ„• n) (an a)) --- ( {!f'โˆžn-square-over!}))) --- where --- sAโˆž : (x : X) โ†’ P x --- sAโˆž = sect-family-sect-dd-sequential-colimit up-c P sA --- sBโˆž : (y : Y) โ†’ Q y --- sBโˆž = sect-family-sect-dd-sequential-colimit up-c' Q sB --- tS : --- (n : โ„•) โ†’ --- (f'โˆž โˆ˜ sAโˆž โˆ˜ (map-cocone-sequential-diagram c n)) ~ --- (sBโˆž โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c n) --- tS n a = --- ap f'โˆž --- ( pr1 --- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit --- ( dependent-universal-property-universal-property-sequential-colimit _ up-c) --- ( sA)) n a) โˆ™ --- map-equiv --- ( inv-equiv-ap-emb (emb-equiv (equiv-tr Q (Cn n a)))) --- ( S n a โˆ™ --- inv --- ( apd sBโˆž (Cn n a) โˆ™ --- pr1 --- ( htpy-dependent-cocone-dependent-universal-property-sequential-colimit --- ( dependent-universal-property-universal-property-sequential-colimit _ up-c') --- ( sB)) n (fn a))) -``` - ```agda module _ {l1 l2 : Level} {A : sequential-diagram l1} @@ -439,10 +262,10 @@ module _ (H : (a : A) โ†’ map-equiv (e a) (s a) ๏ผ t a) where + -- the rest of the proof relies on the implementation of + -- map-eq-transpose-equiv', which is probably not the best idea invert-fiberwise-triangle : (a : A) โ†’ s a ๏ผ map-inv-equiv (e a) (t a) - invert-fiberwise-triangle a = - inv (is-retraction-map-inv-equiv (e a) (s a)) โˆ™ - ap (map-inv-equiv (e a)) (H a) + invert-fiberwise-triangle a = map-eq-transpose-equiv' (e a) (H a) invert-fiberwise-triangle' : (a : A) โ†’ map-inv-equiv (e a) (t a) ๏ผ s a invert-fiberwise-triangle' a = @@ -501,9 +324,7 @@ module _ (let inv-F' = invert-fiberwise-triangle' t t' (ฮป b โ†’ j {b}) F) (H : (a : A) โ†’ g (s a) ๏ผ s' a) (let inv-H = invert-fiberwise-triangle s s' (ฮป a โ†’ e {a}) H) - -- (X : (a : A) โ†’ f'' (g (s a)) ๏ผ t' (f a)) (X : (a : A) โ†’ f'' (s' a) ๏ผ t' (f a)) - -- (ฮฑ : (a : A) โ†’ G (s a) โˆ™ (ap h (T a) โˆ™ F (f a)) ๏ผ X a) (ฮฑ : (a : A) โ†’ G (s a) โˆ™ (ap h (T a) โˆ™ F (f a)) ๏ผ ap f'' (H a) โˆ™ X a) where @@ -864,51 +685,58 @@ module _ right (h a)) ``` +TODO: this should be parameterized by a fiberwise map, not equivalence + ```agda module _ - {l1 l2 l3 l4 l5 : Level} + {l1 l2 l3 l4 l5 l6 : Level} {A : sequential-diagram l1} {X : UU l2} {c : cocone-sequential-diagram A X} (up-c : universal-property-sequential-colimit c) {B : sequential-diagram l3} {Y : UU l4} - {c' : cocone-sequential-diagram B Y} - (up-c' : universal-property-sequential-colimit c') - (let - dup-c' = - dependent-universal-property-universal-property-sequential-colimit _ up-c') - (Q : Y โ†’ UU l5) - (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (c' : cocone-sequential-diagram B Y) (f : hom-sequential-diagram A B) (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) - (let P = Q โˆ˜ fโˆž) - (let P' = descent-data-family-cocone-sequential-diagram c P) - (let C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) - (let fโˆžn = ฮป n a โ†’ tr Q (C n a)) - (s : section-descent-data-sequential-colimit Q') - (let sโˆž = sect-family-sect-dd-sequential-colimit up-c' Q s) (let - ๐’ž = - htpy-dependent-cocone-dependent-universal-property-sequential-colimit - ( dup-c') - ( s)) - (let C' = htpy-htpy-dependent-cocone-sequential-diagram Q ๐’ž) + C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (P : X โ†’ UU l5) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (Q : Y โ†’ UU l6) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (e : fam-equiv P (Q โˆ˜ fโˆž)) where - -- private + equiv-over-diagram-equiv-over-colimit : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-descent-data-sequential-colimit P' n a โ‰ƒ + family-descent-data-sequential-colimit Q' n + ( map-hom-sequential-diagram B f n a) + equiv-over-diagram-equiv-over-colimit n a = + equiv-tr Q (C n a) โˆ˜e + e (map-cocone-sequential-diagram c n a) + + map-over-diagram-equiv-over-colimit : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-descent-data-sequential-colimit P' n a โ†’ + family-descent-data-sequential-colimit Q' n + ( map-hom-sequential-diagram B f n a) + map-over-diagram-equiv-over-colimit n a = + map-equiv (equiv-over-diagram-equiv-over-colimit n a) + opaque - ฮณ-base : + ฮณ-base' : (n : โ„•) (a : family-sequential-diagram A n) โ†’ coherence-square-maps ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) - ( fโˆžn n a) - ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( tr Q (C n a)) + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) ( ( tr ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ ( tr Q ( coherence-cocone-sequential-diagram c' n ( map-hom-sequential-diagram B f n a)))) - ฮณ-base n a q = + ฮณ-base' n a q = inv ( substitution-law-tr Q ( map-cocone-sequential-diagram c' (succ-โ„• n)) @@ -933,24 +761,706 @@ module _ ( q) opaque - ฮณ : + ฮณ' : (n : โ„•) (a : family-sequential-diagram A n) โ†’ coherence-square-maps ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) - ( fโˆžn n a) - ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( tr Q (C n a)) + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) ( ( tr ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ ( tr Q ( coherence-cocone-sequential-diagram c' n ( map-hom-sequential-diagram B f n a)))) - ฮณ n a q = - ฮณ-base n a q โˆ™ + ฮณ' n a q = + ฮณ-base' n a q โˆ™ ap ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) ( substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a)) + opaque + square-over-diagram-square-over-colimit : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( map-over-diagram-equiv-over-colimit n a) + ( map-over-diagram-equiv-over-colimit + ( succ-โ„• n) + ( map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + square-over-diagram-square-over-colimit n a = + pasting-vertical-coherence-square-maps + ( tr P (coherence-cocone-sequential-diagram c n a)) + ( map-fam-equiv e (map-cocone-sequential-diagram c n a)) + ( map-fam-equiv e (map-cocone-sequential-diagram c (succ-โ„• n) (map-sequential-diagram A n a))) + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( tr Q (C n a)) + ( tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ( inv-htpy + ( preserves-tr + ( map-fam-equiv e) + ( coherence-cocone-sequential-diagram c n a))) + ( ฮณ' n a) + +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + (c' : cocone-sequential-diagram B Y) + (f : hom-sequential-diagram A B) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (Q : Y โ†’ UU l5) + where + + opaque + unfolding square-over-diagram-square-over-colimit + + compute-square-over-diagram-id : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + square-over-diagram-square-over-colimit up-c c' f (Q โˆ˜ fโˆž) Q id-fam-equiv n a ~ + ฮณ' up-c c' f (Q โˆ˜ fโˆž) Q id-fam-equiv n a + compute-square-over-diagram-id n a q = + ap + ( ฮป r โ†’ + ฮณ' up-c c' f (Q โˆ˜ fโˆž) Q id-fam-equiv n a q โˆ™ + ap (tr Q _) (inv r)) + ( compute-preserves-tr-id (coherence-cocone-sequential-diagram c n a) q) โˆ™ + right-unit +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + open import foundation.dependent-identifications + + compute-inv-dependent-identification-inv : + {x y : A} (p : x ๏ผ y) {x' : B x} {y' : B y} + (q : y' ๏ผ tr B p x') โ†’ + inv-dependent-identification B p (inv q) ๏ผ + map-eq-transpose-equiv-inv' (equiv-tr B p) q + compute-inv-dependent-identification-inv refl q = inv-inv q โˆ™ inv (right-unit โˆ™ ap-id q) + +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + + compute-eq-transpose-equiv-inv-concat' : + {x : A} {b c : B} (p : b ๏ผ c) (q : c ๏ผ map-equiv e x) โ†’ + map-eq-transpose-equiv-inv' e (p โˆ™ q) ๏ผ + ap (map-inv-equiv e) p โˆ™ map-eq-transpose-equiv-inv' e q + compute-eq-transpose-equiv-inv-concat' refl q = refl +``` + +```agda +module _ + {l1 l2 l3 l4 l5 l6 l7 : Level} + {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l7} + {P : A โ†’ UU l4} {P' : B โ†’ UU l5} {Q' : C โ†’ UU l6} + {h : A โ†’ B} (h' : (a : A) โ†’ P a โ†’ P' (h a)) + {l : A โ†’ D} (j : D โ†’ C) (l' : (a : A) โ†’ P a โ†’ Q' (j (l a))) + (s : (a : A) โ†’ P' (h a) โ†’ Q' (j (l a))) + {k : D โ†’ B} (t : (a : A) โ†’ Q' (j (l a)) โ†’ P' (k (l a))) + (U : h ~ k โˆ˜ l) + (H : (a : A) (p : P a) โ†’ l' a p ๏ผ s a (h' a p)) + (K : (a : A) (p : P' (h a)) โ†’ t a (s a p) ๏ผ tr P' (U a) p) + where + open import foundation.dependent-identifications + + compute-lemma : + (a : A) (p : P a) โ†’ + inv-dependent-identification P' (U a) + ( inv + ( ap (t a) (H a p) โˆ™ + K a (h' a p))) ๏ผ + ap + ( tr P' (inv (U a)) โˆ˜ t a) + ( H a p) โˆ™ + inv-dependent-identification P' (U a) + ( inv (K a (h' a p))) + compute-lemma a p = + compute-inv-dependent-identification (U a) _ โˆ™ + ap + ( map-eq-transpose-equiv-inv' (equiv-tr P' (U a))) + ( inv-inv _) โˆ™ + ap + ( _โˆ™ is-retraction-map-inv-equiv (equiv-tr P' (U a)) _) + ( ap-concat (tr P' (inv (U a))) _ _) โˆ™ + assoc _ _ _ โˆ™ + ap + (_โˆ™ map-eq-transpose-equiv-inv' (equiv-tr P' (U a)) (K a (h' a p))) + ( inv (ap-comp (tr P' (inv (U a))) (t a) (H a p))) โˆ™ + ap + ( ap (tr P' (inv (U a)) โˆ˜ t a) (H a p) โˆ™_) + ( inv + ( compute-inv-dependent-identification (U a) _ โˆ™ + ap (map-eq-transpose-equiv-inv' (equiv-tr P' (U a))) (inv-inv _))) +``` + +```agda +open import synthetic-homotopy-theory.zigzags-sequential-diagrams +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + (c' : cocone-sequential-diagram B Y) + (z : zigzag-sequential-diagram A B) + (let f = hom-diagram-zigzag-sequential-diagram z) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let + C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (P : X โ†’ UU l5) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (e : fam-equiv P (Q โˆ˜ fโˆž)) + where + + inv-map-over-diagram-equiv-zigzag' : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + family-descent-data-sequential-colimit Q' n + ( map-zigzag-sequential-diagram z n a) โ†’ + family-descent-data-sequential-colimit P' n a + inv-map-over-diagram-equiv-zigzag' n a = + map-inv-fam-equiv e + ( map-cocone-sequential-diagram c n a) โˆ˜ + tr Q (inv (C n a)) + + + inv-map-over-diagram-equiv-zigzag : + (n : โ„•) (b : family-sequential-diagram B n) โ†’ + family-descent-data-sequential-colimit Q' n b โ†’ + family-descent-data-sequential-colimit P' (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n b) + inv-map-over-diagram-equiv-zigzag n b = + inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n b) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n b) โˆ˜ + tr Q + ( coherence-cocone-sequential-diagram c' n b) + + opaque + inv-upper-triangle-over' : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) โˆ˜ + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) ~ + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (inv-map-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) โˆ˜ + tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + inv-upper-triangle-over' n a = + {!!} + + opaque + upper-triangle-over' : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + map-inv-fam-equiv e _ โˆ˜ + tr Q (inv (C (succ-โ„• n) _)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) โˆ˜ + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) ~ + tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + upper-triangle-over' n a p = + map-eq-transpose-equiv-inv' + ( e _) + ( map-eq-transpose-equiv-inv' + ( equiv-tr Q (C (succ-โ„• n) _)) + ( inv-upper-triangle-over' n a p)) + + inv-upper-triangle-over : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( map-family-descent-data-sequential-colimit P' n a) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e n a) + ( tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( inv-map-over-diagram-equiv-zigzag n (map-zigzag-sequential-diagram z n a)) + inv-upper-triangle-over n a p = + ap + ( map-inv-fam-equiv e _ โˆ˜ + tr Q (inv (C (succ-โ„• n) _)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) + ( inv + ( is-retraction-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + ( _)) โˆ™ + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a))) + ( square-over-diagram-square-over-colimit up-c c' f P Q e n a p)) โˆ™ + upper-triangle-over' n a (map-family-descent-data-sequential-colimit P' n a p) + + upper-triangle-over : + (n : โ„•) โ†’ + htpy-over + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n) + ( map-family-descent-data-sequential-colimit P' n _) + ( inv-map-over-diagram-equiv-zigzag n _ โˆ˜ + map-over-diagram-equiv-over-colimit up-c c' f P Q e n _) + upper-triangle-over n {a} p = + inv (inv-upper-triangle-over n a p) + + opaque + lower-triangle-over' : + (n : โ„•) (a : family-sequential-diagram A n) + (q : + family-descent-data-sequential-colimit Q' n + ( map-zigzag-sequential-diagram z n a)) โ†’ + q ๏ผ + map-over-diagram-equiv-over-colimit up-c c' f P Q e n a + ( inv-map-over-diagram-equiv-zigzag' n a q) + lower-triangle-over' n a q = + inv + ( is-section-map-inv-equiv + ( equiv-tr Q (C n a)) + ( q)) โˆ™ + ap + ( tr Q (C n a)) + ( inv + ( is-section-map-inv-equiv + ( e (map-cocone-sequential-diagram c n a)) + ( tr Q (inv (C n a)) q))) + + lower-triangle-over : + (n : โ„•) โ†’ + htpy-over + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n) + ( map-family-descent-data-sequential-colimit Q' n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ โˆ˜ + inv-map-over-diagram-equiv-zigzag n _) + lower-triangle-over n {b} q = + -- this could change to alternatives + -- map-inv-eq-transpose-equiv-inv doesn't compute well + lower-triangle-over' + ( succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n b) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n b) + ( map-family-descent-data-sequential-colimit Q' n b q)) +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + + inv-coherence-map-inv-is-equiv : + (a : A) โ†’ + ap (map-equiv e) (inv (is-retraction-map-inv-equiv e a)) ๏ผ + inv (is-section-map-inv-equiv e (map-equiv e a)) + inv-coherence-map-inv-is-equiv a = + ap-inv (map-equiv e) (is-retraction-map-inv-equiv e a) โˆ™ + ap inv (inv (coherence-map-inv-equiv e a)) + + left-inv-is-retraction-map-inv-equiv : + (a : A) โ†’ + inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™ + ap (map-equiv e) (is-retraction-map-inv-equiv e a) ๏ผ + refl + left-inv-is-retraction-map-inv-equiv a = + ap + ( inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™_) + ( inv (coherence-map-inv-equiv e a)) โˆ™ + left-inv (is-section-map-inv-equiv e (map-equiv e a)) + +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + concat-inv-coherence-map-inv-is-equiv : + {x : A} {y : B} (p : map-equiv e x ๏ผ y) โ†’ + ap (map-equiv e) (inv (is-retraction-map-inv-equiv e x) โˆ™ ap (map-inv-equiv e) p) ๏ผ + p โˆ™ inv (is-section-map-inv-equiv e y) + concat-inv-coherence-map-inv-is-equiv refl = + ap (ap (map-equiv e)) right-unit โˆ™ inv-coherence-map-inv-is-equiv e _ + +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + (c' : cocone-sequential-diagram B Y) + (z : zigzag-sequential-diagram A B) + (let f = hom-diagram-zigzag-sequential-diagram z) + (let g = inv-hom-diagram-zigzag-sequential-diagram z) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let + C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (let P = Q โˆ˜ fโˆž) + (let P' = descent-data-family-cocone-sequential-diagram c P) + where + + open import foundation.dependent-identifications + + opaque + -- TODO: Maybe this goes through for general equivalences immediately? + -- I haven't tried + compute-square-over-zigzag-square-over-colimit-id : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + pasting-triangles-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( map-family-descent-data-sequential-colimit P' n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) _) + ( map-family-descent-data-sequential-colimit Q' n _) + ( map-hom-sequential-diagram _ g n) + ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q id-fam-equiv n _) + ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) + ( lower-triangle-zigzag-sequential-diagram z n) + ( inv-htpy-over + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n) + _ _ + ( upper-triangle-over up-c c' z P Q id-fam-equiv n)) + ( lower-triangle-over up-c c' z P Q id-fam-equiv n) + { a} ~ + square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a + compute-square-over-zigzag-square-over-colimit-id n a p = + compute-concat-dependent-identification + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + _ _ _ _ โˆ™ + ( ap + ( ( ( tr-concat + ( lower-triangle-zigzag-sequential-diagram z n _) + ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( _)) โˆ™ + ( ap + ( tr (family-descent-data-sequential-colimit Q' (succ-โ„• n)) _) + ( lower-triangle-over up-c c' z (Q โˆ˜ fโˆž) Q id-fam-equiv n _))) โˆ™_) + ( ( compute-left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' (hom-diagram-zigzag-sequential-diagram z) (Q โˆ˜ fโˆž) Q id-fam-equiv (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( _)) โˆ™ + ap + ( ฮป r โ†’ + substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ + inv + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( _)) โˆ™ + ap + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) + ( r)) + ( ( compute-inv-dependent-identification-inv + ( upper-triangle-zigzag-sequential-diagram z n a) + ( inv-upper-triangle-over up-c c' z (Q โˆ˜ fโˆž) Q id-fam-equiv n a p)) โˆ™ + ( compute-eq-transpose-equiv-inv-concat' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( _) + ( _))))) โˆ™ + inv (assoc _ _ _) โˆ™ + ap + ( ( tr-concat + ( lower-triangle-zigzag-sequential-diagram z n _) + ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( map-family-descent-data-sequential-colimit Q' n + ( map-zigzag-sequential-diagram z n a) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv n a p)) โˆ™ + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap _ (inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( lower-triangle-over up-c c' z P Q id-fam-equiv n _) โˆ™ + ( substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ + inv + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( _)))) โˆ™_) + ( ap-concat + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) + ( _) + ( _) โˆ™ + ap + (_โˆ™ + ap + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a _))) + ( inv + ( ap-comp + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) + ( tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( _)) โˆ™ + inv + ( ap-comp + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a) โˆ˜ + tr (family-descent-data-sequential-colimit P' (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( tr Q + ( inv (C (succ-โ„• n) _)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) + ( _)))) โˆ™ + inv (assoc _ _ _) โˆ™ + ap + ( _โˆ™ + ap + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a _))) + ( nat-htpy + ( ฮป (q : family-descent-data-sequential-colimit Q' (succ-โ„• n) (map-sequential-diagram B n (map-zigzag-sequential-diagram z n a))) โ†’ + tr-concat + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( q) โˆ™ + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) _ + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( q))) โˆ™ + ( substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ + inv + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( inv-map-over-diagram-equiv-zigzag' up-c c' z P Q id-fam-equiv (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( q)))))) + ( _) โˆ™ + ap + ( _โˆ™ + ( tr-concat _ _ _ โˆ™ + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) _ _)โˆ™ + ( substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ + inv + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( inv-map-over-diagram-equiv-zigzag' up-c c' z P Q id-fam-equiv (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( _)))))) + ( concat-inv-coherence-map-inv-is-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + ( square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a p))) โˆ™ + assoc _ _ _ โˆ™ + assoc _ _ _ โˆ™ + ap + ( square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a p โˆ™_) + ( {!!}) โˆ™ + right-unit +``` + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + (c' : cocone-sequential-diagram B Y) + (z : zigzag-sequential-diagram A B) + (let f = hom-diagram-zigzag-sequential-diagram z) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let + C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (P : X โ†’ UU l5) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (e : fam-equiv P (Q โˆ˜ fโˆž)) + where + + opaque + compute-square-over-zigzag-square-over-colimit : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + pasting-triangles-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( map-family-descent-data-sequential-colimit P' n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( map-family-descent-data-sequential-colimit Q' n _) + ( inv-map-zigzag-sequential-diagram z n) + ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q e n _) + ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) + ( lower-triangle-zigzag-sequential-diagram z n) + ( inv-htpy-over + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n) + _ _ + ( upper-triangle-over up-c c' z P Q e n)) + ( lower-triangle-over up-c c' z P Q e n) + { a} ~ + square-over-diagram-square-over-colimit up-c c' f P Q e n a + compute-square-over-zigzag-square-over-colimit = + ind-fam-equiv' + ( ฮป P e โ†’ + let P' = descent-data-family-cocone-sequential-diagram c P in + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + pasting-triangles-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( map-family-descent-data-sequential-colimit P' n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e n _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( map-family-descent-data-sequential-colimit Q' n _) + ( inv-map-zigzag-sequential-diagram z n) + ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q e n _) + ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) + ( lower-triangle-zigzag-sequential-diagram z n) + ( inv-htpy-over + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n) + _ _ + ( upper-triangle-over up-c c' z P Q e n)) + ( lower-triangle-over up-c c' z P Q e n) + { a} ~ + square-over-diagram-square-over-colimit up-c c' f P Q e n a) + ( compute-square-over-zigzag-square-over-colimit-id up-c c' z Q) + ( e) +``` + +```agda +module _ + {l1 l2 l3 l4 l5 : Level} + {A : sequential-diagram l1} {X : UU l2} + {c : cocone-sequential-diagram A X} + (up-c : universal-property-sequential-colimit c) + {B : sequential-diagram l3} {Y : UU l4} + {c' : cocone-sequential-diagram B Y} + (up-c' : universal-property-sequential-colimit c') + (let + dup-c' = + dependent-universal-property-universal-property-sequential-colimit _ up-c') + (Q : Y โ†’ UU l5) + (let Q' = descent-data-family-cocone-sequential-diagram c' Q) + (f : hom-sequential-diagram A B) + (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let P = Q โˆ˜ fโˆž) + (let P' = descent-data-family-cocone-sequential-diagram c P) + (let C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) + (let fโˆžn = ฮป n a โ†’ tr Q (C n a)) + (s : section-descent-data-sequential-colimit Q') + (let sโˆž = sect-family-sect-dd-sequential-colimit up-c' Q s) + (let + ๐’ž = + htpy-dependent-cocone-dependent-universal-property-sequential-colimit + ( dup-c') + ( s)) + (let C' = htpy-htpy-dependent-cocone-sequential-diagram Q ๐’ž) + where + + opaque + unfolding square-over-diagram-square-over-colimit + ฮณ : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr (Q โˆ˜ fโˆž) (coherence-cocone-sequential-diagram c n a)) + ( fโˆžn n a) + ( fโˆžn (succ-โ„• n) (map-sequential-diagram A n a)) + ( ( tr + ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) + ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ + ( tr Q + ( coherence-cocone-sequential-diagram c' n + ( map-hom-sequential-diagram B f n a)))) + ฮณ = ฮณ' up-c c' f P Q id-fam-equiv + + -- compute-ฮณ : + -- (n : โ„•) (a : family-sequential-diagram A n) โ†’ + -- square-over-diagram-square-over-colimit up-c c' f (Q โˆ˜ fโˆž) Q id-fam-equiv n a ~ ฮณ n a + -- compute-ฮณ n a p = + -- ap + -- ( ฮณ n a p โˆ™_) + -- ( ap + -- ( ฮป r โ†’ ap (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) (inv r)) + -- ( compute-preserves-tr-id (coherence-cocone-sequential-diagram c n a) p)) โˆ™ + -- right-unit + opaque ฮณ-flip : (n : โ„•) (a : family-sequential-diagram A n) โ†’ @@ -1448,7 +1958,7 @@ module _ ( _) opaque - unfolding ฮณ ฮณ-base ฮณ-flip + unfolding ฮณ ฮณ' ฮณ-base' ฮณ-flip [i] : goal [i] = @@ -1486,7 +1996,7 @@ module _ ( apd sโˆž (C (succ-โ„• n) (map-sequential-diagram A n a))) ( assoc _ _ _ โˆ™ left-whisker-concat - ( ฮณ-base n a (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) + ( ฮณ-base' up-c c' f (Q โˆ˜ fโˆž) Q id-fam-equiv n a (sโˆž (fโˆž (map-cocone-sequential-diagram c n a)))) ( [step-1] a) โˆ™ assoc _ _ _)) โˆ™ ( assoc _ _ _) โˆ™ @@ -1754,54 +2264,52 @@ module _ -- - make ฮณ into a proper definition -- - pasting of squares -- - find the right lemmas - square-colimit-cube-diagram : - (F : - (n : โ„•) โ†’ - fโˆžn n _ โˆ˜ map-section-dependent-sequential-diagram _ _ s n ~ - map-section-dependent-sequential-diagram _ _ t n โˆ˜ - map-hom-sequential-diagram B f n) โ†’ - ((n : โ„•) โ†’ - section-square-over - ( map-sequential-diagram A n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-diagram B n) - ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P' n a) - ( ฮป {a} โ†’ fโˆžn n a) - ( ฮป {a} โ†’ fโˆžn (succ-โ„• n) a) - ( ฮป {b} โ†’ map-family-descent-data-sequential-colimit Q' n b) - ( map-section-dependent-sequential-diagram _ _ s n) - ( map-section-dependent-sequential-diagram _ _ t n) - ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) - ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram _ _ s n) - ( F n) - ( F (succ-โ„• n)) - ( naturality-map-section-dependent-sequential-diagram _ _ t n) - ( naturality-map-hom-sequential-diagram B f n) - ( ฮป p โ†’ - ฮณ up-c up-c' Q f t n _ (map-fam-equiv e _ p) โˆ™ + opaque + unfolding square-over-diagram-square-over-colimit ฮณ ฮณ' ฮณ-base' + square-colimit-cube-diagram : + (F : + (n : โ„•) โ†’ + fโˆžn n _ โˆ˜ map-section-dependent-sequential-diagram _ _ s n ~ + map-section-dependent-sequential-diagram _ _ t n โˆ˜ + map-hom-sequential-diagram B f n) โ†’ + ((n : โ„•) โ†’ + section-square-over + ( map-sequential-diagram A n) + ( map-hom-sequential-diagram B f n) + ( map-hom-sequential-diagram B f (succ-โ„• n)) + ( map-sequential-diagram B n) + ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P' n a) + ( ฮป {a} โ†’ fโˆžn n a) + ( ฮป {a} โ†’ fโˆžn (succ-โ„• n) a) + ( ฮป {b} โ†’ map-family-descent-data-sequential-colimit Q' n b) + ( map-section-dependent-sequential-diagram _ _ s n) + ( map-section-dependent-sequential-diagram _ _ t n) + ( map-section-dependent-sequential-diagram _ _ s (succ-โ„• n)) + ( map-section-dependent-sequential-diagram _ _ t (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ s n) + ( F n) + ( F (succ-โ„• n)) + ( naturality-map-section-dependent-sequential-diagram _ _ t n) + ( naturality-map-hom-sequential-diagram B f n) + ( square-over-diagram-square-over-colimit up-c c' f P Q e n _)) โ†’ + map-fam-equiv e _ โˆ˜ sโˆž ~ tโˆž โˆ˜ fโˆž + square-colimit-cube-diagram F cubes = + inv-htpy (theorem' up-c up-c' f Q P e s) โˆ™h + theorem up-c up-c' Q f t _ F + ( ฮป n a โ†’ + assoc _ _ _ โˆ™ ap - ( tr Q (C (succ-โ„• n) _)) - ( inv - ( preserves-tr - ( map-fam-equiv e) - ( coherence-cocone-sequential-diagram c n _) p)))) โ†’ - map-fam-equiv e _ โˆ˜ sโˆž ~ tโˆž โˆ˜ fโˆž - square-colimit-cube-diagram F cubes = - inv-htpy (theorem' up-c up-c' f Q P e s) โˆ™h - theorem up-c up-c' Q f t _ F - (ฮป n a โ†’ - assoc _ _ _ โˆ™ - ap - ( ฮณ up-c up-c' Q f t n a (map-fam-equiv e (map-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a)) โˆ™_) - ( ap - ( _โˆ™ F (succ-โ„• n) (map-sequential-diagram A n a)) - ( ap-concat (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) - ( inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) - ( ap (map-fam-equiv e (map-cocone-sequential-diagram c (succ-โ„• n) (map-sequential-diagram A n a))) (naturality-map-section-dependent-sequential-diagram _ _ s n a)) โˆ™ - ap - ( ap (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) (inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) โˆ™_) - ( inv (ap-comp (tr Q (C (succ-โ„• n) _)) (map-fam-equiv e _) (naturality-map-section-dependent-sequential-diagram _ _ s n a)))) โˆ™ - assoc _ _ _) โˆ™ inv (assoc _ _ _) โˆ™ inv (assoc _ _ _) โˆ™ cubes n a) + ( ฮณ up-c up-c' Q f t n a (map-fam-equiv e (map-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a)) โˆ™_) + ( ( ap + ( _โˆ™ F (succ-โ„• n) (map-sequential-diagram A n a)) + ( ap-concat (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) + ( inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) + ( ap (map-fam-equiv e (map-cocone-sequential-diagram c (succ-โ„• n) (map-sequential-diagram A n a))) (naturality-map-section-dependent-sequential-diagram _ _ s n a)) โˆ™ + ap + ( ap (tr Q (C (succ-โ„• n) (map-sequential-diagram A n a))) (inv (preserves-tr (map-fam-equiv e) (coherence-cocone-sequential-diagram c n a) (map-section-dependent-sequential-diagram _ _ s n a))) โˆ™_) + ( inv (ap-comp (tr Q (C (succ-โ„• n) _)) (map-fam-equiv e _) (naturality-map-section-dependent-sequential-diagram _ _ s n a))))) โˆ™ + ( assoc _ _ _)) โˆ™ + inv (assoc _ _ _) โˆ™ + inv (assoc _ _ _) โˆ™ + cubes n a) ``` diff --git a/src/synthetic-homotopy-theory/shifts-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/shifts-sequential-diagrams.lagda.md index c7c6e22f6f..be26604bde 100644 --- a/src/synthetic-homotopy-theory/shifts-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/shifts-sequential-diagrams.lagda.md @@ -934,17 +934,20 @@ module _ (up-c : universal-property-sequential-colimit c) where - compute-map-colimit-hom-shift-once-sequential-diagram : - map-sequential-colimit-hom-sequential-diagram - ( up-c) - ( shift-once-cocone-sequential-diagram c) - ( hom-shift-once-sequential-diagram A) ~ - id - compute-map-colimit-hom-shift-once-sequential-diagram = - ( htpy-map-universal-property-htpy-cocone-sequential-diagram - ( up-c) - ( compute-map-cocone-hom-shift-sequential-diagram c)) โˆ™h - ( compute-map-universal-property-sequential-colimit-id up-c) + opaque + unfolding map-sequential-colimit-hom-sequential-diagram + + compute-map-colimit-hom-shift-once-sequential-diagram : + map-sequential-colimit-hom-sequential-diagram + ( up-c) + ( shift-once-cocone-sequential-diagram c) + ( hom-shift-once-sequential-diagram A) ~ + id + compute-map-colimit-hom-shift-once-sequential-diagram = + ( htpy-map-universal-property-htpy-cocone-sequential-diagram + ( up-c) + ( compute-map-cocone-hom-shift-sequential-diagram c)) โˆ™h + ( compute-map-universal-property-sequential-colimit-id up-c) module _ {l1 l2 : Level} {A : sequential-diagram l1} diff --git a/src/synthetic-homotopy-theory/stuff-over.lagda.md b/src/synthetic-homotopy-theory/stuff-over.lagda.md index 05c40956f7..e5214a52e0 100644 --- a/src/synthetic-homotopy-theory/stuff-over.lagda.md +++ b/src/synthetic-homotopy-theory/stuff-over.lagda.md @@ -1,7 +1,7 @@ # Stuff over other stuff ```agda -{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} +{-# OPTIONS --lossy-unification #-} module synthetic-homotopy-theory.stuff-over where ``` @@ -76,6 +76,16 @@ module _ inv-htpy-over : htpy-over B' H f' g' โ†’ htpy-over B' (inv-htpy H) g' f' inv-htpy-over H' {a} a' = inv-dependent-identification B' (H a) (H' a') +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + + compute-inv-dependent-identification : + {x y : A} (p : x ๏ผ y) {x' : B x} {y' : B y} โ†’ + (q : dependent-identification B p x' y') โ†’ + inv-dependent-identification B p q ๏ผ map-eq-transpose-equiv-inv' (equiv-tr B p) (inv q) + compute-inv-dependent-identification refl q = inv (right-unit โˆ™ ap-id (inv q)) + module _ {l1 l2 l3 l4 l5 l6 : Level} {A : UU l1} {B : UU l2} {X : UU l3} @@ -104,6 +114,13 @@ module _ dependent-identification B' (ap s p) (s' x') (s' y') left-whisk-dependent-identification s' refl q = ap s' q + compute-left-whisk-dependent-identification : + {s : A โ†’ B} (s' : {a : A} โ†’ A' a โ†’ B' (s a)) + {x y : A} (p : x ๏ผ y) + {x' : A' x} {y' : A' y} (q : dependent-identification A' p x' y') โ†’ + left-whisk-dependent-identification s' p q ๏ผ + substitution-law-tr B' s p โˆ™ inv (preserves-tr (ฮป a โ†’ s' {a}) p x') โˆ™ ap s' q + compute-left-whisk-dependent-identification s' refl q = refl module _ {l1 l2 l3 l4 l5 l6 : Level} @@ -645,728 +662,728 @@ module _ ``` ```agda -open import foundation.sections -open import foundation.transport-along-homotopies -module _ - {l1 l2 : Level} - {A : UU l1} (B : A โ†’ UU l2) - where - - sect-section : - section (pr1 {B = B}) โ†’ - ((a : A) โ†’ B a) - sect-section (s , H) a = tr B (H a) (pr2 (s a)) - - section-sect : - ((a : A) โ†’ B a) โ†’ - section (pr1 {B = B}) - section-sect = section-dependent-function - -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} - (f : A โ†’ B) (f' : A' โ†’ B') - where - - htpy-hom-map : - (hA : A' โ†’ A) (hB : B' โ†’ B) โ†’ - coherence-square-maps f' hA hB f โ†’ - (hA' : A' โ†’ A) (hB' : B' โ†’ B) โ†’ - coherence-square-maps f' hA' hB' f โ†’ - hA ~ hA' โ†’ hB ~ hB' โ†’ - UU (l2 โŠ” l3) - htpy-hom-map hA hB H hA' hB' H' ฯƒA ฯƒB = H โˆ™h (ฯƒB ยทr f') ~ (f ยทl ฯƒA) โˆ™h H' - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} - {X : UU l4} {Y : UU l5} {Z : UU l6} - (f : A โ†’ B) (g : B โ†’ C) - (f' : X โ†’ Y) (g' : Y โ†’ Z) - (hA hA' : X โ†’ A) (hB hB' : Y โ†’ B) (hC hC' : Z โ†’ C) - (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') - (NL : coherence-square-maps f' hA hB f) - (FL : coherence-square-maps f' hA' hB' f) - (ฮฑ : htpy-hom-map f f' hA hB NL hA' hB' FL ฯƒA ฯƒB) - (NR : coherence-square-maps g' hB hC g) - (FR : coherence-square-maps g' hB' hC' g) - (ฮฒ : htpy-hom-map g g' hB hC NR hB' hC' FR ฯƒB ฯƒC) - where - open import foundation.commuting-squares-of-homotopies - - comp-htpy-hom-map : - htpy-hom-map (g โˆ˜ f) (g' โˆ˜ f') - hA hC - ( pasting-horizontal-coherence-square-maps f' g' hA hB hC f g NL NR) - hA' hC' - ( pasting-horizontal-coherence-square-maps f' g' hA' hB' hC' f g FL FR) - ฯƒA ฯƒC - comp-htpy-hom-map = - left-whisker-concat-coherence-square-homotopies (g ยทl NL) - ( g ยทl ฯƒB ยทr f') (NR ยทr f') (FR ยทr f') (ฯƒC ยทr (g' โˆ˜ f')) - ( ฮฒ ยทr f') โˆ™h - right-whisker-concat-htpy - ( inv-htpy - ( distributive-left-whisker-comp-concat g NL (ฯƒB ยทr f')) โˆ™h - left-whisker-compยฒ g ฮฑ โˆ™h - distributive-left-whisker-comp-concat g (f ยทl ฯƒA) FL โˆ™h - right-whisker-concat-htpy - ( preserves-comp-left-whisker-comp g f ฯƒA) - ( g ยทl FL)) - ( FR ยทr f') โˆ™h - assoc-htpy ((g โˆ˜ f) ยทl ฯƒA) (g ยทl FL) (FR ยทr f') +-- open import foundation.sections +-- open import foundation.transport-along-homotopies +-- module _ +-- {l1 l2 : Level} +-- {A : UU l1} (B : A โ†’ UU l2) +-- where -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} - (f : A โ†’ B) (f' : A' โ†’ B') - (hA : A' โ†’ A) (hB : B' โ†’ B) - (H : coherence-square-maps f' hA hB f) - where +-- sect-section : +-- section (pr1 {B = B}) โ†’ +-- ((a : A) โ†’ B a) +-- sect-section (s , H) a = tr B (H a) (pr2 (s a)) - section-displayed-map-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4) - section-displayed-map-over = - ฮฃ ( section hA) - ( ฮป sA โ†’ - ฮฃ ( section hB) - ( ฮป sB โ†’ - ฮฃ ( coherence-square-maps - f (map-section hA sA) (map-section hB sB) f') - ( ฮป K โ†’ - htpy-hom-map f f - ( hA โˆ˜ map-section hA sA) - ( hB โˆ˜ map-section hB sB) - ( pasting-vertical-coherence-square-maps f - ( map-section hA sA) (map-section hB sB) f' hA hB f K H) - id id refl-htpy - ( is-section-map-section hA sA) - ( is-section-map-section hB sB)))) +-- section-sect : +-- ((a : A) โ†’ B a) โ†’ +-- section (pr1 {B = B}) +-- section-sect = section-dependent-function -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {P : A โ†’ UU l2} - {B : UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) - (f' : {a : A} โ†’ P a โ†’ Q (f a)) - where +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} +-- (f : A โ†’ B) (f' : A' โ†’ B') +-- where - sect-map-over-section-map-over : - (s : - section-displayed-map-over f - (tot-map-over f (ฮป a โ†’ f' {a})) - pr1 pr1 refl-htpy) โ†’ - section-map-over f - ( f') - ( sect-section P (pr1 s)) - ( sect-section Q (pr1 (pr2 s))) - sect-map-over-section-map-over (sA , sB , H , ฮฑ) a = - ( preserves-tr (ฮป a โ†’ f' {a}) (ฯƒA a) (sA2 a)) โˆ™ - ( inv (substitution-law-tr Q f (ฯƒA a))) โˆ™ - ( ap (ฮป p โ†’ tr Q p (f' (sA2 a))) (inv (ฮฑ a โˆ™ right-unit))) โˆ™ - ( tr-concat (H1 a) (ฯƒB (f a)) (f' (sA2 a))) โˆ™ - ( ap - ( tr Q (ฯƒB (f a))) - ( substitution-law-tr Q pr1 (H a) โˆ™ apd pr2 (H a))) - where - sA1 : A โ†’ A - sA1 = pr1 โˆ˜ map-section pr1 sA - ฯƒA : sA1 ~ id - ฯƒA = is-section-map-section pr1 sA - sA2 : (a : A) โ†’ P (sA1 a) - sA2 = pr2 โˆ˜ map-section pr1 sA - sB1 : B โ†’ B - sB1 = pr1 โˆ˜ map-section pr1 sB - ฯƒB : sB1 ~ id - ฯƒB = is-section-map-section pr1 sB - H1 : f โˆ˜ sA1 ~ sB1 โˆ˜ f - H1 = pr1 ยทl H -``` +-- htpy-hom-map : +-- (hA : A' โ†’ A) (hB : B' โ†’ B) โ†’ +-- coherence-square-maps f' hA hB f โ†’ +-- (hA' : A' โ†’ A) (hB' : B' โ†’ B) โ†’ +-- coherence-square-maps f' hA' hB' f โ†’ +-- hA ~ hA' โ†’ hB ~ hB' โ†’ +-- UU (l2 โŠ” l3) +-- htpy-hom-map hA hB H hA' hB' H' ฯƒA ฯƒB = H โˆ™h (ฯƒB ยทr f') ~ (f ยทl ฯƒA) โˆ™h H' -```agda -module _ - {l1 l2 : Level} - {A : UU l1} {B : A โ†’ UU l2} - (s : (a : A) โ†’ B a) - where - - ap-map-section-family-lemma : - {a a' : A} (p : a ๏ผ a') โ†’ - ap (map-section-family s) p ๏ผ eq-pair-ฮฃ p (apd s p) - ap-map-section-family-lemma refl = refl -module _ - {l1 l2 l3 : Level} - {A : UU l1} {B : UU l2} {Q : B โ†’ UU l3} - (s : (b : B) โ†’ Q b) - {f g : A โ†’ B} (H : f ~ g) - where +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : UU l1} {B : UU l2} {C : UU l3} +-- {X : UU l4} {Y : UU l5} {Z : UU l6} +-- (f : A โ†’ B) (g : B โ†’ C) +-- (f' : X โ†’ Y) (g' : Y โ†’ Z) +-- (hA hA' : X โ†’ A) (hB hB' : Y โ†’ B) (hC hC' : Z โ†’ C) +-- (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') +-- (NL : coherence-square-maps f' hA hB f) +-- (FL : coherence-square-maps f' hA' hB' f) +-- (ฮฑ : htpy-hom-map f f' hA hB NL hA' hB' FL ฯƒA ฯƒB) +-- (NR : coherence-square-maps g' hB hC g) +-- (FR : coherence-square-maps g' hB' hC' g) +-- (ฮฒ : htpy-hom-map g g' hB hC NR hB' hC' FR ฯƒB ฯƒC) +-- where +-- open import foundation.commuting-squares-of-homotopies - left-whisker-dependent-function-lemma : - (a : A) โ†’ - (map-section-family s ยทl H) a ๏ผ eq-pair-ฮฃ (H a) (apd s (H a)) - left-whisker-dependent-function-lemma a = ap-map-section-family-lemma s (H a) -module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} - where - concat-vertical-eq-pair : - {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ - (q : dependent-identification B p x' y') โ†’ (r : y' ๏ผ z') โ†’ - eq-pair-ฮฃ p (q โˆ™ r) ๏ผ eq-pair-ฮฃ p q โˆ™ eq-pair-eq-fiber r - concat-vertical-eq-pair {x} refl q r = ap-concat (pair x) q r -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} - {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} - {f : A โ†’ B} (f' : (a : A) โ†’ A' a โ†’ B' (f a)) - where +-- comp-htpy-hom-map : +-- htpy-hom-map (g โˆ˜ f) (g' โˆ˜ f') +-- hA hC +-- ( pasting-horizontal-coherence-square-maps f' g' hA hB hC f g NL NR) +-- hA' hC' +-- ( pasting-horizontal-coherence-square-maps f' g' hA' hB' hC' f g FL FR) +-- ฯƒA ฯƒC +-- comp-htpy-hom-map = +-- left-whisker-concat-coherence-square-homotopies (g ยทl NL) +-- ( g ยทl ฯƒB ยทr f') (NR ยทr f') (FR ยทr f') (ฯƒC ยทr (g' โˆ˜ f')) +-- ( ฮฒ ยทr f') โˆ™h +-- right-whisker-concat-htpy +-- ( inv-htpy +-- ( distributive-left-whisker-comp-concat g NL (ฯƒB ยทr f')) โˆ™h +-- left-whisker-compยฒ g ฮฑ โˆ™h +-- distributive-left-whisker-comp-concat g (f ยทl ฯƒA) FL โˆ™h +-- right-whisker-concat-htpy +-- ( preserves-comp-left-whisker-comp g f ฯƒA) +-- ( g ยทl FL)) +-- ( FR ยทr f') โˆ™h +-- assoc-htpy ((g โˆ˜ f) ยทl ฯƒA) (g ยทl FL) (FR ยทr f') - ap-map-ฮฃ-eq-fiber : - {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ - ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) - ap-map-ฮฃ-eq-fiber x .x refl = refl - - -- ap-map-ฮฃ-eq-fiber' : - -- {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ - -- ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) - -- ap-map-ฮฃ-eq-fiber' {a} x y p = - -- compute-ap-eq-pair-ฮฃ (map-ฮฃ B' f f') refl p โˆ™ - -- ap-comp (pair (f a)) (f' a) p -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} - {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} - {f : A โ†’ B} {g : B โ†’ C} - (f' : (a : A) โ†’ A' a โ†’ B' (f a)) - (g' : (b : B) โ†’ B' b โ†’ C' (g b)) - (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) - (F : (a : A) โ†’ f' a (sA a) ๏ผ sB (f a)) (G : (b : B) โ†’ g' b (sB b) ๏ผ sC (g b)) - where +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} +-- (f : A โ†’ B) (f' : A' โ†’ B') +-- (hA : A' โ†’ A) (hB : B' โ†’ B) +-- (H : coherence-square-maps f' hA hB f) +-- where - pasting-horizontal-comp : - pasting-horizontal-coherence-square-maps f g - ( map-section-family sA) (map-section-family sB) (map-section-family sC) - ( tot-map-over f f') (tot-map-over g g') - ( eq-pair-eq-fiber โˆ˜ F) - ( eq-pair-eq-fiber โˆ˜ G) ~ - eq-pair-eq-fiber โˆ˜ - ((g' _) ยทl F โˆ™h G ยทr f) - pasting-horizontal-comp a = - ap - ( _โˆ™ eq-pair-eq-fiber (G (f a))) - ( inv (ap-comp (tot-map-over g g') (pair (f a)) (F a)) โˆ™ - ap-comp (pair (g (f a))) (g' (f a)) (F a)) โˆ™ - inv (ap-concat (pair (g (f a))) (ap (g' (f a)) (F a)) (G (f a))) +-- section-displayed-map-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4) +-- section-displayed-map-over = +-- ฮฃ ( section hA) +-- ( ฮป sA โ†’ +-- ฮฃ ( section hB) +-- ( ฮป sB โ†’ +-- ฮฃ ( coherence-square-maps +-- f (map-section hA sA) (map-section hB sB) f') +-- ( ฮป K โ†’ +-- htpy-hom-map f f +-- ( hA โˆ˜ map-section hA sA) +-- ( hB โˆ˜ map-section hB sB) +-- ( pasting-vertical-coherence-square-maps f +-- ( map-section hA sA) (map-section hB sB) f' hA hB f K H) +-- id id refl-htpy +-- ( is-section-map-section hA sA) +-- ( is-section-map-section hB sB)))) -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} - {f g : A โ†’ B} {f' g' : X โ†’ Y} - (top : f' ~ g') (bottom : f ~ g) - {hA : X โ†’ A} {hB : Y โ†’ B} - (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') - where +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {P : A โ†’ UU l2} +-- {B : UU l3} {Q : B โ†’ UU l4} +-- (f : A โ†’ B) +-- (f' : {a : A} โ†’ P a โ†’ Q (f a)) +-- where - hom-htpy : UU (l2 โŠ” l3) - hom-htpy = N โˆ™h (hB ยทl top) ~ (bottom ยทr hA) โˆ™h F +-- sect-map-over-section-map-over : +-- (s : +-- section-displayed-map-over f +-- (tot-map-over f (ฮป a โ†’ f' {a})) +-- pr1 pr1 refl-htpy) โ†’ +-- section-map-over f +-- ( f') +-- ( sect-section P (pr1 s)) +-- ( sect-section Q (pr1 (pr2 s))) +-- sect-map-over-section-map-over (sA , sB , H , ฮฑ) a = +-- ( preserves-tr (ฮป a โ†’ f' {a}) (ฯƒA a) (sA2 a)) โˆ™ +-- ( inv (substitution-law-tr Q f (ฯƒA a))) โˆ™ +-- ( ap (ฮป p โ†’ tr Q p (f' (sA2 a))) (inv (ฮฑ a โˆ™ right-unit))) โˆ™ +-- ( tr-concat (H1 a) (ฯƒB (f a)) (f' (sA2 a))) โˆ™ +-- ( ap +-- ( tr Q (ฯƒB (f a))) +-- ( substitution-law-tr Q pr1 (H a) โˆ™ apd pr2 (H a))) +-- where +-- sA1 : A โ†’ A +-- sA1 = pr1 โˆ˜ map-section pr1 sA +-- ฯƒA : sA1 ~ id +-- ฯƒA = is-section-map-section pr1 sA +-- sA2 : (a : A) โ†’ P (sA1 a) +-- sA2 = pr2 โˆ˜ map-section pr1 sA +-- sB1 : B โ†’ B +-- sB1 = pr1 โˆ˜ map-section pr1 sB +-- ฯƒB : sB1 ~ id +-- ฯƒB = is-section-map-section pr1 sB +-- H1 : f โˆ˜ sA1 ~ sB1 โˆ˜ f +-- H1 = pr1 ยทl H +-- ``` +-- ```agda -- module _ +-- {l1 l2 : Level} +-- {A : UU l1} {B : A โ†’ UU l2} +-- (s : (a : A) โ†’ B a) -- where --- alt-map-coherence-square-homotopies +-- ap-map-section-family-lemma : +-- {a a' : A} (p : a ๏ผ a') โ†’ +-- ap (map-section-family s) p ๏ผ eq-pair-ฮฃ p (apd s p) +-- ap-map-section-family-lemma refl = refl +-- module _ +-- {l1 l2 l3 : Level} +-- {A : UU l1} {B : UU l2} {Q : B โ†’ UU l3} +-- (s : (b : B) โ†’ Q b) +-- {f g : A โ†’ B} (H : f ~ g) +-- where -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} {V : UU l5} {W : UU l6} - {f g : A โ†’ B} {f' g' : X โ†’ Y} {f'' g'' : V โ†’ W} - (mid : f' ~ g') (bottom : f ~ g) (top : f'' ~ g'') - {hA : X โ†’ A} {hB : Y โ†’ B} {hA' : V โ†’ X} {hB' : W โ†’ Y} - (bottom-N : f โˆ˜ hA ~ hB โˆ˜ f') (bottom-F : g โˆ˜ hA ~ hB โˆ˜ g') - (top-N : f' โˆ˜ hA' ~ hB' โˆ˜ f'') (top-F : g' โˆ˜ hA' ~ hB' โˆ˜ g'') - where +-- left-whisker-dependent-function-lemma : +-- (a : A) โ†’ +-- (map-section-family s ยทl H) a ๏ผ eq-pair-ฮฃ (H a) (apd s (H a)) +-- left-whisker-dependent-function-lemma a = ap-map-section-family-lemma s (H a) +-- module _ +-- {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} +-- where +-- concat-vertical-eq-pair : +-- {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ +-- (q : dependent-identification B p x' y') โ†’ (r : y' ๏ผ z') โ†’ +-- eq-pair-ฮฃ p (q โˆ™ r) ๏ผ eq-pair-ฮฃ p q โˆ™ eq-pair-eq-fiber r +-- concat-vertical-eq-pair {x} refl q r = ap-concat (pair x) q r +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} +-- {A' : A โ†’ UU l3} {B' : B โ†’ UU l4} +-- {f : A โ†’ B} (f' : (a : A) โ†’ A' a โ†’ B' (f a)) +-- where - pasting-vertical-hom-htpy : - hom-htpy mid bottom {hB = hB} bottom-N bottom-F โ†’ - hom-htpy top mid {hB = hB'} top-N top-F โ†’ - hom-htpy top bottom {hB = hB โˆ˜ hB'} - ( pasting-vertical-coherence-square-maps f'' hA' hB' f' hA hB f - top-N bottom-N) - ( pasting-vertical-coherence-square-maps g'' hA' hB' g' hA hB g - top-F bottom-F) - pasting-vertical-hom-htpy ฮฑ ฮฒ = - left-whisker-concat-coherence-square-homotopies - ( bottom-N ยทr hA') - ( hB ยทl mid ยทr hA') - ( hB ยทl top-N) - ( hB ยทl top-F) - ( (hB โˆ˜ hB') ยทl top) - ( left-whisker-concat-htpy (hB ยทl top-N) - ( inv-htpy (preserves-comp-left-whisker-comp hB hB' top)) โˆ™h - map-coherence-square-homotopies hB (mid ยทr hA') top-N top-F (hB' ยทl top) - ( ฮฒ)) โˆ™h - right-whisker-concat-htpy (ฮฑ ยทr hA') (hB ยทl top-F) โˆ™h - assoc-htpy (bottom ยทr (hA โˆ˜ hA')) (bottom-F ยทr hA') (hB ยทl top-F) +-- ap-map-ฮฃ-eq-fiber : +-- {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ +-- ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) +-- ap-map-ฮฃ-eq-fiber x .x refl = refl + +-- -- ap-map-ฮฃ-eq-fiber' : +-- -- {a : A} (x y : A' a) (p : x ๏ผ y) โ†’ +-- -- ap (map-ฮฃ B' f f') (eq-pair-eq-fiber p) ๏ผ eq-pair-eq-fiber (ap (f' a) p) +-- -- ap-map-ฮฃ-eq-fiber' {a} x y p = +-- -- compute-ap-eq-pair-ฮฃ (map-ฮฃ B' f f') refl p โˆ™ +-- -- ap-comp (pair (f a)) (f' a) p +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : UU l1} {B : UU l2} {C : UU l3} +-- {A' : A โ†’ UU l4} {B' : B โ†’ UU l5} {C' : C โ†’ UU l6} +-- {f : A โ†’ B} {g : B โ†’ C} +-- (f' : (a : A) โ†’ A' a โ†’ B' (f a)) +-- (g' : (b : B) โ†’ B' b โ†’ C' (g b)) +-- (sA : (a : A) โ†’ A' a) (sB : (b : B) โ†’ B' b) (sC : (c : C) โ†’ C' c) +-- (F : (a : A) โ†’ f' a (sA a) ๏ผ sB (f a)) (G : (b : B) โ†’ g' b (sB b) ๏ผ sC (g b)) +-- where -module _ - {l1 l2 : Level} - {A : UU l1} {B : UU l2} - {f g : A โ†’ B} (H : f ~ g) - where +-- pasting-horizontal-comp : +-- pasting-horizontal-coherence-square-maps f g +-- ( map-section-family sA) (map-section-family sB) (map-section-family sC) +-- ( tot-map-over f f') (tot-map-over g g') +-- ( eq-pair-eq-fiber โˆ˜ F) +-- ( eq-pair-eq-fiber โˆ˜ G) ~ +-- eq-pair-eq-fiber โˆ˜ +-- ((g' _) ยทl F โˆ™h G ยทr f) +-- pasting-horizontal-comp a = +-- ap +-- ( _โˆ™ eq-pair-eq-fiber (G (f a))) +-- ( inv (ap-comp (tot-map-over g g') (pair (f a)) (F a)) โˆ™ +-- ap-comp (pair (g (f a))) (g' (f a)) (F a)) โˆ™ +-- inv (ap-concat (pair (g (f a))) (ap (g' (f a)) (F a)) (G (f a))) - id-hom-htpy : hom-htpy H H {hA = id} {hB = id} refl-htpy refl-htpy - id-hom-htpy = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy +-- module _ +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} +-- {f g : A โ†’ B} {f' g' : X โ†’ Y} +-- (top : f' ~ g') (bottom : f ~ g) +-- {hA : X โ†’ A} {hB : Y โ†’ B} +-- (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') +-- where -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} - (f g : A โ†’ B) (f' g' : X โ†’ Y) - (bottom : f ~ g) (top : f' ~ g') - (hA : X โ†’ A) (hB : Y โ†’ B) - (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') - (ฮฑ : hom-htpy top bottom N F) - (hA' : X โ†’ A) (hB' : Y โ†’ B) - (N' : f โˆ˜ hA' ~ hB' โˆ˜ f') (F' : g โˆ˜ hA' ~ hB' โˆ˜ g') - (ฮฒ : hom-htpy top bottom N' F') - (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') - (ฮณN : htpy-hom-map f f' hA hB N hA' hB' N' ฯƒA ฯƒB) - (ฮณF : htpy-hom-map g g' hA hB F hA' hB' F' ฯƒA ฯƒB) - where +-- hom-htpy : UU (l2 โŠ” l3) +-- hom-htpy = N โˆ™h (hB ยทl top) ~ (bottom ยทr hA) โˆ™h F - nudged-ฮฑ nudged-ฮฒ : - (N โˆ™h (hB ยทl top)) โˆ™h (ฯƒB ยทr g') ~ - (f ยทl ฯƒA) โˆ™h ((bottom ยทr hA') โˆ™h F') - nudged-ฮฑ = - right-whisker-concat-htpy ฮฑ (ฯƒB ยทr g') โˆ™h - assoc-htpy (bottom ยทr hA) F (ฯƒB ยทr g') โˆ™h - left-whisker-concat-htpy (bottom ยทr hA) ฮณF โˆ™h - right-whisker-concat-coherence-square-homotopies - ( f ยทl ฯƒA) - ( bottom ยทr hA) - ( bottom ยทr hA') - ( g ยทl ฯƒA) - ( ฮป x โ†’ nat-htpy bottom (ฯƒA x)) - ( F') - nudged-ฮฒ = - left-whisker-concat-coherence-square-homotopies N - ( ฯƒB ยทr f') - ( hB ยทl top) - ( hB' ยทl top) - ( ฯƒB ยทr g') - ( ฮป x โ†’ inv (nat-htpy ฯƒB (top x))) โˆ™h - right-whisker-concat-htpy ฮณN (hB' ยทl top) โˆ™h - assoc-htpy (f ยทl ฯƒA) N' (hB' ยทl top) โˆ™h - left-whisker-concat-htpy (f ยทl ฯƒA) ฮฒ - - htpy-hom-htpy : UU (l2 โŠ” l3) - htpy-hom-htpy = nudged-ฮฑ ~ nudged-ฮฒ +-- -- module _ +-- -- where -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} - {f' g' : A' โ†’ B'} (top : f' ~ g') - {f g : A โ†’ B} (bottom : f ~ g) - (hA : A' โ†’ A) (hB : B' โ†’ B) - (N : coherence-square-maps f' hA hB f) - (F : coherence-square-maps g' hA hB g) - (ฮฑ : hom-htpy top bottom {hB = hB} N F) - where +-- -- alt-map-coherence-square-homotopies - coh-section-hom-htpy : - (sA : section hA) (sB : section hB) - (sN : coherence-square-maps f (map-section hA sA) (map-section hB sB) f') - (sF : coherence-square-maps g (map-section hA sA) (map-section hB sB) g') - (ฮฒ : hom-htpy bottom top {hB = map-section hB sB} sN sF) - (ฮณN : - htpy-hom-map f f - ( hA โˆ˜ map-section hA sA) (hB โˆ˜ map-section hB sB) - ( pasting-vertical-coherence-square-maps f - ( map-section hA sA) (map-section hB sB) - f' hA hB f sN N) - id id refl-htpy - ( is-section-map-section hA sA) - ( is-section-map-section hB sB)) - (ฮณF : - htpy-hom-map g g - ( hA โˆ˜ pr1 sA) (hB โˆ˜ pr1 sB) - ( pasting-vertical-coherence-square-maps g (pr1 sA) (pr1 sB) g' hA - hB g sF F) - id id refl-htpy (pr2 sA) (pr2 sB)) โ†’ - UU (l1 โŠ” l2) - coh-section-hom-htpy sA sB sN sF ฮฒ = - htpy-hom-htpy f g f g bottom bottom - ( hA โˆ˜ map-section hA sA) - ( hB โˆ˜ map-section hB sB) - ( pasting-vertical-coherence-square-maps f map-sA map-sB f' hA hB f sN N) - ( pasting-vertical-coherence-square-maps g map-sA map-sB g' hA hB g sF F) - ( pasting-vertical-hom-htpy top bottom bottom N F sN sF ฮฑ ฮฒ) - id id refl-htpy refl-htpy (id-hom-htpy bottom) - ( is-section-map-section hA sA) - ( is-section-map-section hB sB) - where - map-sA : A โ†’ A' - map-sA = map-section hA sA - map-sB : B โ†’ B' - map-sB = map-section hB sB +-- module _ +-- {l1 l2 l3 l4 l5 l6 : Level} +-- {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} {V : UU l5} {W : UU l6} +-- {f g : A โ†’ B} {f' g' : X โ†’ Y} {f'' g'' : V โ†’ W} +-- (mid : f' ~ g') (bottom : f ~ g) (top : f'' ~ g'') +-- {hA : X โ†’ A} {hB : Y โ†’ B} {hA' : V โ†’ X} {hB' : W โ†’ Y} +-- (bottom-N : f โˆ˜ hA ~ hB โˆ˜ f') (bottom-F : g โˆ˜ hA ~ hB โˆ˜ g') +-- (top-N : f' โˆ˜ hA' ~ hB' โˆ˜ f'') (top-F : g' โˆ˜ hA' ~ hB' โˆ˜ g'') +-- where -module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} - where +-- pasting-vertical-hom-htpy : +-- hom-htpy mid bottom {hB = hB} bottom-N bottom-F โ†’ +-- hom-htpy top mid {hB = hB'} top-N top-F โ†’ +-- hom-htpy top bottom {hB = hB โˆ˜ hB'} +-- ( pasting-vertical-coherence-square-maps f'' hA' hB' f' hA hB f +-- top-N bottom-N) +-- ( pasting-vertical-coherence-square-maps g'' hA' hB' g' hA hB g +-- top-F bottom-F) +-- pasting-vertical-hom-htpy ฮฑ ฮฒ = +-- left-whisker-concat-coherence-square-homotopies +-- ( bottom-N ยทr hA') +-- ( hB ยทl mid ยทr hA') +-- ( hB ยทl top-N) +-- ( hB ยทl top-F) +-- ( (hB โˆ˜ hB') ยทl top) +-- ( left-whisker-concat-htpy (hB ยทl top-N) +-- ( inv-htpy (preserves-comp-left-whisker-comp hB hB' top)) โˆ™h +-- map-coherence-square-homotopies hB (mid ยทr hA') top-N top-F (hB' ยทl top) +-- ( ฮฒ)) โˆ™h +-- right-whisker-concat-htpy (ฮฑ ยทr hA') (hB ยทl top-F) โˆ™h +-- assoc-htpy (bottom ยทr (hA โˆ˜ hA')) (bottom-F ยทr hA') (hB ยทl top-F) - compute-concat-dependent-identification-right-base-refl : - { x y : A} (p : x ๏ผ y) โ†’ - { x' : B x} {y' z' : B y} (p' : dependent-identification B p x' y') โ†’ - ( q' : y' ๏ผ z') โ†’ - concat-dependent-identification B p refl p' q' ๏ผ ap (ฮป r โ†’ tr B r x') right-unit โˆ™ p' โˆ™ q' - compute-concat-dependent-identification-right-base-refl refl p' q' = ap (_โˆ™ q') (ap-id p') - - interchange-concat-eq-pair-ฮฃ-left : - {y z : A} (q : y ๏ผ z) {x' y' : B y} {z' : B z} โ†’ - (p' : x' ๏ผ y') - (q' : dependent-identification B q y' z') โ†’ - eq-pair-eq-fiber p' โˆ™ eq-pair-ฮฃ q q' ๏ผ - eq-pair-ฮฃ q (ap (tr B q) p' โˆ™ q') - interchange-concat-eq-pair-ฮฃ-left q refl q' = refl - - interchange-concat-eq-pair-ฮฃ-right : - {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ - (p' : dependent-identification B p x' y') โ†’ - (q' : y' ๏ผ z') โ†’ - eq-pair-ฮฃ p p' โˆ™ eq-pair-eq-fiber q' ๏ผ - eq-pair-ฮฃ p (p' โˆ™ q') - interchange-concat-eq-pair-ฮฃ-right p p' refl = - right-unit โˆ™ ap (eq-pair-ฮฃ p) (inv right-unit) +-- module _ +-- {l1 l2 : Level} +-- {A : UU l1} {B : UU l2} +-- {f g : A โ†’ B} (H : f ~ g) +-- where -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} {P : A โ†’ UU l3} {Q : B โ†’ UU l4} - {f g : A โ†’ B} (H : f ~ g) - {f' : (a : A) โ†’ P a โ†’ Q (f a)} {g' : (a : A) โ†’ P a โ†’ Q (g a)} - (H' : htpy-over Q H (f' _) (g' _)) - (sA : (a : A) โ†’ P a) - (sB : (b : B) โ†’ Q b) - (F : section-map-over f (f' _) sA sB) - (G : section-map-over g (g' _) sA sB) - (ฮฑ : section-htpy-over H H' sA sB F G) - where - open import foundation.embeddings - - _ : coh-section-hom-htpy - ( ฮป p โ†’ eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p))) - ( H) - pr1 pr1 refl-htpy refl-htpy - ( ฮป p โ†’ ap-pr1-eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p)) โˆ™ inv right-unit) - ( section-dependent-function sA) - ( section-dependent-function sB) - ( eq-pair-eq-fiber โˆ˜ F) - ( eq-pair-eq-fiber โˆ˜ G) - -- The point is that this will be `ap pr1`'d, so the ฮฑ in the fiber is - -- projected away. This definition should probably be defined in a nicer way - -- to make the proof less opaque. - ( ฮป a โ†’ - ap (eq-pair-eq-fiber (F a) โˆ™_) (ap-map-section-family-lemma sB (H a)) โˆ™ - interchange-concat-eq-pair-ฮฃ-left (H a) (F a) (apd sB (H a)) โˆ™ - ap (eq-pair-ฮฃ (H a)) (inv (ฮฑ a)) โˆ™ - inv (interchange-concat-eq-pair-ฮฃ-right (H a) (H' (sA a)) (G a))) - ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (F a)) - ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (G a)) - _ = {!!} +-- id-hom-htpy : hom-htpy H H {hA = id} {hB = id} refl-htpy refl-htpy +-- id-hom-htpy = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy -- module _ --- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} --- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} --- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) --- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} --- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') --- (top : h' โˆ˜ f' ~ k' โˆ˜ g') --- (bottom : h โˆ˜ f ~ k โˆ˜ g) --- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) --- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) --- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) --- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) --- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) --- (ฮฑ : --- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD --- top back-left back-right front-left front-right bottom) --- (hA' : A' โ†’ A) (hB' : B' โ†’ B) (hC' : C' โ†’ C) (hD' : D' โ†’ D) --- (back-left' : (f โˆ˜ hA') ~ (hB' โˆ˜ f')) --- (back-right' : (g โˆ˜ hA') ~ (hC' โˆ˜ g')) --- (front-left' : (h โˆ˜ hB') ~ (hD' โˆ˜ h')) --- (front-right' : (k โˆ˜ hC') ~ (hD' โˆ˜ k')) --- (ฮฒ : --- coherence-cube-maps f g h k f' g' h' k' hA' hB' hC' hD' --- top back-left' back-right' front-left' front-right' bottom) --- (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') (ฯƒD : hD ~ hD') --- (back-left-H : htpy-hom-map f f' hA hB back-left hA' hB' back-left' ฯƒA ฯƒB) --- (back-right-H : htpy-hom-map g g' hA hC back-right hA' hC' back-right' ฯƒA ฯƒC) --- (front-left-H : htpy-hom-map h h' hB hD front-left hB' hD' front-left' ฯƒB ฯƒD) --- (front-right-H : htpy-hom-map k k' hC hD front-right hC' hD' front-right' ฯƒC ฯƒD) +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} +-- (f g : A โ†’ B) (f' g' : X โ†’ Y) +-- (bottom : f ~ g) (top : f' ~ g') +-- (hA : X โ†’ A) (hB : Y โ†’ B) +-- (N : f โˆ˜ hA ~ hB โˆ˜ f') (F : g โˆ˜ hA ~ hB โˆ˜ g') +-- (ฮฑ : hom-htpy top bottom N F) +-- (hA' : X โ†’ A) (hB' : Y โ†’ B) +-- (N' : f โˆ˜ hA' ~ hB' โˆ˜ f') (F' : g โˆ˜ hA' ~ hB' โˆ˜ g') +-- (ฮฒ : hom-htpy top bottom N' F') +-- (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') +-- (ฮณN : htpy-hom-map f f' hA hB N hA' hB' N' ฯƒA ฯƒB) +-- (ฮณF : htpy-hom-map g g' hA hB F hA' hB' F' ฯƒA ฯƒB) -- where --- open import foundation.commuting-squares-of-homotopies --- htpy-hom-square : --- UU (l4 โŠ” l1') --- htpy-hom-square = --- htpy-hom-htpy (h โˆ˜ f) (k โˆ˜ g) (h' โˆ˜ f') (k' โˆ˜ g') bottom top hA hD --- ( pasting-horizontal-coherence-square-maps f' h' hA hB hD f h back-left front-left) --- ( pasting-horizontal-coherence-square-maps g' k' hA hC hD g k back-right front-right) --- ( ฮฑ) --- hA' hD' --- ( pasting-horizontal-coherence-square-maps f' h' hA' hB' hD' f h back-left' front-left') --- ( pasting-horizontal-coherence-square-maps g' k' hA' hC' hD' g k back-right' front-right') --- ( ฮฒ) --- ฯƒA ฯƒD --- ( comp-htpy-hom-map f h f' h' hA hA' hB hB' hD hD' ฯƒA ฯƒB ฯƒD --- back-left back-left' back-left-H --- front-left front-left' front-left-H) --- ( comp-htpy-hom-map g k g' k' hA hA' hC hC' hD hD' ฯƒA ฯƒC ฯƒD --- back-right back-right' back-right-H --- front-right front-right' front-right-H) +-- nudged-ฮฑ nudged-ฮฒ : +-- (N โˆ™h (hB ยทl top)) โˆ™h (ฯƒB ยทr g') ~ +-- (f ยทl ฯƒA) โˆ™h ((bottom ยทr hA') โˆ™h F') +-- nudged-ฮฑ = +-- right-whisker-concat-htpy ฮฑ (ฯƒB ยทr g') โˆ™h +-- assoc-htpy (bottom ยทr hA) F (ฯƒB ยทr g') โˆ™h +-- left-whisker-concat-htpy (bottom ยทr hA) ฮณF โˆ™h +-- right-whisker-concat-coherence-square-homotopies +-- ( f ยทl ฯƒA) +-- ( bottom ยทr hA) +-- ( bottom ยทr hA') +-- ( g ยทl ฯƒA) +-- ( ฮป x โ†’ nat-htpy bottom (ฯƒA x)) +-- ( F') +-- nudged-ฮฒ = +-- left-whisker-concat-coherence-square-homotopies N +-- ( ฯƒB ยทr f') +-- ( hB ยทl top) +-- ( hB' ยทl top) +-- ( ฯƒB ยทr g') +-- ( ฮป x โ†’ inv (nat-htpy ฯƒB (top x))) โˆ™h +-- right-whisker-concat-htpy ฮณN (hB' ยทl top) โˆ™h +-- assoc-htpy (f ยทl ฯƒA) N' (hB' ยทl top) โˆ™h +-- left-whisker-concat-htpy (f ยทl ฯƒA) ฮฒ + +-- htpy-hom-htpy : UU (l2 โŠ” l3) +-- htpy-hom-htpy = nudged-ฮฑ ~ nudged-ฮฒ -- module _ -- {l1 l2 l3 l4 : Level} --- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} --- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) --- (H : coherence-square-maps g f k h) +-- {A : UU l1} {B : UU l2} {A' : UU l3} {B' : UU l4} +-- {f' g' : A' โ†’ B'} (top : f' ~ g') +-- {f g : A โ†’ B} (bottom : f ~ g) +-- (hA : A' โ†’ A) (hB : B' โ†’ B) +-- (N : coherence-square-maps f' hA hB f) +-- (F : coherence-square-maps g' hA hB g) +-- (ฮฑ : hom-htpy top bottom {hB = hB} N F) -- where --- id-cube : --- coherence-cube-maps f g h k f g h k id id id id --- H refl-htpy refl-htpy refl-htpy refl-htpy H --- id-cube = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy +-- coh-section-hom-htpy : +-- (sA : section hA) (sB : section hB) +-- (sN : coherence-square-maps f (map-section hA sA) (map-section hB sB) f') +-- (sF : coherence-square-maps g (map-section hA sA) (map-section hB sB) g') +-- (ฮฒ : hom-htpy bottom top {hB = map-section hB sB} sN sF) +-- (ฮณN : +-- htpy-hom-map f f +-- ( hA โˆ˜ map-section hA sA) (hB โˆ˜ map-section hB sB) +-- ( pasting-vertical-coherence-square-maps f +-- ( map-section hA sA) (map-section hB sB) +-- f' hA hB f sN N) +-- id id refl-htpy +-- ( is-section-map-section hA sA) +-- ( is-section-map-section hB sB)) +-- (ฮณF : +-- htpy-hom-map g g +-- ( hA โˆ˜ pr1 sA) (hB โˆ˜ pr1 sB) +-- ( pasting-vertical-coherence-square-maps g (pr1 sA) (pr1 sB) g' hA +-- hB g sF F) +-- id id refl-htpy (pr2 sA) (pr2 sB)) โ†’ +-- UU (l1 โŠ” l2) +-- coh-section-hom-htpy sA sB sN sF ฮฒ = +-- htpy-hom-htpy f g f g bottom bottom +-- ( hA โˆ˜ map-section hA sA) +-- ( hB โˆ˜ map-section hB sB) +-- ( pasting-vertical-coherence-square-maps f map-sA map-sB f' hA hB f sN N) +-- ( pasting-vertical-coherence-square-maps g map-sA map-sB g' hA hB g sF F) +-- ( pasting-vertical-hom-htpy top bottom bottom N F sN sF ฮฑ ฮฒ) +-- id id refl-htpy refl-htpy (id-hom-htpy bottom) +-- ( is-section-map-section hA sA) +-- ( is-section-map-section hB sB) +-- where +-- map-sA : A โ†’ A' +-- map-sA = map-section hA sA +-- map-sB : B โ†’ B' +-- map-sB = map-section hB sB -- module _ --- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} --- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} --- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) --- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} --- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') --- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) --- (top : (h' โˆ˜ f') ~ (k' โˆ˜ g')) --- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) --- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) --- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) --- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) --- (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) --- (ฮฑ : --- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD --- top back-left back-right front-left front-right bottom) +-- {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} -- where --- section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l1' โŠ” l2' โŠ” l3' โŠ” l4') --- section-displayed-cube-over = --- ฮฃ ( section-displayed-map-over f f' hA hB back-left) --- ( ฮป sF โ†’ --- ฮฃ ( section-displayed-map-over k k' hC hD front-right) --- ( ฮป sK โ†’ --- ฮฃ ( coherence-square-maps g --- ( map-section hA (pr1 sF)) --- ( map-section hC (pr1 sK)) --- ( g')) --- ( ฮป G โ†’ --- ฮฃ ( htpy-hom-map g g --- ( hA โˆ˜ map-section hA (pr1 sF)) --- ( hC โˆ˜ map-section hC (pr1 sK)) --- ( pasting-vertical-coherence-square-maps g --- ( map-section hA (pr1 sF)) --- ( map-section hC (pr1 sK)) --- g' hA hC g --- G back-right) --- id id refl-htpy --- ( is-section-map-section hA (pr1 sF)) --- ( is-section-map-section hC (pr1 sK))) --- ( ฮป sG โ†’ --- ฮฃ ( coherence-square-maps h --- ( map-section hB (pr1 (pr2 sF))) --- ( map-section hD (pr1 (pr2 sK))) --- ( h')) --- ( ฮป H โ†’ --- ฮฃ ( htpy-hom-map h h --- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) --- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) --- ( pasting-vertical-coherence-square-maps h --- ( map-section hB (pr1 (pr2 sF))) --- ( map-section hD (pr1 (pr2 sK))) --- h' hB hD h --- H front-left) --- id id refl-htpy --- ( is-section-map-section hB (pr1 (pr2 sF))) --- ( is-section-map-section hD (pr1 (pr2 sK)))) --- ( ฮป sH โ†’ --- ฮฃ ( coherence-cube-maps f' g' h' k' f g h k --- ( map-section hA (pr1 sF)) --- ( map-section hB (pr1 (pr2 sF))) --- ( map-section hC (pr1 sK)) --- ( map-section hD (pr1 (pr2 sK))) --- ( bottom) --- ( pr1 (pr2 (pr2 sF))) --- ( G) --- ( H) --- ( pr1 (pr2 (pr2 sK))) --- ( top)) --- ( ฮป ฮฒ โ†’ --- htpy-hom-square f g h k f g h k bottom bottom --- ( hA โˆ˜ map-section hA (pr1 sF)) --- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) --- ( hC โˆ˜ map-section hC (pr1 sK)) --- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) --- ( pasting-vertical-coherence-square-maps f --- ( map-section hA (pr1 sF)) --- ( map-section hB (pr1 (pr2 sF))) --- f' hA hB f --- ( pr1 (pr2 (pr2 sF))) --- ( back-left)) --- ( pasting-vertical-coherence-square-maps g --- ( map-section hA (pr1 sF)) --- ( map-section hC (pr1 sK)) --- g' hA hC g --- ( G) --- ( back-right)) --- ( pasting-vertical-coherence-square-maps h --- ( map-section hB (pr1 (pr2 sF))) --- ( map-section hD (pr1 (pr2 sK))) --- h' hB hD h --- ( H) --- ( front-left)) --- ( pasting-vertical-coherence-square-maps k --- ( map-section hC (pr1 sK)) --- ( map-section hD (pr1 (pr2 sK))) --- k' hC hD k --- ( pr1 (pr2 (pr2 sK))) --- ( front-right)) --- ( pasting-vertical-coherence-cube-maps f g h k --- f' g' h' k' f g h k --- hA hB hC hD --- ( map-section hA (pr1 sF)) --- ( map-section hB (pr1 (pr2 sF))) --- ( map-section hC (pr1 sK)) --- ( map-section hD (pr1 (pr2 sK))) --- ( top) --- back-left back-right front-left front-right bottom --- ( bottom) --- ( pr1 (pr2 (pr2 sF))) --- ( G) --- ( H) --- ( pr1 (pr2 (pr2 sK))) --- ( ฮฑ) --- ( ฮฒ)) --- id id id id --- refl-htpy refl-htpy refl-htpy refl-htpy --- ( id-cube f g h k bottom) --- ( is-section-map-section hA (pr1 sF)) --- ( is-section-map-section hB (pr1 (pr2 sF))) --- ( is-section-map-section hC (pr1 sK)) --- ( is-section-map-section hD (pr1 (pr2 sK))) --- ( pr2 (pr2 (pr2 sF))) --- ( sG) --- ( sH) --- ( pr2 (pr2 (pr2 sK)))))))))) +-- compute-concat-dependent-identification-right-base-refl : +-- { x y : A} (p : x ๏ผ y) โ†’ +-- { x' : B x} {y' z' : B y} (p' : dependent-identification B p x' y') โ†’ +-- ( q' : y' ๏ผ z') โ†’ +-- concat-dependent-identification B p refl p' q' ๏ผ ap (ฮป r โ†’ tr B r x') right-unit โˆ™ p' โˆ™ q' +-- compute-concat-dependent-identification-right-base-refl refl p' q' = ap (_โˆ™ q') (ap-id p') + +-- interchange-concat-eq-pair-ฮฃ-left : +-- {y z : A} (q : y ๏ผ z) {x' y' : B y} {z' : B z} โ†’ +-- (p' : x' ๏ผ y') +-- (q' : dependent-identification B q y' z') โ†’ +-- eq-pair-eq-fiber p' โˆ™ eq-pair-ฮฃ q q' ๏ผ +-- eq-pair-ฮฃ q (ap (tr B q) p' โˆ™ q') +-- interchange-concat-eq-pair-ฮฃ-left q refl q' = refl + +-- interchange-concat-eq-pair-ฮฃ-right : +-- {x y : A} (p : x ๏ผ y) {x' : B x} {y' z' : B y} โ†’ +-- (p' : dependent-identification B p x' y') โ†’ +-- (q' : y' ๏ผ z') โ†’ +-- eq-pair-ฮฃ p p' โˆ™ eq-pair-eq-fiber q' ๏ผ +-- eq-pair-ฮฃ p (p' โˆ™ q') +-- interchange-concat-eq-pair-ฮฃ-right p p' refl = +-- right-unit โˆ™ ap (eq-pair-ฮฃ p) (inv right-unit) -- module _ --- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} --- {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} --- {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} --- (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) --- (g1' : (p : P1) โ†’ Q1 p โ†’ Q3 (g1 p)) --- (f1' : (p : P1) โ†’ Q1 p โ†’ Q2 (f1 p)) --- (f2' : (p : P3) โ†’ Q3 p โ†’ Q4 (f2 p)) --- (g2' : (p : P2) โ†’ Q2 p โ†’ Q4 (g2 p)) --- (bottom : g2 โˆ˜ f1 ~ f2 โˆ˜ g1) --- (top : square-over g1 f1 f2 g2 (g1' _) (f1' _) (f2' _) (g2' _) bottom) +-- {l1 l2 l3 l4 : Level} +-- {A : UU l1} {B : UU l2} {P : A โ†’ UU l3} {Q : B โ†’ UU l4} +-- {f g : A โ†’ B} (H : f ~ g) +-- {f' : (a : A) โ†’ P a โ†’ Q (f a)} {g' : (a : A) โ†’ P a โ†’ Q (g a)} +-- (H' : htpy-over Q H (f' _) (g' _)) +-- (sA : (a : A) โ†’ P a) +-- (sB : (b : B) โ†’ Q b) +-- (F : section-map-over f (f' _) sA sB) +-- (G : section-map-over g (g' _) sA sB) +-- (ฮฑ : section-htpy-over H H' sA sB F G) -- where - --- tot-square-over : --- coherence-square-maps --- ( tot-map-over g1 g1') --- ( tot-map-over f1 f1') --- ( tot-map-over {B' = Q4} f2 f2') --- ( tot-map-over g2 g2') --- tot-square-over = --- coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p}) - --- coh-tot-square-over : --- coherence-cube-maps f1 g1 g2 f2 --- ( map-ฮฃ Q2 f1 f1') --- ( map-ฮฃ Q3 g1 g1') --- ( map-ฮฃ Q4 g2 g2') --- ( map-ฮฃ Q4 f2 f2') --- pr1 pr1 pr1 pr1 --- ( tot-square-over) --- refl-htpy refl-htpy refl-htpy refl-htpy --- ( bottom) --- coh-tot-square-over (p , q) = --- ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit - --- module _ --- (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) --- (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) --- (G1 : (p : P1) โ†’ g1' p (s1 p) ๏ผ s3 (g1 p)) --- (F1 : (p : P1) โ†’ f1' p (s1 p) ๏ผ s2 (f1 p)) --- (F2 : (p : P3) โ†’ f2' p (s3 p) ๏ผ s4 (f2 p)) --- (G2 : (p : P2) โ†’ g2' p (s2 p) ๏ผ s4 (g2 p)) --- where --- open import foundation.action-on-identifications-binary-functions - --- lemma : --- pasting-vertical-coherence-square-maps g1 --- ( map-section-family s1) (map-section-family s3) --- ( tot-map-over g1 g1') (tot-map-over f1 f1') --- ( tot-map-over {B' = Q4} f2 f2') (tot-map-over g2 g2') --- ( eq-pair-eq-fiber โˆ˜ G1) --- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ --- ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) --- lemma = ฮป p โ†’ ap --- ( eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) --- ( [i] p) โˆ™ --- ( inv (concat-vertical-eq-pair (bottom p) (top (s1 p)) (ap (f2' (g1 p)) (G1 p)))) --- where --- [i] = --- ฮป (p : P1) โ†’ --- inv (ap-comp (map-ฮฃ Q4 f2 f2') (pair (g1 p)) (G1 p)) โˆ™ --- ap-comp (pair (f2 (g1 p))) (f2' (g1 p)) (G1 p) - --- section-cube-over-sect-square-over : --- section-square-over g1 f1 f2 g2 --- ( g1' _) (f1' _) (f2' _) (g2' _) --- s1 s2 s3 s4 --- G1 F1 F2 G2 --- bottom top โ†’ --- section-displayed-cube-over f1 g1 g2 f2 --- ( tot-map-over f1 f1') --- ( tot-map-over g1 g1') --- ( tot-map-over g2 g2') --- ( tot-map-over f2 f2') --- pr1 pr1 pr1 pr1 --- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) --- refl-htpy refl-htpy refl-htpy refl-htpy --- ( bottom) --- ( coh-tot-square-over) --- pr1 (section-cube-over-sect-square-over ฮฑ) = --- ( section-dependent-function s1) , --- ( section-dependent-function s2) , --- ( eq-pair-eq-fiber โˆ˜ F1) , --- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) --- pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = --- ( section-dependent-function s3) , --- ( section-dependent-function s4) , --- ( eq-pair-eq-fiber โˆ˜ F2) , --- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) --- pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = --- ( eq-pair-eq-fiber โˆ˜ G1) , --- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G1 p)) , --- ( eq-pair-eq-fiber โˆ˜ G2) , --- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G2 p)) , --- ( ฮป p โ†’ --- ap-binary --- ( _โˆ™_) --- ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) --- ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ --- {!!} โˆ™ --- ap (eq-pair-ฮฃ (bottom p)) (inv (ฮฑ p) โˆ™ assoc (top (s1 p)) (ap (f2' (g1 p)) (G1 p)) (F2 (g1 p))) โˆ™ --- concat-vertical-eq-pair --- ( bottom p) --- ( top (s1 p)) --- ( ap (f2' (g1 p)) (G1 p) โˆ™ F2 (g1 p)) โˆ™ --- ap-binary --- ( _โˆ™_) --- ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) --- ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , --- {!!} --- ``` +-- open import foundation.embeddings + +-- _ : coh-section-hom-htpy +-- ( ฮป p โ†’ eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p))) +-- ( H) +-- pr1 pr1 refl-htpy refl-htpy +-- ( ฮป p โ†’ ap-pr1-eq-pair-ฮฃ (H (pr1 p)) (H' (pr2 p)) โˆ™ inv right-unit) +-- ( section-dependent-function sA) +-- ( section-dependent-function sB) +-- ( eq-pair-eq-fiber โˆ˜ F) +-- ( eq-pair-eq-fiber โˆ˜ G) +-- -- The point is that this will be `ap pr1`'d, so the ฮฑ in the fiber is +-- -- projected away. This definition should probably be defined in a nicer way +-- -- to make the proof less opaque. +-- ( ฮป a โ†’ +-- ap (eq-pair-eq-fiber (F a) โˆ™_) (ap-map-section-family-lemma sB (H a)) โˆ™ +-- interchange-concat-eq-pair-ฮฃ-left (H a) (F a) (apd sB (H a)) โˆ™ +-- ap (eq-pair-ฮฃ (H a)) (inv (ฮฑ a)) โˆ™ +-- inv (interchange-concat-eq-pair-ฮฃ-right (H a) (H' (sA a)) (G a))) +-- ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (F a)) +-- ( ฮป a โ†’ right-unit โˆ™ ap-pr1-eq-pair-eq-fiber (G a)) +-- _ = {!!} + +-- -- module _ +-- -- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} +-- -- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- -- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- -- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} +-- -- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') +-- -- (top : h' โˆ˜ f' ~ k' โˆ˜ g') +-- -- (bottom : h โˆ˜ f ~ k โˆ˜ g) +-- -- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) +-- -- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) +-- -- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) +-- -- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) +-- -- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) +-- -- (ฮฑ : +-- -- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD +-- -- top back-left back-right front-left front-right bottom) +-- -- (hA' : A' โ†’ A) (hB' : B' โ†’ B) (hC' : C' โ†’ C) (hD' : D' โ†’ D) +-- -- (back-left' : (f โˆ˜ hA') ~ (hB' โˆ˜ f')) +-- -- (back-right' : (g โˆ˜ hA') ~ (hC' โˆ˜ g')) +-- -- (front-left' : (h โˆ˜ hB') ~ (hD' โˆ˜ h')) +-- -- (front-right' : (k โˆ˜ hC') ~ (hD' โˆ˜ k')) +-- -- (ฮฒ : +-- -- coherence-cube-maps f g h k f' g' h' k' hA' hB' hC' hD' +-- -- top back-left' back-right' front-left' front-right' bottom) +-- -- (ฯƒA : hA ~ hA') (ฯƒB : hB ~ hB') (ฯƒC : hC ~ hC') (ฯƒD : hD ~ hD') +-- -- (back-left-H : htpy-hom-map f f' hA hB back-left hA' hB' back-left' ฯƒA ฯƒB) +-- -- (back-right-H : htpy-hom-map g g' hA hC back-right hA' hC' back-right' ฯƒA ฯƒC) +-- -- (front-left-H : htpy-hom-map h h' hB hD front-left hB' hD' front-left' ฯƒB ฯƒD) +-- -- (front-right-H : htpy-hom-map k k' hC hD front-right hC' hD' front-right' ฯƒC ฯƒD) +-- -- where +-- -- open import foundation.commuting-squares-of-homotopies + +-- -- htpy-hom-square : +-- -- UU (l4 โŠ” l1') +-- -- htpy-hom-square = +-- -- htpy-hom-htpy (h โˆ˜ f) (k โˆ˜ g) (h' โˆ˜ f') (k' โˆ˜ g') bottom top hA hD +-- -- ( pasting-horizontal-coherence-square-maps f' h' hA hB hD f h back-left front-left) +-- -- ( pasting-horizontal-coherence-square-maps g' k' hA hC hD g k back-right front-right) +-- -- ( ฮฑ) +-- -- hA' hD' +-- -- ( pasting-horizontal-coherence-square-maps f' h' hA' hB' hD' f h back-left' front-left') +-- -- ( pasting-horizontal-coherence-square-maps g' k' hA' hC' hD' g k back-right' front-right') +-- -- ( ฮฒ) +-- -- ฯƒA ฯƒD +-- -- ( comp-htpy-hom-map f h f' h' hA hA' hB hB' hD hD' ฯƒA ฯƒB ฯƒD +-- -- back-left back-left' back-left-H +-- -- front-left front-left' front-left-H) +-- -- ( comp-htpy-hom-map g k g' k' hA hA' hC hC' hD hD' ฯƒA ฯƒC ฯƒD +-- -- back-right back-right' back-right-H +-- -- front-right front-right' front-right-H) + +-- -- module _ +-- -- {l1 l2 l3 l4 : Level} +-- -- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- -- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- -- (H : coherence-square-maps g f k h) +-- -- where + +-- -- id-cube : +-- -- coherence-cube-maps f g h k f g h k id id id id +-- -- H refl-htpy refl-htpy refl-htpy refl-htpy H +-- -- id-cube = left-unit-law-left-whisker-comp H โˆ™h inv-htpy-right-unit-htpy + +-- -- module _ +-- -- {l1 l2 l3 l4 l1' l2' l3' l4' : Level} +-- -- {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} +-- -- (f : A โ†’ B) (g : A โ†’ C) (h : B โ†’ D) (k : C โ†’ D) +-- -- {A' : UU l1'} {B' : UU l2'} {C' : UU l3'} {D' : UU l4'} +-- -- (f' : A' โ†’ B') (g' : A' โ†’ C') (h' : B' โ†’ D') (k' : C' โ†’ D') +-- -- (hA : A' โ†’ A) (hB : B' โ†’ B) (hC : C' โ†’ C) (hD : D' โ†’ D) +-- -- (top : (h' โˆ˜ f') ~ (k' โˆ˜ g')) +-- -- (back-left : (f โˆ˜ hA) ~ (hB โˆ˜ f')) +-- -- (back-right : (g โˆ˜ hA) ~ (hC โˆ˜ g')) +-- -- (front-left : (h โˆ˜ hB) ~ (hD โˆ˜ h')) +-- -- (front-right : (k โˆ˜ hC) ~ (hD โˆ˜ k')) +-- -- (bottom : (h โˆ˜ f) ~ (k โˆ˜ g)) +-- -- (ฮฑ : +-- -- coherence-cube-maps f g h k f' g' h' k' hA hB hC hD +-- -- top back-left back-right front-left front-right bottom) +-- -- where + +-- -- section-displayed-cube-over : UU (l1 โŠ” l2 โŠ” l3 โŠ” l4 โŠ” l1' โŠ” l2' โŠ” l3' โŠ” l4') +-- -- section-displayed-cube-over = +-- -- ฮฃ ( section-displayed-map-over f f' hA hB back-left) +-- -- ( ฮป sF โ†’ +-- -- ฮฃ ( section-displayed-map-over k k' hC hD front-right) +-- -- ( ฮป sK โ†’ +-- -- ฮฃ ( coherence-square-maps g +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hC (pr1 sK)) +-- -- ( g')) +-- -- ( ฮป G โ†’ +-- -- ฮฃ ( htpy-hom-map g g +-- -- ( hA โˆ˜ map-section hA (pr1 sF)) +-- -- ( hC โˆ˜ map-section hC (pr1 sK)) +-- -- ( pasting-vertical-coherence-square-maps g +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hC (pr1 sK)) +-- -- g' hA hC g +-- -- G back-right) +-- -- id id refl-htpy +-- -- ( is-section-map-section hA (pr1 sF)) +-- -- ( is-section-map-section hC (pr1 sK))) +-- -- ( ฮป sG โ†’ +-- -- ฮฃ ( coherence-square-maps h +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- ( h')) +-- -- ( ฮป H โ†’ +-- -- ฮฃ ( htpy-hom-map h h +-- -- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) +-- -- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) +-- -- ( pasting-vertical-coherence-square-maps h +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- h' hB hD h +-- -- H front-left) +-- -- id id refl-htpy +-- -- ( is-section-map-section hB (pr1 (pr2 sF))) +-- -- ( is-section-map-section hD (pr1 (pr2 sK)))) +-- -- ( ฮป sH โ†’ +-- -- ฮฃ ( coherence-cube-maps f' g' h' k' f g h k +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- ( map-section hC (pr1 sK)) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- ( bottom) +-- -- ( pr1 (pr2 (pr2 sF))) +-- -- ( G) +-- -- ( H) +-- -- ( pr1 (pr2 (pr2 sK))) +-- -- ( top)) +-- -- ( ฮป ฮฒ โ†’ +-- -- htpy-hom-square f g h k f g h k bottom bottom +-- -- ( hA โˆ˜ map-section hA (pr1 sF)) +-- -- ( hB โˆ˜ map-section hB (pr1 (pr2 sF))) +-- -- ( hC โˆ˜ map-section hC (pr1 sK)) +-- -- ( hD โˆ˜ map-section hD (pr1 (pr2 sK))) +-- -- ( pasting-vertical-coherence-square-maps f +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- f' hA hB f +-- -- ( pr1 (pr2 (pr2 sF))) +-- -- ( back-left)) +-- -- ( pasting-vertical-coherence-square-maps g +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hC (pr1 sK)) +-- -- g' hA hC g +-- -- ( G) +-- -- ( back-right)) +-- -- ( pasting-vertical-coherence-square-maps h +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- h' hB hD h +-- -- ( H) +-- -- ( front-left)) +-- -- ( pasting-vertical-coherence-square-maps k +-- -- ( map-section hC (pr1 sK)) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- k' hC hD k +-- -- ( pr1 (pr2 (pr2 sK))) +-- -- ( front-right)) +-- -- ( pasting-vertical-coherence-cube-maps f g h k +-- -- f' g' h' k' f g h k +-- -- hA hB hC hD +-- -- ( map-section hA (pr1 sF)) +-- -- ( map-section hB (pr1 (pr2 sF))) +-- -- ( map-section hC (pr1 sK)) +-- -- ( map-section hD (pr1 (pr2 sK))) +-- -- ( top) +-- -- back-left back-right front-left front-right bottom +-- -- ( bottom) +-- -- ( pr1 (pr2 (pr2 sF))) +-- -- ( G) +-- -- ( H) +-- -- ( pr1 (pr2 (pr2 sK))) +-- -- ( ฮฑ) +-- -- ( ฮฒ)) +-- -- id id id id +-- -- refl-htpy refl-htpy refl-htpy refl-htpy +-- -- ( id-cube f g h k bottom) +-- -- ( is-section-map-section hA (pr1 sF)) +-- -- ( is-section-map-section hB (pr1 (pr2 sF))) +-- -- ( is-section-map-section hC (pr1 sK)) +-- -- ( is-section-map-section hD (pr1 (pr2 sK))) +-- -- ( pr2 (pr2 (pr2 sF))) +-- -- ( sG) +-- -- ( sH) +-- -- ( pr2 (pr2 (pr2 sK)))))))))) + +-- -- module _ +-- -- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} +-- -- {P1 : UU l1} {P2 : UU l2} {P3 : UU l3} {P4 : UU l4} +-- -- {Q1 : P1 โ†’ UU l5} {Q2 : P2 โ†’ UU l6} {Q3 : P3 โ†’ UU l7} {Q4 : P4 โ†’ UU l8} +-- -- (g1 : P1 โ†’ P3) (f1 : P1 โ†’ P2) (f2 : P3 โ†’ P4) (g2 : P2 โ†’ P4) +-- -- (g1' : (p : P1) โ†’ Q1 p โ†’ Q3 (g1 p)) +-- -- (f1' : (p : P1) โ†’ Q1 p โ†’ Q2 (f1 p)) +-- -- (f2' : (p : P3) โ†’ Q3 p โ†’ Q4 (f2 p)) +-- -- (g2' : (p : P2) โ†’ Q2 p โ†’ Q4 (g2 p)) +-- -- (bottom : g2 โˆ˜ f1 ~ f2 โˆ˜ g1) +-- -- (top : square-over g1 f1 f2 g2 (g1' _) (f1' _) (f2' _) (g2' _) bottom) +-- -- where + +-- -- tot-square-over : +-- -- coherence-square-maps +-- -- ( tot-map-over g1 g1') +-- -- ( tot-map-over f1 f1') +-- -- ( tot-map-over {B' = Q4} f2 f2') +-- -- ( tot-map-over g2 g2') +-- -- tot-square-over = +-- -- coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p}) + +-- -- coh-tot-square-over : +-- -- coherence-cube-maps f1 g1 g2 f2 +-- -- ( map-ฮฃ Q2 f1 f1') +-- -- ( map-ฮฃ Q3 g1 g1') +-- -- ( map-ฮฃ Q4 g2 g2') +-- -- ( map-ฮฃ Q4 f2 f2') +-- -- pr1 pr1 pr1 pr1 +-- -- ( tot-square-over) +-- -- refl-htpy refl-htpy refl-htpy refl-htpy +-- -- ( bottom) +-- -- coh-tot-square-over (p , q) = +-- -- ap-pr1-eq-pair-ฮฃ (bottom p) (top q) โˆ™ inv right-unit + +-- -- module _ +-- -- (s1 : (p : P1) โ†’ Q1 p) (s2 : (p : P2) โ†’ Q2 p) +-- -- (s3 : (p : P3) โ†’ Q3 p) (s4 : (p : P4) โ†’ Q4 p) +-- -- (G1 : (p : P1) โ†’ g1' p (s1 p) ๏ผ s3 (g1 p)) +-- -- (F1 : (p : P1) โ†’ f1' p (s1 p) ๏ผ s2 (f1 p)) +-- -- (F2 : (p : P3) โ†’ f2' p (s3 p) ๏ผ s4 (f2 p)) +-- -- (G2 : (p : P2) โ†’ g2' p (s2 p) ๏ผ s4 (g2 p)) +-- -- where +-- -- open import foundation.action-on-identifications-binary-functions + +-- -- lemma : +-- -- pasting-vertical-coherence-square-maps g1 +-- -- ( map-section-family s1) (map-section-family s3) +-- -- ( tot-map-over g1 g1') (tot-map-over f1 f1') +-- -- ( tot-map-over {B' = Q4} f2 f2') (tot-map-over g2 g2') +-- -- ( eq-pair-eq-fiber โˆ˜ G1) +-- -- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) ~ +-- -- ( ฮป p โ†’ eq-pair-ฮฃ (bottom p) (top (s1 p) โˆ™ ap (f2' (g1 p)) (G1 p))) +-- -- lemma = ฮป p โ†’ ap +-- -- ( eq-pair-ฮฃ (bottom p) (top (s1 p)) โˆ™_) +-- -- ( [i] p) โˆ™ +-- -- ( inv (concat-vertical-eq-pair (bottom p) (top (s1 p)) (ap (f2' (g1 p)) (G1 p)))) +-- -- where +-- -- [i] = +-- -- ฮป (p : P1) โ†’ +-- -- inv (ap-comp (map-ฮฃ Q4 f2 f2') (pair (g1 p)) (G1 p)) โˆ™ +-- -- ap-comp (pair (f2 (g1 p))) (f2' (g1 p)) (G1 p) + +-- -- section-cube-over-sect-square-over : +-- -- section-square-over g1 f1 f2 g2 +-- -- ( g1' _) (f1' _) (f2' _) (g2' _) +-- -- s1 s2 s3 s4 +-- -- G1 F1 F2 G2 +-- -- bottom top โ†’ +-- -- section-displayed-cube-over f1 g1 g2 f2 +-- -- ( tot-map-over f1 f1') +-- -- ( tot-map-over g1 g1') +-- -- ( tot-map-over g2 g2') +-- -- ( tot-map-over f2 f2') +-- -- pr1 pr1 pr1 pr1 +-- -- ( coherence-square-maps-ฮฃ Q4 g1' f1' f2' g2' (ฮป p โ†’ top {p})) +-- -- refl-htpy refl-htpy refl-htpy refl-htpy +-- -- ( bottom) +-- -- ( coh-tot-square-over) +-- -- pr1 (section-cube-over-sect-square-over ฮฑ) = +-- -- ( section-dependent-function s1) , +-- -- ( section-dependent-function s2) , +-- -- ( eq-pair-eq-fiber โˆ˜ F1) , +-- -- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F1 p)) +-- -- pr1 (pr2 (section-cube-over-sect-square-over ฮฑ)) = +-- -- ( section-dependent-function s3) , +-- -- ( section-dependent-function s4) , +-- -- ( eq-pair-eq-fiber โˆ˜ F2) , +-- -- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (F2 p)) +-- -- pr2 (pr2 (section-cube-over-sect-square-over ฮฑ)) = +-- -- ( eq-pair-eq-fiber โˆ˜ G1) , +-- -- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G1 p)) , +-- -- ( eq-pair-eq-fiber โˆ˜ G2) , +-- -- ( ฮป p โ†’ right-unit โˆ™ ap-pr1-eq-pair-ฮฃ refl (G2 p)) , +-- -- ( ฮป p โ†’ +-- -- ap-binary +-- -- ( _โˆ™_) +-- -- ( pasting-horizontal-comp f1' g2' s1 s2 s4 F1 G2 p) +-- -- ( ap-map-section-family-lemma s4 (bottom p)) โˆ™ +-- -- {!!} โˆ™ +-- -- ap (eq-pair-ฮฃ (bottom p)) (inv (ฮฑ p) โˆ™ assoc (top (s1 p)) (ap (f2' (g1 p)) (G1 p)) (F2 (g1 p))) โˆ™ +-- -- concat-vertical-eq-pair +-- -- ( bottom p) +-- -- ( top (s1 p)) +-- -- ( ap (f2' (g1 p)) (G1 p) โˆ™ F2 (g1 p)) โˆ™ +-- -- ap-binary +-- -- ( _โˆ™_) +-- -- ( refl {x = eq-pair-ฮฃ (bottom p) (top (s1 p))}) +-- -- ( inv (pasting-horizontal-comp g1' f2' s1 s3 s4 G1 F2 p))) , +-- -- {!!} +-- -- ``` diff --git a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md index 9e95f96ff4..80ac2fa11e 100644 --- a/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md +++ b/src/synthetic-homotopy-theory/zigzag-construction-identity-type-pushouts.lagda.md @@ -1,7 +1,7 @@ # The zigzag construction of identity types of pushouts ```agda -{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} +{-# OPTIONS --lossy-unification #-} module synthetic-homotopy-theory.zigzag-construction-identity-type-pushouts where ``` @@ -342,232 +342,307 @@ module _ ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit n p) โ†’ right-family-descent-data-pushout R ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p)) - ฮจ s n p = - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( CB s n p)) โˆ˜ - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - - ฮฆ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ฮฆ s n p = - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , p))) โˆ˜ - ( tr - ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - - ฮฆ' : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ฮฆ' s n p = - ( inv-map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) โˆ˜ - ( ฮฆ s n p) - - coh-dep-cocone-a : - (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - coherence-square-maps - ( ( tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p))) โˆ˜ - ( tr + ฮจ s = + map-over-diagram-equiv-over-colimit + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + -- ( tr + -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + -- ( CB s n p)) โˆ˜ + -- ( map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit n p)) + + opaque + -- The definitions currently matter for ฮฑ and ฮฒ + -- ฮฆ : + -- (s : spanning-type-span-diagram ๐’ฎ) โ†’ + -- (n : โ„•) โ†’ + -- (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + -- right-family-descent-data-pushout R + -- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + -- right-family-descent-data-pushout R + -- ( right-map-span-diagram ๐’ฎ s , + -- concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) + -- ฮฆ s n p = + -- ( tr + -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + -- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)))) โˆ˜ + -- ( tr + -- ( ฮป p โ†’ + -- right-family-descent-data-pushout R + -- ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + -- ( glue-pushout _ _ (s , refl , p))) โˆ˜ + -- ( tr + -- ( ev-pair (right-family-descent-data-pushout R) (right-map-span-diagram ๐’ฎ s)) + -- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + + ฮฆ' : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) p) โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ฮฆ' s = + inv-map-over-diagram-equiv-zigzag + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) ( ev-pair ( left-family-descent-data-pushout R) ( left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p))) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - ( map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit (succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) - ( ( tr ( ev-pair ( right-family-descent-data-pushout R) ( right-map-span-diagram ๐’ฎ s)) - ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ - ( tr + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + + -- coh-dep-cocone-a : + -- (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + -- (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + -- coherence-square-maps + -- ( ( tr + -- ( ฮป p โ†’ + -- left-family-descent-data-pushout R + -- ( left-map-span-diagram ๐’ฎ s , + -- map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + -- ( glue-pushout _ _ (s , refl , p))) โˆ˜ + -- ( tr + -- ( ev-pair + -- ( left-family-descent-data-pushout R) + -- ( left-map-span-diagram ๐’ฎ s)) + -- ( coherence-cocone-standard-sequential-colimit n p))) + -- ( map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit n p)) + -- ( map-family-descent-data-pushout R + -- ( s , + -- map-cocone-standard-sequential-colimit (succ-โ„• n) + -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) ( concat-s ๐’ฎ aโ‚€ s n p)))) + -- ( ( tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( inv (CB s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))))) โˆ˜ + -- ( tr + -- ( ฮป p โ†’ + -- right-family-descent-data-pushout R + -- ( right-map-span-diagram ๐’ฎ s , + -- map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + -- ( glue-pushout _ _ (s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + -- ( tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ + -- ( tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( CB s n p))) + -- coh-dep-cocone-a s n p = + -- ( ( inv-htpy + -- ( ( tr-concat _ _) โˆ™h + -- ( ( tr _ _) ยทl + -- ( ( tr-concat _ _) โˆ™h + -- ( horizontal-concat-htpy + -- ( ฮป _ โ†’ substitution-law-tr _ _ _) + -- ( tr-concat _ _)))))) ยทr + -- ( map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h + -- ( ( ฮป q โ†’ + -- ap + -- ( ฮป r โ†’ + -- tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( r) + -- ( map-family-descent-data-pushout R + -- ( s , map-cocone-standard-sequential-colimit n p) + -- ( q))) + -- ( inv ([i] p))) โˆ™h + -- ( ฮป q โ†’ + -- substitution-law-tr + -- ( ev-pair + -- ( right-family-descent-data-pushout R) + -- ( right-map-span-diagram ๐’ฎ s)) + -- ( concat-s-inf ๐’ฎ aโ‚€ s) + -- ( coherence-cocone-standard-sequential-colimit n p โˆ™ + -- ap + -- ( map-cocone-standard-sequential-colimit (succ-โ„• n)) + -- ( glue-standard-pushout _ _))) โˆ™h + -- ( inv-htpy + -- ( preserves-tr + -- ( ev-pair + -- ( map-family-descent-data-pushout R) + -- ( s)) + -- ( coherence-cocone-standard-sequential-colimit n p โˆ™ + -- ap (map-cocone-standard-sequential-colimit (succ-โ„• n)) (glue-standard-pushout _ _))))) โˆ™h + -- ( ( map-family-descent-data-pushout R + -- ( s , + -- map-cocone-standard-sequential-colimit + -- ( succ-โ„• n) + -- ( concat-inv-s ๐’ฎ aโ‚€ s + -- ( succ-โ„• n) + -- ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl + -- ( ( tr-concat _ _) โˆ™h + -- ( ฮป q โ†’ substitution-law-tr _ _ _))) + -- where + -- [i] : + -- ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl + -- ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h + -- ( ( map-cocone-standard-sequential-colimit + -- { A = + -- left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + -- ( left-map-span-diagram ๐’ฎ s)} + -- ( succ-โ„• n)) ยทl + -- ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ + -- ( ( CB s n) โˆ™h + -- ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr + -- ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h + -- ( ( map-cocone-standard-sequential-colimit + -- { A = + -- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + -- ( right-map-span-diagram ๐’ฎ s)} + -- ( succ-โ„• (succ-โ„• n))) ยทl + -- ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h + -- ( ( inv-htpy (CB s (succ-โ„• n))) ยทr + -- ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) + -- [i] = + -- ( distributive-left-whisker-comp-concat _ _ _) โˆ™h + -- ( right-transpose-htpy-concat _ _ _ + -- ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ + -- ( ฮป p โ†’ + -- inv + -- ( nat-coherence-square-maps _ _ _ _ + -- ( CB s (succ-โ„• n)) + -- ( glue-pushout _ _ (s , refl , p))))) โˆ™h + -- ( map-inv-equiv + -- ( equiv-right-transpose-htpy-concat _ _ _) + -- ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram + -- ( up-standard-sequential-colimit) + -- ( shift-once-cocone-sequential-diagram + -- ( cocone-standard-sequential-colimit + -- ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + -- ( right-map-span-diagram ๐’ฎ s)))) + -- ( hom-diagram-zigzag-sequential-diagram + -- ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + -- ( n)) โˆ™h + -- ( ap-concat-htpy + -- ( CB s n) + -- ( ( ap-concat-htpy _ + -- ( ( distributive-left-whisker-comp-concat + -- ( map-cocone-standard-sequential-colimit + -- { A = + -- right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ + -- ( right-map-span-diagram ๐’ฎ s)} + -- ( succ-โ„• (succ-โ„• n))) + -- ( _) + -- ( _)) โˆ™h + -- ( ap-concat-htpy _ + -- ( ( left-whisker-compยฒ _ + -- ( left-whisker-inv-htpy _ _)) โˆ™h + -- ( left-whisker-inv-htpy _ _))))) โˆ™h + -- ( inv-htpy-assoc-htpy _ _ _))) โˆ™h + -- ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h + -- ( ap-concat-htpy' _ + -- ( inv-htpy-assoc-htpy _ _ _)) + + ฮฑ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ + coherence-square-maps + ( ฮจ s n p) + ( tr + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit n p)) + ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) + ( tr + ( ฮป p โ†’ + left-family-descent-data-pushout R + ( left-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฑ s n p = + upper-triangle-over + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) ( ev-pair ( right-family-descent-data-pushout R) ( right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p))) โˆ˜ - ( tr + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + ( n) + { p} + -- map-eq-transpose-equiv + -- ( equiv-family-descent-data-pushout R + -- ( s , + -- map-cocone-standard-sequential-colimit + -- ( succ-โ„• n) + -- ( concat-inv-s ๐’ฎ aโ‚€ s + -- ( succ-โ„• n) + -- ( concat-s ๐’ฎ aโ‚€ s n p)))) + -- ( inv (coh-dep-cocone-a s n p q)) + + ฮฒ : + (s : spanning-type-span-diagram ๐’ฎ) โ†’ + (n : โ„•) โ†’ + (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ + coherence-square-maps + ( ฮฆ' s n p) + ( tr + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) + ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) + ( tr + ( ฮป p โ†’ + right-family-descent-data-pushout R + ( right-map-span-diagram ๐’ฎ s , + map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) + ( glue-pushout _ _ (s , refl , p))) + ฮฒ s n p = + lower-triangle-over + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) ( ev-pair ( right-family-descent-data-pushout R) ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p))) - coh-dep-cocone-a s n p = - ( ( inv-htpy - ( ( tr-concat _ _) โˆ™h - ( ( tr _ _) ยทl - ( ( tr-concat _ _) โˆ™h - ( horizontal-concat-htpy - ( ฮป _ โ†’ substitution-law-tr _ _ _) - ( tr-concat _ _)))))) ยทr - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p))) โˆ™h - ( nat-lemma - ( concat-s-inf ๐’ฎ aโ‚€ s) - ( ev-pair (map-family-descent-data-pushout R) s) - ( [i] p)) โˆ™h - ( ( map-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s - ( succ-โ„• n) - ( concat-s ๐’ฎ aโ‚€ s n p)))) ยทl - ( ( tr-concat _ _) โˆ™h - ( ฮป q โ†’ substitution-law-tr _ _ _))) - where - [i] : - ( ( concat-s-inf ๐’ฎ aโ‚€ s) ยทl - ( ( coherence-cocone-standard-sequential-colimit n) โˆ™h - ( ( map-cocone-standard-sequential-colimit - { A = - left-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( left-map-span-diagram ๐’ฎ s)} - ( succ-โ„• n)) ยทl - ( ฮป p โ†’ glue-pushout _ _ (s , refl , p))))) ~ - ( ( CB s n) โˆ™h - ( ( coherence-cocone-standard-sequential-colimit (succ-โ„• n)) ยทr - ( concat-s ๐’ฎ aโ‚€ s n)) โˆ™h - ( ( map-cocone-standard-sequential-colimit - { A = - right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) ยทl - ( ฮป p โ†’ glue-pushout _ _ ( s , refl , concat-s ๐’ฎ aโ‚€ s n p))) โˆ™h - ( ( inv-htpy (CB s (succ-โ„• n))) ยทr - ( concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) โˆ˜ concat-s ๐’ฎ aโ‚€ s n))) - [i] = - ( distributive-left-whisker-comp-concat _ _ _) โˆ™h - ( right-transpose-htpy-concat _ _ _ - ( ( left-whisker-concat-coherence-square-homotopies _ _ _ _ _ - ( ฮป p โ†’ - inv - ( nat-coherence-square-maps _ _ _ _ - ( CB s (succ-โ„• n)) - ( glue-pushout _ _ (s , refl , p))))) โˆ™h - ( map-inv-equiv - ( equiv-right-transpose-htpy-concat _ _ _) - ( ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram - ( up-standard-sequential-colimit) - ( shift-once-cocone-sequential-diagram - ( cocone-standard-sequential-colimit - ( right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)))) - ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( n)) โˆ™h - ( ap-concat-htpy - ( CB s n) - ( ( ap-concat-htpy _ - ( ( distributive-left-whisker-comp-concat - ( map-cocone-standard-sequential-colimit - { A = - right-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ - ( right-map-span-diagram ๐’ฎ s)} - ( succ-โ„• (succ-โ„• n))) - ( _) - ( _)) โˆ™h - ( ap-concat-htpy _ - ( ( left-whisker-compยฒ _ - ( left-whisker-inv-htpy _ _)) โˆ™h - ( left-whisker-inv-htpy _ _))))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))) โˆ™h - ( inv-htpy-assoc-htpy _ _ _))))) โˆ™h - ( ap-concat-htpy' _ - ( inv-htpy-assoc-htpy _ _ _)) - - ฮฑ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - coherence-square-maps - ( ฮจ s n p) - ( tr - ( ev-pair - ( left-family-descent-data-pushout R) - ( left-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit n p)) - ( ฮฆ' s n (concat-s ๐’ฎ aโ‚€ s n p)) - ( tr - ( ฮป p โ†’ - left-family-descent-data-pushout R - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( glue-pushout _ _ (s , refl , p))) - ฮฑ s n p q = - map-eq-transpose-equiv - ( equiv-family-descent-data-pushout R - ( s , - map-cocone-standard-sequential-colimit - ( succ-โ„• n) - ( concat-inv-s ๐’ฎ aโ‚€ s - ( succ-โ„• n) - ( concat-s ๐’ฎ aโ‚€ s n p)))) - ( inv (coh-dep-cocone-a s n p q)) - - ฮฒ : - (s : spanning-type-span-diagram ๐’ฎ) โ†’ - (n : โ„•) โ†’ - (p : Path-to-b ๐’ฎ aโ‚€ (right-map-span-diagram ๐’ฎ s) (succ-โ„• n)) โ†’ - coherence-square-maps - ( ฮฆ' s n p) - ( tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( coherence-cocone-standard-sequential-colimit (succ-โ„• n) p)) - ( ฮจ s (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p)) - ( tr - ( ฮป p โ†’ - right-family-descent-data-pushout R - ( right-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit (succ-โ„• (succ-โ„• n)) p)) - ( glue-pushout _ _ (s , refl , p))) - ฮฒ s n p q = - inv - ( ( ap - ( tr _ _) - ( is-section-map-inv-equiv - ( equiv-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit (succ-โ„• n) (concat-inv-s ๐’ฎ aโ‚€ s (succ-โ„• n) p))) - ( _)) โˆ™ - ( is-section-map-inv-equiv - ( equiv-tr _ _) - ( _)))) + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + ( n) + { p} -- Note for refactoring: after contracting away the last component and the -- vertical map, the definition of prism2 will fail to typecheck, since @@ -747,85 +822,6 @@ module _ ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) a) ( p)) - ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R - pr1 ind-singleton-zigzag-id-pushout' (a , p) = - dependent-cogap-standard-sequential-colimit - ( tA a , KA a) - ( p) - pr1 (pr2 ind-singleton-zigzag-id-pushout') (b , p) = - dependent-cogap-standard-sequential-colimit - ( tB b , KB b) - ( p) - where - pr2 (pr2 ind-singleton-zigzag-id-pushout') (s , p) = - dependent-cogap-standard-sequential-colimit - ( tS , KS) - ( p) - where - [i] : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p) - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( tA (left-map-span-diagram ๐’ฎ s) n p)) ๏ผ - tB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) (concat-s ๐’ฎ aโ‚€ s n p) - [i] zero-โ„• (map-raise refl) = inv (compute-inr-dependent-cogap _ _ _ _) - [i] (succ-โ„• n) p = inv (compute-inr-dependent-cogap _ _ _ _) - tS : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p) - ( pr1 - ( ind-singleton-zigzag-id-pushout') - ( left-map-span-diagram ๐’ฎ s , - map-cocone-standard-sequential-colimit n p)) ๏ผ - pr1 - ( pr2 ind-singleton-zigzag-id-pushout') - ( right-map-span-diagram ๐’ฎ s , - concat-s-inf ๐’ฎ aโ‚€ s (map-cocone-standard-sequential-colimit n p)) - tS n p = - ( ap - ( map-family-descent-data-pushout R - ( s , map-cocone-standard-sequential-colimit n p)) - ( compute-incl-dependent-cogap-standard-sequential-colimit _ n p)) โˆ™ - ( map-equiv - ( inv-equiv-ap-emb - ( emb-equiv - ( equiv-tr - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( CB s n p)))) - ( [i] n p โˆ™ - inv - ( ( apd - ( dependent-cogap-standard-sequential-colimit (tB (right-map-span-diagram ๐’ฎ s) , _)) - ( CB s n p)) โˆ™ - ( compute-incl-dependent-cogap-standard-sequential-colimit _ (succ-โ„• n) _)))) - KS : - (n : โ„•) (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - tr - ( ฮป p โ†’ - map-family-descent-data-pushout R - ( s , p) - ( pr1 - ( ind-singleton-zigzag-id-pushout') - ( left-map-span-diagram ๐’ฎ s , p)) ๏ผ - pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p)) - ( coherence-cocone-standard-sequential-colimit n p) - ( tS n p) ๏ผ - tS (succ-โ„• n) (inl-Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n p) - KS n p = - map-compute-dependent-identification-eq-value _ _ - ( coherence-cocone-standard-sequential-colimit n p) - ( _) - ( _) - ( {!!}) - tS-in-diagram : (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ @@ -907,14 +903,10 @@ module _ bottom2 = glue-pushout _ _ _ far : {p : PAn n} โ†’ g'n (sAn p) ๏ผ sAn (gn p) - far = far' n _ - where - far' : (n : โ„•) (p : PAn n) โ†’ g'n (sAn p) ๏ผ sAn (gn p) - far' zero-โ„• (map-raise refl) = inv (compute-inl-dependent-cogap _ _ _ _) - far' (succ-โ„• n) p = inv (compute-inl-dependent-cogap _ _ _ _) + far = KA (left-map-span-diagram ๐’ฎ s) n _ near : {p : PBn n} โ†’ h'n (sBn p) ๏ผ sBn (hn p) - near = inv (compute-inl-dependent-cogap _ _ _ _) + near = KB (right-map-span-diagram ๐’ฎ s) (succ-โ„• n) _ mid : {p : PBn n} โ†’ m'n (sBn p) ๏ผ sAn (mn p) mid = mid' _ _ @@ -928,7 +920,7 @@ module _ top1 = ฮฑ s n _ top2 : {p : PBn n} (q : QBn p) โ†’ - tr QBn bottom2 (h'n q) ๏ผ f'n (m'n q) + tr QBn bottom2 (h'n {n = n} q) ๏ผ f'n {n = succ-โ„• n} (m'n q) top2 = ฮฒ s n _ top : {p : PAn n} (q : QAn p) โ†’ @@ -984,80 +976,96 @@ module _ -- THE COMMENTED CODE WORKS, DON'T DELETE IT! -- It just takes too long to typecheck it in its current state prism1 : (n : โ„•) โ†’ PRISM1 n - prism1 = {!!} - -- prism1 zero-โ„• (map-raise refl) = - -- lem _ _ _ _ _ - -- ( ( ap - -- ( _โˆ™ (top1 0 (sAn _) โˆ™ ap m'n (left 0))) - -- ( ( inv (ap-inv (tr QAn (bottom1 0)) (far 0))) โˆ™ - -- ( apยฒ (tr QAn (bottom1 0)) (inv-inv _)))) โˆ™ - -- ( [i]) โˆ™ - -- ( ap - -- ( apd sAn (bottom1 0) โˆ™_) - -- ( inv (inv-inv _)))) - -- where - -- open import foundation.action-on-higher-identifications-functions - -- [i] = - -- inv - -- ( compute-glue-dependent-cogap _ _ - -- ( pr1 (pr2 (stages-cocones' 0)) (left-map-span-diagram ๐’ฎ s)) - -- ( s , refl , (map-raise refl))) - -- prism1 (succ-โ„• n) p = - -- lem _ _ _ _ _ - -- ( ( ap - -- ( _โˆ™ (top1 (succ-โ„• n) (sAn _) โˆ™ ap m'n (left (succ-โ„• n)))) - -- ( ( inv (ap-inv (tr QAn (bottom1 (succ-โ„• n))) (far (succ-โ„• n)))) โˆ™ - -- ( apยฒ (tr QAn (bottom1 (succ-โ„• n))) (inv-inv _)))) โˆ™ - -- ( [i]) โˆ™ - -- ( ap - -- ( apd sAn (bottom1 (succ-โ„• n)) โˆ™_) - -- ( inv (inv-inv _)))) - -- where - -- open import foundation.action-on-higher-identifications-functions - -- [i] = - -- inv - -- ( compute-glue-dependent-cogap _ _ - -- ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) (left-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p)) + -- prism1 = {!!} + prism1 zero-โ„• (map-raise refl) = + lem _ _ _ _ _ + ( ( ap + ( _โˆ™ (top1 0 (sAn _) โˆ™ ap m'n (left 0))) + ( ( inv (ap-inv (tr QAn (bottom1 0)) (far 0))) โˆ™ + ( apยฒ (tr QAn (bottom1 0)) (inv-inv _)))) โˆ™ + -- ( [i]) โˆ™ + ( inv + ( compute-glue-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' 0)) (left-map-span-diagram ๐’ฎ s)) + ( s , refl , (map-raise refl)))) โˆ™ + ( ap + ( apd sAn (bottom1 0) โˆ™_) + ( inv (inv-inv _)))) + where + open import foundation.action-on-higher-identifications-functions + prism1 (succ-โ„• n) p = + lem _ _ _ _ _ + ( ( ap + ( _โˆ™ (top1 (succ-โ„• n) (sAn _) โˆ™ ap m'n (left (succ-โ„• n)))) + ( ( inv (ap-inv (tr QAn (bottom1 (succ-โ„• n))) (far (succ-โ„• n)))) โˆ™ + ( apยฒ (tr QAn (bottom1 (succ-โ„• n))) (inv-inv _)))) โˆ™ + ( inv + ( compute-glue-dependent-cogap _ _ + ( pr1 (pr2 (stages-cocones' (succ-โ„• n))) (left-map-span-diagram ๐’ฎ s)) + ( s , refl , p))) โˆ™ + -- ( [i]) โˆ™ + ( ap + ( apd sAn (bottom1 (succ-โ„• n)) โˆ™_) + ( inv (inv-inv _)))) + where + open import foundation.action-on-higher-identifications-functions prism2 : (n : โ„•) โ†’ PRISM2 n - prism2 = {!!} - -- prism2 0 p = - -- lem _ _ _ _ _ - -- ( ( ap - -- ( _โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (mid 0))) - -- ( ( inv (ap-inv (tr QBn (bottom2 0)) (near 0))) โˆ™ - -- ( apยฒ (tr (QBn {1}) (bottom2 0)) (inv-inv _)))) โˆ™ - -- ( inv [ii]) โˆ™ - -- ( ap - -- ( apd sBn (bottom2 0) โˆ™_) - -- ( inv (inv-inv _)))) - -- where - -- open import foundation.action-on-higher-identifications-functions - -- [i] = - -- -- inv - -- ( compute-glue-dependent-cogap _ _ - -- ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p)) - -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (inv q))) right-unit - -- prism2 (succ-โ„• n) p = - -- lem _ _ _ _ _ - -- ( ( ap - -- ( _โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (mid (succ-โ„• n)))) - -- ( ( inv (ap-inv (tr QBn (bottom2 (succ-โ„• n))) (near (succ-โ„• n)))) โˆ™ - -- ( apยฒ (tr QBn (bottom2 (succ-โ„• n))) (inv-inv _)))) โˆ™ - -- ( inv [ii]) โˆ™ - -- ( ap - -- ( apd sBn (bottom2 (succ-โ„• n)) โˆ™_) - -- ( inv (inv-inv _)))) - -- where - -- open import foundation.action-on-higher-identifications-functions - -- [i] = - -- -- inv - -- ( compute-glue-dependent-cogap _ _ - -- ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) - -- ( s , refl , p)) - -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) right-unit + -- prism2 = {!!} + prism2 0 p = + lem _ _ _ _ _ + ( ( ap + ( _โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (mid 0))) + ( ( inv (ap-inv (tr QBn (bottom2 0)) (near 0))) โˆ™ + ( apยฒ (tr (QBn {1}) (bottom2 0)) (inv-inv _)))) โˆ™ + -- ( inv [ii]) โˆ™ + ( inv + ( ( compute-glue-dependent-cogap _ _ + ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) + ( s , refl , p)) โˆ™ + ( ap + ( ฮป q โ†’ + ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ + (top2 0 (sBn p) โˆ™ ap f'n (inv q))) + ( right-unit)))) โˆ™ + ( ap + ( apd sBn (bottom2 0) โˆ™_) + ( inv (inv-inv _)))) + where + open import foundation.action-on-higher-identifications-functions + -- [i] = + -- -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (stages-cocones' 1) (right-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) + -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 0 (sBn p) โˆ™ ap f'n (inv q))) right-unit + prism2 (succ-โ„• n) p = + lem _ _ _ _ _ + ( ( ap + ( _โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (mid (succ-โ„• n)))) + ( ( inv (ap-inv (tr QBn (bottom2 (succ-โ„• n))) (near (succ-โ„• n)))) โˆ™ + ( apยฒ (tr QBn (bottom2 (succ-โ„• n))) (inv-inv _)))) โˆ™ + -- ( inv [ii]) โˆ™ + ( inv + ( ( compute-glue-dependent-cogap _ _ + ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) + ( s , refl , p)) โˆ™ + ( ap + ( ฮป q โ†’ + ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ + (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) + ( right-unit)))) โˆ™ + ( ap + ( apd sBn (bottom2 (succ-โ„• n)) โˆ™_) + ( inv (inv-inv _)))) + where + open import foundation.action-on-higher-identifications-functions + -- [i] = + -- -- inv + -- ( compute-glue-dependent-cogap _ _ + -- ( pr1 (stages-cocones' (succ-โ„• (succ-โ„• n))) (right-map-span-diagram ๐’ฎ s)) + -- ( s , refl , p)) + -- [ii] = [i] โˆ™ ap (ฮป q โ†’ ap (tr QBn _) (compute-inl-dependent-cogap _ _ _ _) โˆ™ (top2 (succ-โ„• n) (sBn p) โˆ™ ap f'n (inv q))) right-unit cube : (n : โ„•) โ†’ CUBE n cube n = @@ -1081,7 +1089,7 @@ module _ ( ฮป p โ†’ bottom1 n {p}) ( top1 n) sAn sAn _ _ - (unget-section-triangle-over fn gn mn f'n g'n m'n sAn sBn sAn + ( unget-section-triangle-over fn gn mn f'n g'n m'n sAn sBn sAn ( ฮป p โ†’ left n {p}) ( ฮป p โ†’ far n {p}) ( ฮป p โ†’ mid n {p}) @@ -1090,63 +1098,130 @@ module _ ( prism1 n)))) ( prism2 n) + + opaque + unfolding ฮฆ' -- square-over-diagram-square-over-colimit ฮณ + + realign-top : + (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ + (p : vertices.PAn s n) โ†’ + sides.top s n {p} ~ + square-over-diagram-square-over-colimit + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + ( n) + ( p) + realign-top s = + compute-square-over-zigzag-square-over-colimit + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s) + ( ev-pair + ( left-family-descent-data-pushout R) + ( left-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( right-family-descent-data-pushout R) + ( right-map-span-diagram ๐’ฎ s)) + ( ev-pair + ( equiv-family-descent-data-pushout R) + ( s)) + KS-in-diagram : (s : spanning-type-span-diagram ๐’ฎ) (n : โ„•) โ†’ - (p : Path-to-a ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s) n) โ†’ - sides.top s n (vertices.sAn s p) โˆ™ - ap (vertices.f'n s) (sides.far s n) - โˆ™ sides.right s n - ๏ผ - ap (tr (vertices.QBn s) (sides.bottom s n) โˆ˜ vertices.h'n s) - (sides.left s n) - โˆ™ ap (tr (vertices.QBn s) (sides.bottom s n)) (sides.near s n) - โˆ™ apd (vertices.sBn s) (sides.bottom s n) + section-square-over + ( vertices.gn s) + ( vertices.fn s) + ( vertices.fn s) + ( vertices.hn s) + ( vertices.g'n s) + ( vertices.f'n s) + ( vertices.f'n s) + ( vertices.h'n s) + ( vertices.sAn s) + ( vertices.sBn s) + ( vertices.sAn s) + ( vertices.sBn s) + ( ฮป p โ†’ sides.far s n) + ( ฮป p โ†’ sides.left s n) + ( ฮป p โ†’ sides.right s n) + ( ฮป p โ†’ sides.near s n) + ( ฮป p โ†’ sides.bottom s n) + ( sides.top s n) KS-in-diagram = cube.cube + alt-section-RA : + (a : domain-span-diagram ๐’ฎ) + (p : left-id-pushout ๐’ฎ aโ‚€ a) โ†’ + left-family-descent-data-pushout R (a , p) + alt-section-RA a = + sect-family-sect-dd-sequential-colimit + ( up-standard-sequential-colimit) + ( _) + ( tA a , KA a) + + alt-section-RB : + (b : codomain-span-diagram ๐’ฎ) + (p : right-id-pushout ๐’ฎ aโ‚€ b) โ†’ + right-family-descent-data-pushout R (b , p) + alt-section-RB b = + sect-family-sect-dd-sequential-colimit + ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) + ( _) + ( tB b โˆ˜ succ-โ„• , KB b โˆ˜ succ-โ„•) + alt-ind-coherence : (s : spanning-type-span-diagram ๐’ฎ) (p : left-id-pushout ๐’ฎ aโ‚€ (left-map-span-diagram ๐’ฎ s)) โ†’ - {!!} - -- (pr1 (pr2 (pr2 R) (s , p)) - -- (sect-family-sect-dd-sequential-colimit - -- up-standard-sequential-colimit - -- (ฮป y โ†’ pr1 R (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s , y)) - -- (tA (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s) , KA (pr1 (pr2 (pr2 (pr2 ๐’ฎ))) s)) - -- p)) ๏ผ - -- (sect-family-sect-dd-sequential-colimit - -- (up-shift-cocone-sequential-diagram 1 - -- up-standard-sequential-colimit) - -- (ฮป y โ†’ pr1 (pr2 R) (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s , y)) - -- (tB (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s) โˆ˜ succ-โ„• , - -- KB (pr2 (pr2 (pr2 (pr2 ๐’ฎ))) s) โˆ˜ succ-โ„•) - -- (big-thm.fโˆž up-standard-sequential-colimit - -- (up-shift-cocone-sequential-diagram 1 - -- up-standard-sequential-colimit) - -- (hom-diagram-zigzag-sequential-diagram - -- (zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - -- p)) - -- map-family-descent-data-pushout R _ (pr1 ind-singleton-zigzag-id-pushout' (left-map-span-diagram ๐’ฎ s , p)) ๏ผ - -- pr1 (pr2 ind-singleton-zigzag-id-pushout') (right-map-span-diagram ๐’ฎ s , concat-s-inf ๐’ฎ aโ‚€ s p) + map-family-descent-data-pushout R + ( s , p) + ( alt-section-RA (left-map-span-diagram ๐’ฎ s) p) ๏ผ + alt-section-RB + ( right-map-span-diagram ๐’ฎ s) + ( map-sequential-colimit-hom-sequential-diagram + ( up-standard-sequential-colimit) + ( shift-once-cocone-sequential-diagram + ( cocone-standard-sequential-colimit _)) + ( hom-diagram-zigzag-sequential-diagram + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) + ( p)) alt-ind-coherence s p = - big-thm.thm + square-colimit-cube-diagram ( up-standard-sequential-colimit) ( up-shift-cocone-sequential-diagram 1 up-standard-sequential-colimit) ( hom-diagram-zigzag-sequential-diagram - ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) - ( ev-pair - ( left-family-descent-data-pushout R) - ( left-map-span-diagram ๐’ฎ s)) - ( ev-pair - ( right-family-descent-data-pushout R) - ( right-map-span-diagram ๐’ฎ s)) - ( ฮป {p} โ†’ map-family-descent-data-pushout R (s , p)) + ( zigzag-sequential-diagram-zigzag-id-pushout ๐’ฎ aโ‚€ s)) ( tA (left-map-span-diagram ๐’ฎ s) , KA (left-map-span-diagram ๐’ฎ s)) ( tB (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„• , KB (right-map-span-diagram ๐’ฎ s) โˆ˜ succ-โ„•) + ( ฮป p โ†’ equiv-family-descent-data-pushout R (s , p)) ( tS-in-diagram s) - ( {!!}) + ( ฮป n p โ†’ + ap + ( ฮป H โ†’ H โˆ™ ap (vertices.f'n s) (sides.far s n) โˆ™ sides.right s n) + ( inv (realign-top s n p (vertices.sAn s p))) โˆ™ KS-in-diagram s n p) ( p) + alt-ind-singleton-zigzag-id-pushout' : section-descent-data-pushout R + pr1 alt-ind-singleton-zigzag-id-pushout' = + ind-ฮฃ alt-section-RA + pr1 (pr2 alt-ind-singleton-zigzag-id-pushout') = + ind-ฮฃ alt-section-RB + pr2 (pr2 alt-ind-singleton-zigzag-id-pushout') = + ind-ฮฃ alt-ind-coherence + is-identity-system-zigzag-id-pushout : is-identity-system-descent-data-pushout ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) @@ -1155,5 +1230,6 @@ module _ is-identity-system-descent-data-pushout-ind-singleton up-c ( descent-data-zigzag-id-pushout ๐’ฎ aโ‚€) ( refl-id-pushout ๐’ฎ aโ‚€) - ( ind-singleton-zigzag-id-pushout') + -- ( ind-singleton-zigzag-id-pushout') + ( alt-ind-singleton-zigzag-id-pushout') ``` From bf811bfd6ed621045f9edd12d2dc098714a8c3f4 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Wed, 19 Mar 2025 19:25:15 +0100 Subject: [PATCH 28/33] Progress --- .../functoriality-stuff.lagda.md | 278 +++++++++++++++--- .../morphisms-sequential-diagrams.lagda.md | 1 + 2 files changed, 239 insertions(+), 40 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 6164d0acb0..cae4c64a40 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -869,50 +869,95 @@ module _ ```agda module _ - {l1 l2 l3 l4 l5 l6 l7 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l7} - {P : A โ†’ UU l4} {P' : B โ†’ UU l5} {Q' : C โ†’ UU l6} - {h : A โ†’ B} (h' : (a : A) โ†’ P a โ†’ P' (h a)) - {l : A โ†’ D} (j : D โ†’ C) (l' : (a : A) โ†’ P a โ†’ Q' (j (l a))) - (s : (a : A) โ†’ P' (h a) โ†’ Q' (j (l a))) - {k : D โ†’ B} (t : (a : A) โ†’ Q' (j (l a)) โ†’ P' (k (l a))) - (U : h ~ k โˆ˜ l) - (H : (a : A) (p : P a) โ†’ l' a p ๏ผ s a (h' a p)) - (K : (a : A) (p : P' (h a)) โ†’ t a (s a p) ๏ผ tr P' (U a) p) + {l1 l2 : Level} + {A : UU l1} + {P : A โ†’ UU l2} where open import foundation.dependent-identifications - compute-lemma : - (a : A) (p : P a) โ†’ - inv-dependent-identification P' (U a) - ( inv - ( ap (t a) (H a p) โˆ™ - K a (h' a p))) ๏ผ - ap - ( tr P' (inv (U a)) โˆ˜ t a) - ( H a p) โˆ™ - inv-dependent-identification P' (U a) - ( inv (K a (h' a p))) - compute-lemma a p = - compute-inv-dependent-identification (U a) _ โˆ™ + compute-lemma'' : + {x y : A} (p : x ๏ผ y) โ†’ + {x' : P x} {y' z' : P y} + (K : dependent-identification P p x' y') + (H : y' ๏ผ z') โ†’ + inv-dependent-identification P p (K โˆ™ H) ๏ผ ap - ( map-eq-transpose-equiv-inv' (equiv-tr P' (U a))) - ( inv-inv _) โˆ™ + ( tr P (inv p)) + ( inv H) โˆ™ + inv-dependent-identification P p K + compute-lemma'' refl K refl = ap inv right-unit + +module _ + {l1 l2 l5 l6 : Level} + {A : UU l1} {B : UU l2} + {P : A โ†’ UU l5} {Q : UU l6} -- {Q : B โ†’ UU l6} + where + open import foundation.dependent-identifications + + compute-lemma : + {x y : A} (p : x ๏ผ y) โ†’ + {u v : Q} (H : u ๏ผ v) โ†’ + (f : Q โ†’ P y) + {x' : P x} (K : dependent-identification P p x' (f u)) โ†’ + inv-dependent-identification P p (K โˆ™ ap f H) ๏ผ ap - ( _โˆ™ is-retraction-map-inv-equiv (equiv-tr P' (U a)) _) - ( ap-concat (tr P' (inv (U a))) _ _) โˆ™ - assoc _ _ _ โˆ™ + ( tr P (inv p) โˆ˜ f) + ( inv H) โˆ™ + inv-dependent-identification P p K + compute-lemma p H f K = + compute-lemma'' p K (ap f H) โˆ™ ap - (_โˆ™ map-eq-transpose-equiv-inv' (equiv-tr P' (U a)) (K a (h' a p))) - ( inv (ap-comp (tr P' (inv (U a))) (t a) (H a p))) โˆ™ + ( _โˆ™ inv-dependent-identification P p K) + ( ap + ( ap (tr P (inv p))) + ( inv (ap-inv f H)) โˆ™ + inv (ap-comp (tr P (inv p)) f (inv H))) + + compute-lemma' : + {x y : A} (p : x ๏ผ y) โ†’ + {u v : Q} (H : u ๏ผ v) โ†’ + (f : Q โ†’ P y) โ†’ + {x' : P x} (K : f v ๏ผ tr P p x') โ†’ + inv-dependent-identification P p (inv (ap f H โˆ™ K)) ๏ผ ap - ( ap (tr P' (inv (U a)) โˆ˜ t a) (H a p) โˆ™_) - ( inv - ( compute-inv-dependent-identification (U a) _ โˆ™ - ap (map-eq-transpose-equiv-inv' (equiv-tr P' (U a))) (inv-inv _))) + ( tr P (inv p) โˆ˜ f) + ( H) โˆ™ + inv-dependent-identification P p (inv K) + compute-lemma' refl refl f K = refl + -- ap + -- ( inv-dependent-identification P p) + -- ( distributive-inv-concat (ap f H) K โˆ™ ap (inv K โˆ™_) (inv (ap-inv f H))) โˆ™ + -- compute-lemma p (inv H) f (inv K) โˆ™ + -- ap + -- ( ฮป r โ†’ ap (tr P (inv p) โˆ˜ f) r โˆ™ inv-dependent-identification P p (inv K)) + -- ( inv-inv H) ``` ```agda + +module _ + {l1 l2 l3 l4 : Level} + {A : UU l1} {B : A โ†’ UU l2} + {X : UU l3} {Y : X โ†’ UU l4} + where + + compute-left-whisker-transpose : + {s : A โ†’ X} (s' : {a : A} โ†’ B a โ†’ Y (s a)) + {x y : A} (p : y ๏ผ x) + {x' : B x} {y' : B y} (p' : x' ๏ผ tr B p y') โ†’ + left-whisk-dependent-identification {B' = Y} s' (inv p) + ( map-eq-transpose-equiv-inv' (equiv-tr B p) p') ๏ผ + ap + ( ฮป r โ†’ tr Y r (s' x')) + ( ap-inv s p) โˆ™ + inv + ( map-eq-transpose-equiv + ( equiv-tr Y (ap s p)) + ( left-whisk-dependent-identification {B' = Y} s' p + ( inv p'))) + compute-left-whisker-transpose s' refl refl = + inv (ap inv (compute-refl-eq-transpose-equiv id-equiv)) + open import synthetic-homotopy-theory.zigzags-sequential-diagrams module _ {l1 l2 l3 l4 l5 : Level} @@ -972,8 +1017,53 @@ module _ tr ( family-descent-data-sequential-colimit P' (succ-โ„• n)) ( upper-triangle-zigzag-sequential-diagram z n a) - inv-upper-triangle-over' n a = - {!!} + inv-upper-triangle-over' n a p = + inv + ( ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( p)) โˆ™ + ( inv + ( substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ + ( ap + ( ฮป r โ†’ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( r) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( map-sequential-diagram A n a) + ( p))) + ( inv + ( ap + ( _โˆ™ lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( distributive-inv-concat + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) โˆ™ + assoc _ _ _ โˆ™ + ap + ( inv (ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) โˆ™_) + ( left-inv (lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) โˆ™ + right-unit โˆ™ + ap inv (ap-inv _ _) โˆ™ + inv-inv _))) โˆ™ + ( tr-concat + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p))) + -- inv + -- ( tr-concat + -- ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + -- ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + -- ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p)) โˆ™ + -- {!preserves-tr + -- ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + -- ( )!} opaque upper-triangle-over' : @@ -1008,8 +1098,7 @@ module _ ( inv-map-over-diagram-equiv-zigzag n (map-zigzag-sequential-diagram z n a)) inv-upper-triangle-over n a p = ap - ( map-inv-fam-equiv e _ โˆ˜ - tr Q (inv (C (succ-โ„• n) _)) โˆ˜ + ( inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _ โˆ˜ tr ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) @@ -1077,6 +1166,65 @@ module _ ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) ( lower-triangle-zigzag-sequential-diagram z n b) ( map-family-descent-data-sequential-colimit Q' n b q)) + + trivial-pasting : + (n : โ„•) โ†’ + htpy-over + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n _)) โˆ˜ + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + trivial-pasting n = + concat-htpy-over + ( lower-triangle-zigzag-sequential-diagram z n ยทr + ( map-zigzag-sequential-diagram z n)) + ( ( map-zigzag-sequential-diagram z (succ-โ„• n)) ยทl + ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n))) + ( ฮป p โ†’ + lower-triangle-over' (succ-โ„• n) _ + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n _) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n _)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( map-sequential-diagram A n _) + ( p))))) + ( left-whisk-htpy-over + ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) + ( ฮป p โ†’ + map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n _)) + ( upper-triangle-over' n _ p)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _)) + + abstract + open import foundation.dependent-identifications + is-trivial-trivial-pasting : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + trivial-pasting n {a} ~ + is-section-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) ยทr + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) + is-trivial-trivial-pasting n a p = + ap + ( ฮป K' โ†’ + concat-dependent-identification _ _ _ + ( lower-triangle-over' (succ-โ„• n) _ _) + ( K')) + ( compute-left-whisker-transpose + ( ฮป {a} โ†’ map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) a) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( upper-triangle-over' n a p)) โˆ™ + {!!} ``` ```agda @@ -1138,7 +1286,7 @@ module _ opaque -- TODO: Maybe this goes through for general equivalences immediately? - -- I haven't tried + -- I haven't tried yet compute-square-over-zigzag-square-over-colimit-id : (n : โ„•) (a : family-sequential-diagram A n) โ†’ pasting-triangles-over @@ -1326,7 +1474,57 @@ module _ assoc _ _ _ โˆ™ ap ( square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a p โˆ™_) - ( {!!}) โˆ™ + ( ap + ( inv + ( is-section-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) + ( map-sequential-diagram A n a) + ( map-family-descent-data-sequential-colimit P' n a p))) โˆ™_) + ( assoc _ _ _ โˆ™ + inv + ( compute-concat-dependent-identification + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) + ( map-sequential-diagram A n a) + ( map-family-descent-data-sequential-colimit P' n a p))))) + ( _)) โˆ™ + ap + ( concat-dependent-identification + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) + ( _))) + ( inv + ( compute-left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a + ( map-family-descent-data-sequential-colimit P' n _ p))))) โˆ™ + is-trivial-trivial-pasting up-c c' z P Q id-fam-equiv n a + ( map-family-descent-data-sequential-colimit P' n _ p)) โˆ™ + ( left-inv _)) โˆ™ right-unit ``` diff --git a/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md b/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md index 94686c5aed..d4a6a5751d 100644 --- a/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md +++ b/src/synthetic-homotopy-theory/morphisms-sequential-diagrams.lagda.md @@ -24,6 +24,7 @@ open import foundation.structure-identity-principle open import foundation.torsorial-type-families open import foundation.universe-levels open import foundation.whiskering-homotopies-composition +open import foundation.whiskering-homotopies-concatenation open import synthetic-homotopy-theory.dependent-sequential-diagrams open import synthetic-homotopy-theory.sequential-diagrams From 2a6219c6e9e8a2f64bcec9a5694f3862d4c0df68 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Thu, 20 Mar 2025 10:57:33 +0100 Subject: [PATCH 29/33] Forgot I file --- .../fiberwise-equivalence-induction.lagda.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/foundation/fiberwise-equivalence-induction.lagda.md diff --git a/src/foundation/fiberwise-equivalence-induction.lagda.md b/src/foundation/fiberwise-equivalence-induction.lagda.md new file mode 100644 index 0000000000..51cc0a5577 --- /dev/null +++ b/src/foundation/fiberwise-equivalence-induction.lagda.md @@ -0,0 +1,119 @@ +# Fiberwise equivalence induction + +```agda +module foundation.fiberwise-equivalence-induction where +``` + +
Imports + +```agda +open import foundation.dependent-pair-types +open import foundation.equivalences +open import foundation.families-of-equivalences +open import foundation.identity-systems +open import foundation.identity-types +-- open import foundation.subuniverses +-- open import foundation.univalence +-- open import foundation.universal-property-identity-systems +open import foundation.universe-levels + +-- open import foundation-core.commuting-triangles-of-maps +-- open import foundation-core.contractible-maps +-- open import foundation-core.function-types +-- open import foundation-core.postcomposition-functions +-- open import foundation-core.sections +-- open import foundation-core.torsorial-type-families +``` + +
+ +## Idea + +## Definitions + +### Evaluation at the family of identity equivalences + +```agda +module _ + {l1 l2 l3 : Level} {A : UU l1} {P : A โ†’ UU l2} + (R : (Q : A โ†’ UU l2) โ†’ fam-equiv P Q โ†’ UU l3) + where + + ev-id-fam-equiv : + ((Q : A โ†’ UU l2) โ†’ (e : fam-equiv P Q) โ†’ R Q e) โ†’ + R P id-fam-equiv + ev-id-fam-equiv r = r P id-fam-equiv +``` + +### The induction principle of families of equivalences + +```agda +module _ + {l1 l2 : Level} {A : UU l1} (P : A โ†’ UU l2) + where + + induction-principle-fam-equiv : UUฯ‰ + induction-principle-fam-equiv = + is-identity-system (ฮป (Q : A โ†’ UU l2) โ†’ fam-equiv P Q) P id-fam-equiv + + induction-principle-fam-equiv' : UUฯ‰ + induction-principle-fam-equiv' = + is-identity-system (ฮป (Q : A โ†’ UU l2) โ†’ fam-equiv Q P) P id-fam-equiv +``` + +## Theorems + +### Induction on families of equivalences + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {P : A โ†’ UU l2} + where + + abstract + is-identity-system-fam-equiv : induction-principle-fam-equiv P + is-identity-system-fam-equiv = + is-identity-system-is-torsorial P + ( id-fam-equiv) + ( is-torsorial-fam-equiv) + + is-identity-system-fam-equiv' : induction-principle-fam-equiv' P + is-identity-system-fam-equiv' = + is-identity-system-is-torsorial P + ( id-fam-equiv) + ( is-torsorial-fam-equiv') + +module _ + {l1 l2 l3 : Level} {A : UU l1} {P : A โ†’ UU l2} + (R : (Q : A โ†’ UU l2) โ†’ fam-equiv P Q โ†’ UU l3) + (r : R P id-fam-equiv) + where + + abstract + ind-fam-equiv : + {Q : A โ†’ UU l2} (e : fam-equiv P Q) โ†’ R Q e + ind-fam-equiv {Q = Q} e = + pr1 (is-identity-system-fam-equiv R) r Q e + + compute-ind-fam-equiv : + ind-fam-equiv id-fam-equiv ๏ผ r + compute-ind-fam-equiv = + pr2 (is-identity-system-fam-equiv R) r + +module _ + {l1 l2 l3 : Level} {A : UU l1} {P : A โ†’ UU l2} + (R : (Q : A โ†’ UU l2) โ†’ fam-equiv Q P โ†’ UU l3) + (r : R P id-fam-equiv) + where + + abstract + ind-fam-equiv' : + {Q : A โ†’ UU l2} (e : fam-equiv Q P) โ†’ R Q e + ind-fam-equiv' {Q = Q} e = + pr1 (is-identity-system-fam-equiv' R) r Q e + + compute-ind-fam-equiv' : + ind-fam-equiv' id-fam-equiv ๏ผ r + compute-ind-fam-equiv' = + pr2 (is-identity-system-fam-equiv' R) r +``` From 02a9023fce2870188b9758f771c96db29b817a7e Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Sat, 22 Mar 2025 21:29:35 +0100 Subject: [PATCH 30/33] Look mom, no holes! --- .../functoriality-stuff.lagda.md | 765 +++++++++++++++--- 1 file changed, 665 insertions(+), 100 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index cae4c64a40..362cc80091 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -1,7 +1,7 @@ # Functoriality stuff ```agda -{-# OPTIONS --lossy-unification --allow-unsolved-metas #-} +{-# OPTIONS --lossy-unification #-} module synthetic-homotopy-theory.functoriality-stuff where ``` @@ -867,6 +867,228 @@ module _ compute-eq-transpose-equiv-inv-concat' refl q = refl ``` +```agda +module _ + {l1 l2 l3 l4 : Level} {A : UU l1} {B : A โ†’ UU l2} {X : UU l3} {Y : X โ†’ UU l4} + where + open import foundation.dependent-identifications + + compute-left-whisk-dependent-identification-concat : + {s : X โ†’ A} (s' : (x : X) โ†’ Y x โ†’ B (s x)) โ†’ + {x y : X} (p : x ๏ผ y) โ†’ + {x' : Y x} {y' z' : Y y} (p' : dependent-identification Y p x' y') โ†’ + (q : y' ๏ผ z') โ†’ + left-whisk-dependent-identification {B' = B} (s' _) p (p' โˆ™ q) ๏ผ + left-whisk-dependent-identification (s' _) p p' โˆ™ ap (s' y) q + compute-left-whisk-dependent-identification-concat s' refl p' q = + ap-concat (s' _) p' q + + compute-left-whisk-dependent-identification-concat' : + {s : X โ†’ A} (s' : (x : X) โ†’ Y x โ†’ B (s x)) โ†’ + {x y : X} (p : x ๏ผ y) โ†’ + {x' w' : Y x} {y' : Y y} (p' : x' ๏ผ w') โ†’ + (q' : dependent-identification Y p w' y') โ†’ + left-whisk-dependent-identification {B' = B} (s' _) p (ap (tr Y p) p' โˆ™ q') ๏ผ + ap (tr B (ap s p)) (ap (s' x) p') โˆ™ + left-whisk-dependent-identification {B' = B} (s' _) p q' + compute-left-whisk-dependent-identification-concat' s' refl refl q' = refl +``` + +```agda +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + open import foundation.dependent-identifications + + compute-right-concat-dependent-identification : + {x y : A} (p : x ๏ผ y) + {z : A} (q : y ๏ผ z) + {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') + {z' : B z} (q' : dependent-identification B q y' z') + {w' : B z} (r : z' ๏ผ w') โ†’ + concat-dependent-identification B p q p' (q' โˆ™ r) ๏ผ + concat-dependent-identification B p q p' q' โˆ™ r + compute-right-concat-dependent-identification refl q refl q' r = refl +``` + +```agda +module _ + {l1 l2 l3 l4 : Level} {I : UU l1} {A : I โ†’ UU l2} {J : UU l3} {B : J โ†’ UU l4} + {s : I โ†’ J} (s' : (i : I) โ†’ A i โ†’ B (s i)) + where + + concat-preserves-tr-left-whisk : + {i j : I} (p : i ๏ผ j) {x : A i} โ†’ + ap + ( tr B (ap s (inv p))) + ( inv (preserves-tr s' p x)) โˆ™ + left-whisk-dependent-identification {B' = B} (s' _) (inv p) + ( is-retraction-map-inv-equiv (equiv-tr A p) x) ๏ผ + substitution-law-tr B s (inv p) โˆ™ + is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ s) p) (s' i x) + concat-preserves-tr-left-whisk refl = refl + +module _ + {l1 l2 l3 l4 : Level} + {I : UU l1} {A : I โ†’ UU l2} {B : I โ†’ UU l3} {C : I โ†’ UU l4} + (g : (i : I) โ†’ B i โ†’ C i) (f : (i : I) โ†’ A i โ†’ B i) + where + + preserves-tr-comp : + {i j : I} (p : i ๏ผ j) โ†’ + preserves-tr (ฮป i โ†’ g i โˆ˜ f i) p ~ + pasting-horizontal-coherence-square-maps (f i) (g i) (tr A p) (tr B p) (tr C p) (f j) (g j) + ( preserves-tr f p) + ( preserves-tr g p) + preserves-tr-comp refl i = refl + + inv-preserves-tr-comp : + {i j : I} (p : i ๏ผ j) โ†’ + inv-htpy (preserves-tr (ฮป i โ†’ g i โˆ˜ f i) p) ~ + pasting-vertical-coherence-square-maps (tr A p) (f i) (f j) (tr B p) (g i) (g j) (tr C p) + ( inv-htpy (preserves-tr f p)) + ( inv-htpy (preserves-tr g p)) + inv-preserves-tr-comp refl x = refl + +module _ + {l1 l2 l3 : Level} {I : UU l1} {A : I โ†’ UU l1} {B : I โ†’ UU l2} + (f : (i : I) โ†’ A i โ†’ B i) + where + + preserves-tr-concat : + {i j : I} (p : i ๏ผ j) + {k : I} (q : j ๏ผ k) โ†’ + preserves-tr f (p โˆ™ q) โˆ™h tr-concat p q ยทr f i ~ + f k ยทl tr-concat p q โˆ™h + pasting-vertical-coherence-square-maps (f i) (tr A p) (tr B p) (f j) (tr A q) (tr B q) (f k) + ( preserves-tr f p) + ( preserves-tr f q) + preserves-tr-concat refl q x = refl + + aaa : + {i j : I} (p : i ๏ผ j) โ†’ + pasting-horizontal-coherence-square-maps + ( tr A p) (tr A (inv p)) (f i) (f j) (f i) (tr B p) (tr B (inv p)) + ( inv-htpy (preserves-tr f p)) + ( inv-htpy (preserves-tr f (inv p))) โˆ™h + f i ยทl is-retraction-map-inv-equiv (equiv-tr A p) ~ + is-retraction-map-inv-equiv (equiv-tr B p) ยทr f i + aaa refl x = refl + +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + + ooo : + {x y : A} (p : x ๏ผ y) (b : B x) โ†’ + tr-concat p (inv p) b โˆ™ is-retraction-map-inv-equiv (equiv-tr B p) b ๏ผ + ap (ฮป r โ†’ tr B r b) (right-inv p) + ooo refl b = refl + + open import foundation.homotopy-algebra + + xxx : + {l3 : Level} {C : UU l3} (f : C โ†’ A) + {x y : C} (p : x ๏ผ y) โ†’ + horizontal-concat-htpy + ( inv-htpy (ฮป b โ†’ substitution-law-tr B f (inv p) {b})) + ( inv-htpy (ฮป b โ†’ substitution-law-tr B f p {b})) โˆ™h + ( ฮป b โ†’ + ap + ( ฮป r โ†’ tr B r (tr B (ap f p) b)) + ( ap-inv f p)) โˆ™h + is-retraction-map-inv-equiv (equiv-tr B (ap f p)) ~ + is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ f) p) + xxx f refl x = refl + + bbb : + {x y : A} (p : x ๏ผ y) + {z : A} (q : y ๏ผ z) โ†’ + is-section-map-inv-equiv (equiv-tr B (p โˆ™ q)) ~ + horizontal-concat-htpy + ( tr-concat p q) + ( (ฮป b โ†’ ap (ฮป r โ†’ tr B r b) (distributive-inv-concat p q)) โˆ™h + tr-concat (inv q) (inv p)) โˆ™h + tr B q ยทl (is-section-map-inv-equiv (equiv-tr B p)) ยทr tr B (inv q) โˆ™h + is-section-map-inv-equiv (equiv-tr B q) + bbb refl refl x = + inv + ( ap + ( _โˆ™ is-section-map-inv-equiv id-equiv x) + ( ap-id _ โˆ™ coherence-map-inv-equiv id-equiv x)) + + open import foundation.dependent-identifications + bbb' : + {x y : A} (p : x ๏ผ y) + {z : A} (q : y ๏ผ z) โ†’ + (b : B z) โ†’ + concat-dependent-identification B p q + ( ap + ( tr B p) + ( ( ap + ( ฮป r โ†’ tr B r b) + ( distributive-inv-concat p q)) โˆ™ + ( tr-concat (inv q) (inv p) b)) โˆ™ + is-section-map-inv-equiv (equiv-tr B p) (tr B (inv q) b)) + ( is-section-map-inv-equiv (equiv-tr B q) b) ๏ผ + is-section-map-inv-equiv (equiv-tr B (p โˆ™ q)) b + bbb' refl refl b = + ap + ( _โˆ™ is-section-map-inv-equiv id-equiv b) + ( ap-id _ โˆ™ coherence-map-inv-equiv id-equiv b) + + ccc : + {l3 : Level} {C : UU l3} (f : C โ†’ A) + {x y : C} (p : x ๏ผ y) โ†’ + horizontal-concat-htpy + ( ฮป b โ†’ substitution-law-tr B f (inv p) {b}) + ( ฮป b โ†’ + ap + ( ฮป r โ†’ tr B r b) + ( inv (ap-inv f (inv p)) โˆ™ ap (ap f) (inv-inv p)) โˆ™ + substitution-law-tr B f p {b}) โˆ™h + is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ f) p) ~ + is-section-map-inv-equiv (equiv-tr B (ap f (inv p))) + ccc f refl x = inv (coherence-map-inv-equiv id-equiv x) + +module _ + {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : UU l3} (f : C โ†’ A) + where + + + bbb'' : + {x y : C} (p : x ๏ผ y) + {z : A} (q : z ๏ผ f y) โ†’ + {b : B (f x)} โ†’ + tr-concat q (ap f (inv p)) (tr B (inv (q โˆ™ ap f (inv p))) b) โˆ™ + ap + ( tr B (ap f (inv p))) + ( ( ap + ( tr B q) + ( ( ap (ฮป r โ†’ tr B r b) (distributive-inv-concat _ _)) โˆ™ + ( tr-concat _ _ b))) โˆ™ + ( is-section-map-inv-equiv + ( equiv-tr B q) + ( tr B (inv (ap f (inv p))) b)) โˆ™ + ( ap + ( ฮป r โ†’ tr B r b) + ( inv (ap-inv f (inv p)) โˆ™ ap (ap f) (inv-inv p))) โˆ™ + ( substitution-law-tr B f p)) โˆ™ + ( substitution-law-tr B f (inv p) โˆ™ + is-retraction-map-inv-equiv + ( equiv-tr (B โˆ˜ f) p) + ( b)) ๏ผ + is-section-map-inv-equiv + ( equiv-tr B (q โˆ™ ap f (inv p))) + ( b) + bbb'' refl refl {b} = + ap + ( _โˆ™ is-retraction-map-inv-equiv id-equiv b) + ( ap-id _ โˆ™ right-unit โˆ™ right-unit) โˆ™ + right-unit + +``` + ```agda module _ {l1 l2 : Level} @@ -924,13 +1146,6 @@ module _ ( H) โˆ™ inv-dependent-identification P p (inv K) compute-lemma' refl refl f K = refl - -- ap - -- ( inv-dependent-identification P p) - -- ( distributive-inv-concat (ap f H) K โˆ™ ap (inv K โˆ™_) (inv (ap-inv f H))) โˆ™ - -- compute-lemma p (inv H) f (inv K) โˆ™ - -- ap - -- ( ฮป r โ†’ ap (tr P (inv p) โˆ˜ f) r โˆ™ inv-dependent-identification P p (inv K)) - -- ( inv-inv H) ``` ```agda @@ -948,15 +1163,81 @@ module _ left-whisk-dependent-identification {B' = Y} s' (inv p) ( map-eq-transpose-equiv-inv' (equiv-tr B p) p') ๏ผ ap - ( ฮป r โ†’ tr Y r (s' x')) - ( ap-inv s p) โˆ™ - inv - ( map-eq-transpose-equiv - ( equiv-tr Y (ap s p)) - ( left-whisk-dependent-identification {B' = Y} s' p - ( inv p'))) + ( tr Y (ap s (inv p))) + ( ap s' p') โˆ™ + left-whisk-dependent-identification {B' = Y} s' (inv p) + ( is-retraction-map-inv-equiv (equiv-tr B p) y') + -- ap + -- ( ฮป r โ†’ tr Y r (s' x')) + -- ( ap-inv s p) โˆ™ + -- inv + -- ( map-eq-transpose-equiv + -- ( equiv-tr Y (ap s p)) + -- ( left-whisk-dependent-identification {B' = Y} s' p + -- ( inv p'))) compute-left-whisker-transpose s' refl refl = - inv (ap inv (compute-refl-eq-transpose-equiv id-equiv)) + refl + -- inv (ap inv (compute-refl-eq-transpose-equiv id-equiv)) + +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + + inv-coherence-map-inv-is-equiv : + (a : A) โ†’ + ap (map-equiv e) (inv (is-retraction-map-inv-equiv e a)) ๏ผ + inv (is-section-map-inv-equiv e (map-equiv e a)) + inv-coherence-map-inv-is-equiv a = + ap-inv (map-equiv e) (is-retraction-map-inv-equiv e a) โˆ™ + ap inv (inv (coherence-map-inv-equiv e a)) + + left-inv-is-retraction-map-inv-equiv : + (a : A) โ†’ + inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™ + ap (map-equiv e) (is-retraction-map-inv-equiv e a) ๏ผ + refl + left-inv-is-retraction-map-inv-equiv a = + ap + ( inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™_) + ( inv (coherence-map-inv-equiv e a)) โˆ™ + left-inv (is-section-map-inv-equiv e (map-equiv e a)) + +module _ + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) + where + + triangle-eq-transpose-equiv-inv'' : + {x : B} {y : A} (p : x ๏ผ map-equiv e y) โ†’ + inv (is-section-map-inv-equiv e x) โˆ™ ap (map-equiv e) (map-eq-transpose-equiv-inv' e p) ๏ผ + p + triangle-eq-transpose-equiv-inv'' refl = left-inv-is-retraction-map-inv-equiv e _ + +module _ + {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + where + open import foundation.dependent-identifications + + nat-concat-dependent-identification : + {x y : A} (p : x ๏ผ y) โ†’ + {z : A} (q : y ๏ผ z) โ†’ + (f : B x โ†’ B y) โ†’ + (H : tr B p ~ f) โ†’ + {x' y' : B x} (p' : x' ๏ผ y') โ†’ + concat-dependent-identification B p q (ap (tr B p) p') (ap (tr B q) (H y')) ๏ผ + concat-dependent-identification B p q (H x') (ap (tr B q) (ap f p')) + nat-concat-dependent-identification refl refl f H refl = inv right-unit + + nat-concat-dependent-identification-id : + {x y : A} (p : x ๏ผ y) โ†’ + {z : A} (q : y ๏ผ z) โ†’ + (f : B y โ†’ B y) โ†’ + (H : id ~ f) โ†’ + {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') โ†’ + concat-dependent-identification B p q p' (ap (tr B q) (H y')) ๏ผ + concat-dependent-identification B p q (H (tr B p x')) (ap (tr B q) (ap f p')) + nat-concat-dependent-identification-id refl q f H refl = inv right-unit open import synthetic-homotopy-theory.zigzags-sequential-diagrams module _ @@ -1004,6 +1285,46 @@ module _ ( coherence-cocone-sequential-diagram c' n b) opaque + internal-triangle-upper-triangle-over' : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) ~ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + internal-triangle-upper-triangle-over' n a p = + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a))) + ( ( ap + ( ฮป r โ†’ tr (family-descent-data-sequential-colimit Q' (succ-โ„• n)) r p) + ( distributive-inv-concat _ _)) โˆ™ + ( tr-concat _ _ p)) โˆ™ + is-section-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) + ( _) โˆ™ + ap + ( ฮป r โ†’ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( r) + ( p)) + ( ( inv + ( ap-inv + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) โˆ™ + ( ap (ap (map-zigzag-sequential-diagram z (succ-โ„• n))) (inv-inv _))) + inv-upper-triangle-over' : (n : โ„•) (a : family-sequential-diagram A n) โ†’ tr @@ -1018,58 +1339,94 @@ module _ ( family-descent-data-sequential-colimit P' (succ-โ„• n)) ( upper-triangle-zigzag-sequential-diagram z n a) inv-upper-triangle-over' n a p = + internal-triangle-upper-triangle-over' n a + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p) โˆ™ + -- left-whisk-dependent-identification + -- ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + -- ( upper-triangle-zigzag-sequential-diagram z n a) + -- ( refl) + substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) โˆ™ inv - ( ( preserves-tr - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a) - ( p)) โˆ™ - ( inv - ( substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ - ( ap - ( ฮป r โ†’ - tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( r) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) - ( map-sequential-diagram A n a) - ( p))) - ( inv - ( ap - ( _โˆ™ lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( distributive-inv-concat - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) โˆ™ - assoc _ _ _ โˆ™ - ap - ( inv (ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) โˆ™_) - ( left-inv (lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) โˆ™ - right-unit โˆ™ - ap inv (ap-inv _ _) โˆ™ - inv-inv _))) โˆ™ - ( tr-concat - ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p))) - -- inv - -- ( tr-concat - -- ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) - -- ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - -- ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p)) โˆ™ - -- {!preserves-tr - -- ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) - -- ( )!} + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( p)) + + opaque + inv-transport-squares : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + coherence-square-maps + ( tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( map-sequential-diagram A n a)) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a))) + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ + map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + inv-transport-squares n a = + inv-htpy + ( preserves-tr + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + -- pasting-vertical-coherence-square-maps + -- ( tr + -- ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + -- ( upper-triangle-zigzag-sequential-diagram z n a)) + -- ( map-fam-equiv e _) + -- ( map-fam-equiv e _) + -- ( tr + -- ( Q โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c (succ-โ„• n)) + -- ( upper-triangle-zigzag-sequential-diagram z n a)) + -- ( tr Q (C (succ-โ„• n) _)) + -- ( tr Q (C (succ-โ„• n) _)) + -- ( tr + -- ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ + -- map-zigzag-sequential-diagram z (succ-โ„• n)) + -- ( upper-triangle-zigzag-sequential-diagram z n a)) + -- ( inv-htpy + -- ( preserves-tr + -- ( map-fam-equiv e โˆ˜ map-cocone-sequential-diagram c (succ-โ„• n)) + -- ( upper-triangle-zigzag-sequential-diagram z n a))) + -- ( inv-htpy + -- ( preserves-tr + -- ( ฮป a โ†’ tr Q (C (succ-โ„• n) a)) + -- ( upper-triangle-zigzag-sequential-diagram z n a))) + + opaque + transpose-squares : + (n : โ„•) (a : family-sequential-diagram A n) โ†’ + inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) โˆ˜ + tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ + map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) โˆ˜ + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( map-sequential-diagram A n a) ~ + tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + transpose-squares n a p = + map-eq-transpose-equiv-inv' + ( e _) + ( map-eq-transpose-equiv-inv' + ( equiv-tr Q (C (succ-โ„• n) _)) + ( inv-transport-squares n a p)) + opaque upper-triangle-over' : (n : โ„•) (a : family-sequential-diagram A n) โ†’ - map-inv-fam-equiv e _ โˆ˜ - tr Q (inv (C (succ-โ„• n) _)) โˆ˜ + inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _ โˆ˜ tr ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) โˆ˜ @@ -1081,11 +1438,16 @@ module _ ( family-descent-data-sequential-colimit P' (succ-โ„• n)) ( upper-triangle-zigzag-sequential-diagram z n a) upper-triangle-over' n a p = - map-eq-transpose-equiv-inv' - ( e _) - ( map-eq-transpose-equiv-inv' - ( equiv-tr Q (C (succ-โ„• n) _)) - ( inv-upper-triangle-over' n a p)) + ap + ( map-inv-fam-equiv e _ โˆ˜ + tr Q (inv (C (succ-โ„• n) _))) + ( internal-triangle-upper-triangle-over' n a + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p) โˆ™ + substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ + transpose-squares n a p inv-upper-triangle-over : (n : โ„•) (a : family-sequential-diagram A n) โ†’ @@ -1127,6 +1489,12 @@ module _ upper-triangle-over n {a} p = inv (inv-upper-triangle-over n a p) + + opaque + priv-is-section : + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) โ†’ map-equiv e โˆ˜ map-inv-equiv e ~ id + priv-is-section = is-section-map-inv-equiv opaque lower-triangle-over' : (n : โ„•) (a : family-sequential-diagram A n) @@ -1138,13 +1506,13 @@ module _ ( inv-map-over-diagram-equiv-zigzag' n a q) lower-triangle-over' n a q = inv - ( is-section-map-inv-equiv + ( priv-is-section -- is-section-map-inv-equiv ( equiv-tr Q (C n a)) ( q)) โˆ™ ap ( tr Q (C n a)) ( inv - ( is-section-map-inv-equiv + ( priv-is-section -- is-section-map-inv-equiv ( e (map-cocone-sequential-diagram c n a)) ( tr Q (inv (C n a)) q))) @@ -1204,7 +1572,9 @@ module _ ( upper-triangle-over' n _ p)) ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _)) - abstract + abstract opaque + unfolding lower-triangle-over' upper-triangle-over' inv-transport-squares + internal-triangle-upper-triangle-over' open import foundation.dependent-identifications is-trivial-trivial-pasting : (n : โ„•) (a : family-sequential-diagram A n) โ†’ @@ -1220,38 +1590,233 @@ module _ concat-dependent-identification _ _ _ ( lower-triangle-over' (succ-โ„• n) _ _) ( K')) - ( compute-left-whisker-transpose - ( ฮป {a} โ†’ map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) a) - ( upper-triangle-zigzag-sequential-diagram z n a) - ( upper-triangle-over' n a p)) โˆ™ - {!!} + ( ( ap + ( left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( compute-eq-transpose-equiv-inv-concat' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( _) + ( transpose-squares n a p))) โˆ™ + ( ( compute-left-whisk-dependent-identification-concat' + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( _) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( transpose-squares n a p))) โˆ™ + ( ap + ( ฮป r โ†’ + ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( r) โˆ™ + left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( transpose-squares n a p))) + ( inv + ( ap-comp + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _) + ( _)))))) โˆ™ + compute-right-concat-dependent-identification + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( _) + ( _) + ( _) โˆ™ + ap + ( _โˆ™ + left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( map-eq-transpose-equiv-inv' + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( transpose-squares n a p))) + ( inv + ( nat-concat-dependent-identification-id + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ โˆ˜ + inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _) + ( ฮป q โ†’ + lower-triangle-over' (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( q)) + ( internal-triangle-upper-triangle-over' n a + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ p) โˆ™ + substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( _) + ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ + compute-right-concat-dependent-identification + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( _) + ( refl) + ( _)) โˆ™ + assoc _ _ _ โˆ™ + ap + ( concat-dependent-identification + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( _) + ( _) + ( internal-triangle-upper-triangle-over' n a + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ p) โˆ™ + substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( _) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( refl) โˆ™_) + ( ( ap + ( ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( lower-triangle-over' (succ-โ„• n) _ _) โˆ™_) + ( compute-left-whisker-transpose + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( transpose-squares n a p))) โˆ™ + ( inv (assoc _ _ _)) โˆ™ + ( ap + ( _โˆ™ + left-whisk-dependent-identification + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)) + ( is-retraction-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit P' (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( p))) + ( ( inv + ( ap-concat + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) + ( lower-triangle-over' (succ-โ„• n) _ _) + ( ap + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( transpose-squares n a p)))) โˆ™ + ( ap + ( ap + ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))))) + ( [i] p)))) โˆ™ + ( concat-preserves-tr-left-whisk + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ + ap + ( _โˆ™ + ( ( substitution-law-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ + ( is-retraction-map-inv-equiv + ( equiv-tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ + map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) + ( _)))) + ( ( compute-concat-dependent-identification + ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( ap + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( inv (upper-triangle-zigzag-sequential-diagram z n a))) + ( _) + ( _)) โˆ™ + right-unit) โˆ™ + bbb'' + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + where + opaque + unfolding lower-triangle-over' transpose-squares priv-is-section + [i] : + lower-triangle-over' (succ-โ„• n) + ( inv-map-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) ยทr + ( ( tr + ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ + map-zigzag-sequential-diagram z (succ-โ„• n)) + ( upper-triangle-zigzag-sequential-diagram z n a)) โˆ˜ + ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) + ( map-sequential-diagram A n a))) โˆ™h + map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ ยทl + transpose-squares n a ~ + inv-transport-squares n a + [i] p = + assoc _ _ _ โˆ™ + ap + ( inv + ( is-section-map-inv-equiv + ( equiv-tr Q + ( C (succ-โ„• n) _)) + ( _)) โˆ™_) + ( ( ap + ( ap + ( tr Q (C (succ-โ„• n) _)) + ( inv + ( is-section-map-inv-equiv + ( e _) + ( tr Q (inv (C (succ-โ„• n) _)) _))) โˆ™_) + ( ap-comp + ( tr Q (C (succ-โ„• n) _)) + ( map-fam-equiv e _) + ( transpose-squares n a p))) โˆ™ + ( inv + ( ap-concat + ( tr Q (C (succ-โ„• n) _)) + ( _) + ( _))) โˆ™ + ( ap + ( ap (tr Q (C (succ-โ„• n) _))) + ( triangle-eq-transpose-equiv-inv'' + ( e _) + ( map-eq-transpose-equiv-inv' + ( equiv-tr Q (C (succ-โ„• n) _)) + ( inv-transport-squares n a p))))) โˆ™ + triangle-eq-transpose-equiv-inv'' + ( equiv-tr Q (C (succ-โ„• n) _)) + ( inv-transport-squares n a p) ``` ```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - - inv-coherence-map-inv-is-equiv : - (a : A) โ†’ - ap (map-equiv e) (inv (is-retraction-map-inv-equiv e a)) ๏ผ - inv (is-section-map-inv-equiv e (map-equiv e a)) - inv-coherence-map-inv-is-equiv a = - ap-inv (map-equiv e) (is-retraction-map-inv-equiv e a) โˆ™ - ap inv (inv (coherence-map-inv-equiv e a)) - - left-inv-is-retraction-map-inv-equiv : - (a : A) โ†’ - inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™ - ap (map-equiv e) (is-retraction-map-inv-equiv e a) ๏ผ - refl - left-inv-is-retraction-map-inv-equiv a = - ap - ( inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™_) - ( inv (coherence-map-inv-equiv e a)) โˆ™ - left-inv (is-section-map-inv-equiv e (map-equiv e a)) - module _ {l1 l2 : Level} {A : UU l1} {B : UU l2} (e : A โ‰ƒ B) From b93771b6f21d059804de8488fc0dcf7ee7f1038b Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Sat, 22 Mar 2025 21:35:32 +0100 Subject: [PATCH 31/33] Remove old stuff --- .../old-stuff.lagda.md | 1400 ----------------- 1 file changed, 1400 deletions(-) delete mode 100644 src/synthetic-homotopy-theory/old-stuff.lagda.md diff --git a/src/synthetic-homotopy-theory/old-stuff.lagda.md b/src/synthetic-homotopy-theory/old-stuff.lagda.md deleted file mode 100644 index 8234ecbf02..0000000000 --- a/src/synthetic-homotopy-theory/old-stuff.lagda.md +++ /dev/null @@ -1,1400 +0,0 @@ -New idea: instead of bruteforcing this direction, show that a square induces -coherent cubes, and show that it's an equivalence because it fits in a diagram. - --- ## Commuting cubes induce commuting squares in the colimit - --- ```agda --- open import foundation.commuting-cubes-of-maps --- module _ --- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} --- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} --- (up-a : universal-property-sequential-colimit a) --- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} --- (up-b : universal-property-sequential-colimit b) --- {P : sequential-diagram l5} {V : UU l6} {p : cocone-sequential-diagram P V} --- (up-p : universal-property-sequential-colimit p) --- {Q : sequential-diagram l7} {W : UU l8} {q : cocone-sequential-diagram Q W} --- (up-q : universal-property-sequential-colimit q) --- (f' : hom-sequential-diagram P Q) --- (f : hom-sequential-diagram A B) --- (g : hom-sequential-diagram P A) --- (h : hom-sequential-diagram Q B) --- where - --- square-cube-sequential-colimit : --- (faces : --- (n : โ„•) โ†’ --- coherence-square-maps --- ( map-hom-sequential-diagram Q f' n) --- ( map-hom-sequential-diagram A g n) --- ( map-hom-sequential-diagram B h n) --- ( map-hom-sequential-diagram B f n)) โ†’ --- (cubes : --- (n : โ„•) โ†’ --- coherence-cube-maps --- ( map-hom-sequential-diagram B f n) --- ( map-sequential-diagram A n) --- ( map-sequential-diagram B n) --- ( map-hom-sequential-diagram B f (succ-โ„• n)) --- ( map-hom-sequential-diagram Q f' n) --- ( map-sequential-diagram P n) --- ( map-sequential-diagram Q n) --- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) --- ( map-hom-sequential-diagram A g n) --- ( map-hom-sequential-diagram B h n) --- ( map-hom-sequential-diagram A g (succ-โ„• n)) --- ( map-hom-sequential-diagram B h (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram Q f' n) --- ( faces n) --- ( naturality-map-hom-sequential-diagram A g n) --- ( naturality-map-hom-sequential-diagram B h n) --- ( faces (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n)) โ†’ --- coherence-square-maps --- ( map-sequential-colimit-hom-sequential-diagram up-p q f') --- ( map-sequential-colimit-hom-sequential-diagram up-p a g) --- ( map-sequential-colimit-hom-sequential-diagram up-q b h) --- ( map-sequential-colimit-hom-sequential-diagram up-a b f) --- square-cube-sequential-colimit faces cubes = --- inv-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-a b --- f g) โˆ™h --- induced-htpy โˆ™h --- preserves-comp-map-sequential-colimit-hom-sequential-diagram up-p up-q b h f' --- where --- comp1 comp2 : hom-sequential-diagram P B --- comp1 = comp-hom-sequential-diagram P A B f g --- comp2 = comp-hom-sequential-diagram P Q B h f' --- induced-hom-htpy : htpy-hom-sequential-diagram B comp1 comp2 --- pr1 induced-hom-htpy = faces --- pr2 induced-hom-htpy n = --- assoc-htpy _ _ _ โˆ™h --- inv-htpy (cubes n) โˆ™h --- assoc-htpy _ _ _ --- induced-htpy : --- map-sequential-colimit-hom-sequential-diagram up-p b comp1 ~ --- map-sequential-colimit-hom-sequential-diagram up-p b comp2 --- induced-htpy = --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-p b --- ( induced-hom-htpy) --- ``` - --- ## Concatenation of homotopies of morphisms of sequential diagrams - --- ```agda --- open import foundation.whiskering-homotopies-concatenation --- module _ --- {l1 l2 : Level} --- {A : sequential-diagram l1} {B : sequential-diagram l2} --- (f g h : hom-sequential-diagram A B) --- where - --- module _ --- (H : htpy-hom-sequential-diagram B f g) --- (K : htpy-hom-sequential-diagram B g h) --- where - --- concat-htpy-hom-sequential-diagram : htpy-hom-sequential-diagram B f h --- pr1 concat-htpy-hom-sequential-diagram n = --- htpy-htpy-hom-sequential-diagram _ H n โˆ™h --- htpy-htpy-hom-sequential-diagram _ K n --- pr2 concat-htpy-hom-sequential-diagram n = --- inv-htpy-assoc-htpy _ _ _ โˆ™h --- right-whisker-concat-htpy --- ( coherence-htpy-htpy-hom-sequential-diagram B H n) --- ( htpy-htpy-hom-sequential-diagram _ K (succ-โ„• n) ยทr map-sequential-diagram A n) โˆ™h --- assoc-htpy _ _ _ โˆ™h --- left-whisker-concat-htpy --- ( map-sequential-diagram B n ยทl htpy-htpy-hom-sequential-diagram _ H n) --- ( coherence-htpy-htpy-hom-sequential-diagram B K n) โˆ™h --- inv-htpy-assoc-htpy _ _ _ โˆ™h --- right-whisker-concat-htpy --- ( inv-htpy --- ( distributive-left-whisker-comp-concat --- ( map-sequential-diagram B n) --- ( htpy-htpy-hom-sequential-diagram _ H n) --- ( htpy-htpy-hom-sequential-diagram _ K n))) --- ( naturality-map-hom-sequential-diagram B h n) - --- htpy-eq-concat-hom-sequential-diagram : --- (p : f ๏ผ g) (q : g ๏ผ h) โ†’ --- htpy-eq-sequential-diagram A B f h (p โˆ™ q) ๏ผ --- concat-htpy-hom-sequential-diagram --- ( htpy-eq-sequential-diagram A B f g p) --- ( htpy-eq-sequential-diagram A B g h q) --- htpy-eq-concat-hom-sequential-diagram refl refl = --- eq-pair-eq-fiber --- ( inv --- ( eq-binary-htpy _ _ --- ฮป n a โ†’ --- right-unit โˆ™ right-unit โˆ™ --- ap --- ( (inv (assoc _ refl refl) โˆ™ ap (_โˆ™ refl) right-unit) โˆ™ refl โˆ™_) --- ( ap-id right-unit) โˆ™ --- ap --- ( _โˆ™ right-unit) --- ( right-unit โˆ™ --- ap --- ( ฮป p โ†’ inv p โˆ™ ap (_โˆ™ refl) right-unit) --- ( middle-unit-law-assoc --- ( naturality-map-hom-sequential-diagram B f n a) --- ( refl)) โˆ™ --- left-inv (ap (_โˆ™ refl) right-unit)))) --- where --- open import foundation.binary-homotopies --- open import foundation.path-algebra - --- eq-htpy-concat-hom-sequential-diagram : --- (H : htpy-hom-sequential-diagram B f g) --- (K : htpy-hom-sequential-diagram B g h) โ†’ --- eq-htpy-sequential-diagram A B f h --- ( concat-htpy-hom-sequential-diagram H K) ๏ผ --- eq-htpy-sequential-diagram A B f g H โˆ™ --- eq-htpy-sequential-diagram A B g h K --- eq-htpy-concat-hom-sequential-diagram H K = --- ap --- ( eq-htpy-sequential-diagram A B f h) --- ( inv --- ( htpy-eq-concat-hom-sequential-diagram --- ( eq-htpy-sequential-diagram A B f g H) --- ( eq-htpy-sequential-diagram A B g h K) โˆ™ --- ap-binary concat-htpy-hom-sequential-diagram --- ( is-section-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f g) --- ( H)) --- ( is-section-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B g h) --- ( K)))) โˆ™ --- is-retraction-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f h) --- ( eq-htpy-sequential-diagram A B f g H โˆ™ --- eq-htpy-sequential-diagram A B g h K) --- where open import foundation.action-on-identifications-binary-functions --- ``` - --- ## Vertical pasting of cubes of stuff - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {B : sequential-diagram l2} --- {A' : sequential-diagram l3} {B' : sequential-diagram l4} --- {A'' : sequential-diagram l5} {B'' : sequential-diagram l6} --- (top : hom-sequential-diagram A'' B'') --- (top-left : hom-sequential-diagram A'' A') --- (top-right : hom-sequential-diagram B'' B') --- (mid : hom-sequential-diagram A' B') --- (bottom-left : hom-sequential-diagram A' A) --- (bottom-right : hom-sequential-diagram B' B) --- (bottom : hom-sequential-diagram A B) --- (H : --- htpy-hom-sequential-diagram B --- ( comp-hom-sequential-diagram A' A B bottom bottom-left) --- ( comp-hom-sequential-diagram A' B' B bottom-right mid)) --- (K : --- htpy-hom-sequential-diagram B' --- ( comp-hom-sequential-diagram A'' A' B' mid top-left) --- ( comp-hom-sequential-diagram A'' B'' B' top-right top)) --- -- (faces-top : --- -- (n : โ„•) โ†’ --- -- coherence-square-maps --- -- ( map-hom-sequential-diagram B'' top n) --- -- ( map-hom-sequential-diagram A' top-left n) --- -- ( map-hom-sequential-diagram B' top-right n) --- -- ( map-hom-sequential-diagram B' mid n)) --- -- (faces-bottom : --- -- (n : โ„•) โ†’ {!!}) --- -- (cubes-top : --- -- (n : โ„•) โ†’ {!!}) --- -- (cubes-bottom : --- -- (n : โ„•) โ†’ {!!}) --- -- -- (cubes : --- -- -- (n : โ„•) โ†’ --- -- -- coherence-cube-maps --- -- -- ( map-hom-sequential-diagram B f n) --- -- -- ( map-sequential-diagram A n) --- -- -- ( map-sequential-diagram B n) --- -- -- ( map-hom-sequential-diagram B f (succ-โ„• n)) --- -- -- ( map-hom-sequential-diagram Q f' n) --- -- -- ( map-sequential-diagram P n) --- -- -- ( map-sequential-diagram Q n) --- -- -- ( map-hom-sequential-diagram Q f' (succ-โ„• n)) --- -- -- ( map-hom-sequential-diagram A g n) --- -- -- ( map-hom-sequential-diagram B h n) --- -- -- ( map-hom-sequential-diagram A g (succ-โ„• n)) --- -- -- ( map-hom-sequential-diagram B h (succ-โ„• n)) --- -- -- ( naturality-map-hom-sequential-diagram Q f' n) --- -- -- ( faces n) --- -- -- ( naturality-map-hom-sequential-diagram A g n) --- -- -- ( naturality-map-hom-sequential-diagram B h n) --- -- -- ( faces (succ-โ„• n)) --- -- -- ( naturality-map-hom-sequential-diagram B f n)) โ†’ --- where - --- pasting-vertical-coherence-square-hom-sequential-diagram : --- htpy-hom-sequential-diagram B --- ( comp-hom-sequential-diagram A'' A B bottom --- ( comp-hom-sequential-diagram A'' A' A bottom-left top-left)) --- ( comp-hom-sequential-diagram A'' B'' B --- ( comp-hom-sequential-diagram B'' B' B bottom-right top-right) --- ( top)) --- pasting-vertical-coherence-square-hom-sequential-diagram = {!!} --- ``` - --- ## Whiskering of homotopies of morphisms of sequential diagrams - --- ### Right whiskering - --- ```agda --- module _ --- {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {C : UU l3} --- where - --- htpy-eq-right-whisker : --- {f g : B โ†’ C} (p : f ๏ผ g) (h : A โ†’ B) โ†’ --- htpy-eq (ap (_โˆ˜ h) p) ๏ผ htpy-eq p ยทr h --- htpy-eq-right-whisker refl h = refl - --- eq-htpy-right-whisker : --- {f g : B โ†’ C} (H : f ~ g) (h : A โ†’ B) โ†’ --- eq-htpy (H ยทr h) ๏ผ ap (_โˆ˜ h) (eq-htpy H) --- eq-htpy-right-whisker H h = --- ap eq-htpy --- ( inv --- ( htpy-eq-right-whisker (eq-htpy H) h โˆ™ --- ap (_ยทr h) (is-section-eq-htpy H))) โˆ™ --- is-retraction-eq-htpy (ap (_โˆ˜ h) (eq-htpy H)) - --- htpy-eq-left-whisker : --- {f g : A โ†’ B} (h : B โ†’ C) (p : f ๏ผ g) โ†’ --- htpy-eq (ap (h โˆ˜_) p) ๏ผ h ยทl htpy-eq p --- htpy-eq-left-whisker h refl = refl - --- -- alternatively, using homotopy induction --- eq-htpy-left-whisker : --- {f g : A โ†’ B} (h : B โ†’ C) (H : f ~ g) โ†’ --- eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H) --- eq-htpy-left-whisker {f} h = --- ind-htpy f --- ( ฮป g H โ†’ --- eq-htpy (h ยทl H) ๏ผ ap (h โˆ˜_) (eq-htpy H)) --- ( eq-htpy-refl-htpy (h โˆ˜ f) โˆ™ --- inv (ap (ap (h โˆ˜_)) (eq-htpy-refl-htpy f))) --- where open import foundation.homotopy-induction --- ``` - --- ```agda --- module _ --- {l1 l2 l3 : Level} --- {A : sequential-diagram l1} {B : sequential-diagram l2} --- {X : sequential-diagram l3} --- {f g : hom-sequential-diagram A B} --- where --- open import foundation.whiskering-identifications-concatenation - --- module _ --- (H : htpy-hom-sequential-diagram B f g) --- (h : hom-sequential-diagram X A) --- where - --- right-whisker-concat-htpy-hom-sequential-diagram : --- htpy-hom-sequential-diagram B --- ( comp-hom-sequential-diagram X A B f h) --- ( comp-hom-sequential-diagram X A B g h) --- pr1 right-whisker-concat-htpy-hom-sequential-diagram n = --- htpy-htpy-hom-sequential-diagram _ H n ยทr map-hom-sequential-diagram A h n --- pr2 right-whisker-concat-htpy-hom-sequential-diagram n x = --- assoc _ _ _ โˆ™ --- left-whisker-concat --- ( naturality-map-hom-sequential-diagram B f n (map-hom-sequential-diagram A h n x)) --- ( inv-nat-htpy --- ( htpy-htpy-hom-sequential-diagram B H (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ --- inv (assoc _ _ _) โˆ™ --- right-whisker-concat --- ( coherence-htpy-htpy-hom-sequential-diagram B H n (map-hom-sequential-diagram A h n x)) --- ( ap --- ( map-hom-sequential-diagram B g (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram A h n x)) โˆ™ --- assoc _ _ _ - --- htpy-eq-right-whisker-htpy-hom-sequential-diagram : --- (p : f ๏ผ g) (h : hom-sequential-diagram X A) โ†’ --- htpy-eq-sequential-diagram X B --- ( comp-hom-sequential-diagram X A B f h) --- ( comp-hom-sequential-diagram X A B g h) --- ( ap (ฮป f โ†’ comp-hom-sequential-diagram X A B f h) p) ๏ผ --- right-whisker-concat-htpy-hom-sequential-diagram --- ( htpy-eq-sequential-diagram A B f g p) --- ( h) --- htpy-eq-right-whisker-htpy-hom-sequential-diagram refl h = --- eq-pair-eq-fiber --- ( eq-binary-htpy _ _ --- ฮป n x โ†’ --- inv --- ( right-unit โˆ™ --- ap-binary --- ( ฮป p q โ†’ --- p โˆ™ --- left-whisker-concat _ q โˆ™ --- inv (assoc _ refl _) โˆ™ --- right-whisker-concat _ _) --- ( right-unit-law-assoc _ _) --- ( inv-nat-refl-htpy _ _) โˆ™ --- ap --- ( ฮป p โ†’ --- right-unit โˆ™ --- left-whisker-concat _ (inv right-unit) โˆ™ --- left-whisker-concat _ right-unit โˆ™ --- inv p โˆ™ --- right-whisker-concat right-unit _) --- ( middle-unit-law-assoc _ _) โˆ™ --- is-section-inv-concat' --- ( right-whisker-concat right-unit _) --- ( right-unit โˆ™ --- left-whisker-concat _ (inv right-unit) โˆ™ --- left-whisker-concat _ right-unit) โˆ™ --- ap --- ( ฮป p โ†’ right-unit โˆ™ p โˆ™ left-whisker-concat _ right-unit) --- ( ap-inv (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) โˆ™ --- is-section-inv-concat' --- ( ap (naturality-map-hom-sequential-diagram B f n _ โˆ™_) right-unit) --- ( right-unit))) --- where --- open import foundation.binary-homotopies --- open import foundation.path-algebra --- open import foundation.action-on-identifications-binary-functions - --- eq-htpy-right-whisker-htpy-hom-sequential-diagram : --- (H : htpy-hom-sequential-diagram B f g) (h : hom-sequential-diagram X A) โ†’ --- eq-htpy-sequential-diagram X B --- ( comp-hom-sequential-diagram X A B f h) --- ( comp-hom-sequential-diagram X A B g h) --- ( right-whisker-concat-htpy-hom-sequential-diagram H h) ๏ผ --- ap --- ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) --- ( eq-htpy-sequential-diagram A B f g H) --- eq-htpy-right-whisker-htpy-hom-sequential-diagram H h = --- ap --- ( eq-htpy-sequential-diagram X B _ _) --- ( inv --- ( htpy-eq-right-whisker-htpy-hom-sequential-diagram --- ( eq-htpy-sequential-diagram A B f g H) --- ( h) โˆ™ --- ap --- ( ฮป H โ†’ right-whisker-concat-htpy-hom-sequential-diagram H h) --- ( is-section-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f g) --- ( H)))) โˆ™ --- is-retraction-map-inv-equiv --- ( extensionality-hom-sequential-diagram X B --- ( comp-hom-sequential-diagram X A B f h) --- ( comp-hom-sequential-diagram X A B g h)) --- ( ap --- ( ฮป f โ†’ comp-hom-sequential-diagram X A B f h) --- ( eq-htpy-sequential-diagram A B f g H)) --- ``` - --- ### Left whiskering - --- ```agda --- module _ --- {l1 l2 l3 : Level} --- {A : sequential-diagram l1} {B : sequential-diagram l2} --- {X : sequential-diagram l3} --- {f g : hom-sequential-diagram A B} --- where --- open import foundation.whiskering-identifications-concatenation - --- module _ --- (h : hom-sequential-diagram B X) --- (H : htpy-hom-sequential-diagram B f g) --- where - --- left-whisker-concat-htpy-hom-sequential-diagram : --- htpy-hom-sequential-diagram X --- ( comp-hom-sequential-diagram A B X h f) --- ( comp-hom-sequential-diagram A B X h g) --- pr1 left-whisker-concat-htpy-hom-sequential-diagram n = --- map-hom-sequential-diagram X h n ยทl htpy-htpy-hom-sequential-diagram _ H n --- pr2 left-whisker-concat-htpy-hom-sequential-diagram n a = --- assoc _ _ _ โˆ™ --- left-whisker-concat --- ( naturality-map-hom-sequential-diagram X h n (map-hom-sequential-diagram B f n a)) --- ( inv (ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ --- ap --- ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) --- ( coherence-htpy-htpy-hom-sequential-diagram B H n a) โˆ™ --- ap-concat (map-hom-sequential-diagram X h (succ-โ„• n)) _ _) โˆ™ --- inv (assoc _ _ _) โˆ™ --- right-whisker-concat --- ( left-whisker-concat --- ( naturality-map-hom-sequential-diagram X h n --- ( map-hom-sequential-diagram B f n a)) --- ( inv --- ( ap-comp --- ( map-hom-sequential-diagram X h (succ-โ„• n)) --- ( map-sequential-diagram B n) --- ( htpy-htpy-hom-sequential-diagram B H n a))) โˆ™ --- nat-htpy --- ( naturality-map-hom-sequential-diagram X h n) --- ( htpy-htpy-hom-sequential-diagram B H n a) โˆ™ --- right-whisker-concat --- ( ap-comp --- ( map-sequential-diagram X n) --- ( map-hom-sequential-diagram X h n) --- ( htpy-htpy-hom-sequential-diagram B H n a)) --- ( naturality-map-hom-sequential-diagram X h n --- ( map-hom-sequential-diagram B g n a))) --- ( ap --- ( map-hom-sequential-diagram X h (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B g n a)) โˆ™ --- assoc _ _ _ - --- htpy-eq-left-whisker-htpy-hom-sequential-diagram : --- (h : hom-sequential-diagram B X) (p : f ๏ผ g) โ†’ --- htpy-eq-sequential-diagram A X --- ( comp-hom-sequential-diagram A B X h f) --- ( comp-hom-sequential-diagram A B X h g) --- ( ap (comp-hom-sequential-diagram A B X h) p) ๏ผ --- left-whisker-concat-htpy-hom-sequential-diagram h --- ( htpy-eq-sequential-diagram A B f g p) --- htpy-eq-left-whisker-htpy-hom-sequential-diagram h refl = --- eq-pair-eq-fiber --- ( eq-binary-htpy _ _ --- ( ฮป n a โ†’ --- inv --- ( right-unit โˆ™ --- ( ap-binary --- ( ฮป p q โ†’ --- p โˆ™ --- left-whisker-concat --- ( naturality-map-hom-sequential-diagram X h n --- ( map-hom-sequential-diagram B f n a)) --- ( inv (ap-concat _ _ refl) โˆ™ --- ap --- ( ap (map-hom-sequential-diagram X h (succ-โ„• n))) --- ( right-unit) โˆ™ --- refl) โˆ™ --- q โˆ™ --- right-whisker-concat (right-unit โˆ™ refl) _) --- ( right-unit-law-assoc _ (ap _ _) โˆ™ --- left-whisker-concat right-unit (ap-inv _ right-unit)) --- ( ap inv (middle-unit-law-assoc _ _))) โˆ™ --- ( ap-binary --- ( ฮป p q โ†’ --- right-unit โˆ™ --- inv (left-whisker-concat _ right-unit) โˆ™ --- left-whisker-concat _ p โˆ™ --- inv (right-whisker-concat right-unit _) โˆ™ --- right-whisker-concat q _) --- ( right-unit โˆ™ --- right-whisker-concat --- ( ap inv (compute-right-refl-ap-concat _ _) โˆ™ --- distributive-inv-concat --- ( ap (ap _) right-unit) --- ( inv right-unit) โˆ™ --- right-whisker-concat (inv-inv right-unit) _) --- ( ap (ap _) right-unit) โˆ™ --- is-section-inv-concat' (ap (ap _) right-unit) right-unit) --- ( right-unit)) โˆ™ --- is-section-inv-concat' --- ( right-whisker-concat right-unit _) --- ( right-unit โˆ™ inv _ โˆ™ _) โˆ™ --- is-section-inv-concat' --- ( left-whisker-concat _ right-unit) --- ( right-unit)))) --- where --- open import foundation.action-on-identifications-binary-functions --- open import foundation.binary-homotopies --- open import foundation.path-algebra - --- eq-htpy-left-whisker-htpy-hom-sequential-diagram : --- (h : hom-sequential-diagram B X) (H : htpy-hom-sequential-diagram B f g) โ†’ --- eq-htpy-sequential-diagram A X --- ( comp-hom-sequential-diagram A B X h f) --- ( comp-hom-sequential-diagram A B X h g) --- ( left-whisker-concat-htpy-hom-sequential-diagram h H) ๏ผ --- ap --- ( comp-hom-sequential-diagram A B X h) --- ( eq-htpy-sequential-diagram A B f g H) --- eq-htpy-left-whisker-htpy-hom-sequential-diagram h H = --- ap --- ( eq-htpy-sequential-diagram A X _ _) --- ( inv --- ( htpy-eq-left-whisker-htpy-hom-sequential-diagram h --- ( eq-htpy-sequential-diagram A B f g H) โˆ™ --- ap --- ( left-whisker-concat-htpy-hom-sequential-diagram h) --- ( is-section-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f g) --- ( H)))) โˆ™ --- is-retraction-map-inv-equiv --- ( extensionality-hom-sequential-diagram A X --- ( comp-hom-sequential-diagram A B X h f) --- ( comp-hom-sequential-diagram A B X h g)) --- ( ap --- ( comp-hom-sequential-diagram A B X h) --- ( eq-htpy-sequential-diagram A B f g H)) --- ``` - --- ## Action on homotopies of morphisms of sequential diagrams preserves whiskering - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} --- (up-a : universal-property-sequential-colimit a) --- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} --- (up-b : universal-property-sequential-colimit b) --- {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) --- {f g : hom-sequential-diagram B C} --- where - --- coh-comp-hom-sequential-diagram : --- (p : f ๏ผ g) (h : hom-sequential-diagram A B) โ†’ --- ap --- ( map-sequential-colimit-hom-sequential-diagram up-a c) --- ( ap (ฮป f โ†’ comp-hom-sequential-diagram A B C f h) p) โˆ™ --- eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h) ๏ผ --- eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™ --- ap --- ( _โˆ˜ map-sequential-colimit-hom-sequential-diagram up-a b h) --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-b c) --- ( p)) --- coh-comp-hom-sequential-diagram refl h = inv right-unit - --- preserves-right-whisker-htpy-hom-sequential-diagram : --- (H : htpy-hom-sequential-diagram C f g) --- (h : hom-sequential-diagram A B) โ†’ --- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c --- ( right-whisker-concat-htpy-hom-sequential-diagram H h)) โˆ™h --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c g h)) ~ --- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c f h) โˆ™h --- ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-b c H ยทr --- map-sequential-colimit-hom-sequential-diagram up-a b h)) --- preserves-right-whisker-htpy-hom-sequential-diagram H h = --- htpy-eq --- ( ( ap --- ( ฮป p โ†’ --- htpy-eq --- ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h --- preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c g h) --- ( eq-htpy-right-whisker-htpy-hom-sequential-diagram H h)) โˆ™ --- ( inv [i]) โˆ™ --- ( ap htpy-eq --- ( coh-comp-hom-sequential-diagram --- ( eq-htpy-sequential-diagram B C f g H) --- ( h))) โˆ™ --- ( htpy-eq-concat _ _) โˆ™ --- ( ap-binary --- ( _โˆ™h_) --- ( is-section-eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c f h)) --- ( htpy-eq-right-whisker --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-b c) --- ( eq-htpy-sequential-diagram B C f g H)) --- ( map-sequential-colimit-hom-sequential-diagram up-a b h)))) --- where --- open import foundation.action-on-identifications-binary-functions --- [i] = --- htpy-eq-concat --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a c) --- ( ap --- ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) --- ( eq-htpy-sequential-diagram B C f g H))) --- ( eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c g h)) โˆ™ --- ap --- ( htpy-eq --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a c) --- ( ap --- ( ฮป f โ†’ comp-hom-sequential-diagram A B C f h) --- ( eq-htpy-sequential-diagram B C f g H))) โˆ™h_) --- ( is-section-eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c g h)) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} --- (up-a : universal-property-sequential-colimit a) --- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} --- (up-b : universal-property-sequential-colimit b) --- {C : sequential-diagram l5} {Z : UU l6} (c : cocone-sequential-diagram C Z) --- (h : hom-sequential-diagram B C) --- {f g : hom-sequential-diagram A B} --- where - --- coh-comp-hom-sequential-diagram' : --- (p : f ๏ผ g) โ†’ --- ap --- ( map-sequential-colimit-hom-sequential-diagram up-a c) --- ( ap (comp-hom-sequential-diagram A B C h) p) โˆ™ --- eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g) ๏ผ --- eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™ --- ap --- ( map-sequential-colimit-hom-sequential-diagram up-b c h โˆ˜_) --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( p)) --- coh-comp-hom-sequential-diagram' refl = inv right-unit - --- preserves-left-whisker-htpy-hom-sequential-diagram : --- (H : htpy-hom-sequential-diagram B f g) โ†’ --- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a c --- ( left-whisker-concat-htpy-hom-sequential-diagram h H)) โˆ™h --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h g)) ~ --- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b c h f) โˆ™h --- ( map-sequential-colimit-hom-sequential-diagram up-b c h ยทl --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H)) --- preserves-left-whisker-htpy-hom-sequential-diagram H = --- htpy-eq --- ( ap-binary --- ( ฮป p q โ†’ --- htpy-eq --- ( ap (map-sequential-colimit-hom-sequential-diagram up-a c) p) โˆ™h --- q) --- ( eq-htpy-left-whisker-htpy-hom-sequential-diagram h H) --- ( inv --- ( is-section-eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c h g))) โˆ™ --- inv --- ( htpy-eq-concat --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a c) --- ( ap --- ( comp-hom-sequential-diagram A B C h) --- ( eq-htpy-sequential-diagram A B f g H))) --- ( eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c h g))) โˆ™ --- ap htpy-eq --- ( coh-comp-hom-sequential-diagram' --- ( eq-htpy-sequential-diagram A B f g H)) โˆ™ --- htpy-eq-concat _ _ โˆ™ --- ap-binary _โˆ™h_ --- ( is-section-eq-htpy --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c h f)) --- ( htpy-eq-left-whisker --- ( map-sequential-colimit-hom-sequential-diagram up-b c h) --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( eq-htpy-sequential-diagram A B f g H)))) --- where --- open import foundation.action-on-identifications-binary-functions --- ``` - --- ## Action on homotopies of morphisms of sequential diagrams preserves concatenation - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} --- (up-a : universal-property-sequential-colimit a) --- {B : sequential-diagram l3} {Y : UU l4} (b : cocone-sequential-diagram B Y) --- {f g h : hom-sequential-diagram A B} --- (H : htpy-hom-sequential-diagram B f g) --- (K : htpy-hom-sequential-diagram B g h) --- where - --- preserves-concat-htpy-hom-sequential-diagram : --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b --- ( concat-htpy-hom-sequential-diagram f g h H K) ~ --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b H โˆ™h --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a b K --- preserves-concat-htpy-hom-sequential-diagram = --- htpy-eq --- ( ( ap --- ( ฮป p โ†’ --- htpy-eq --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( p))) --- ( eq-htpy-concat-hom-sequential-diagram f g h H K)) โˆ™ --- ( ap htpy-eq --- ( ap-concat --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( eq-htpy-sequential-diagram A B f g H) --- ( eq-htpy-sequential-diagram A B g h K))) โˆ™ --- ( htpy-eq-concat --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( eq-htpy-sequential-diagram A B f g H)) --- ( ap --- ( map-sequential-colimit-hom-sequential-diagram up-a b) --- ( eq-htpy-sequential-diagram A B g h K)))) --- ``` - --- ## Action on homotopies of morphisms of sequential diagrams preserves associativity - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 l7 l8 : Level} --- {A : sequential-diagram l1} {X : UU l2} {a : cocone-sequential-diagram A X} --- (up-a : universal-property-sequential-colimit a) --- {B : sequential-diagram l3} {Y : UU l4} {b : cocone-sequential-diagram B Y} --- (up-b : universal-property-sequential-colimit b) --- {C : sequential-diagram l5} {Z : UU l6} {c : cocone-sequential-diagram C Z} --- (up-c : universal-property-sequential-colimit c) --- {D : sequential-diagram l7} {V : UU l8} (d : cocone-sequential-diagram D V) --- (f : hom-sequential-diagram A B) (g : hom-sequential-diagram B C) --- (h : hom-sequential-diagram C D) --- where - --- coh-assoc-comp-hom-sequential-diagram : --- {!!} --- coh-assoc-comp-hom-sequential-diagram = {!!} - --- preserves-assoc-comp-hom-sequential-diagram : --- ( ( htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-a d --- ( assoc-comp-hom-sequential-diagram f g h)) โˆ™h --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-c d h --- ( comp-hom-sequential-diagram A B C g f)) โˆ™h --- ( map-sequential-colimit-hom-sequential-diagram up-c d h ยทl --- preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-a up-b c g f)) ~ --- ( ( preserves-comp-map-sequential-colimit-hom-sequential-diagram up-a up-b d --- ( comp-hom-sequential-diagram B C D h g) --- ( f)) โˆ™h --- ( preserves-comp-map-sequential-colimit-hom-sequential-diagram --- up-b up-c d h g ยทr --- map-sequential-colimit-hom-sequential-diagram up-a b f)) --- preserves-assoc-comp-hom-sequential-diagram = --- {!!} --- ``` - --- ```agda --- nat-lemma : --- {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} --- {P : A โ†’ UU l3} {Q : B โ†’ UU l4} --- (f : A โ†’ B) (h : (a : A) โ†’ P a โ†’ Q (f a)) --- {x y : A} {p : x ๏ผ y} --- {q : f x ๏ผ f y} (ฮฑ : ap f p ๏ผ q) โ†’ --- coherence-square-maps --- ( tr P p) --- ( h x) --- ( h y) --- ( tr Q q) --- nat-lemma f h {p = p} refl x = --- substitution-law-tr _ f p โˆ™ inv (preserves-tr h p x) --- ``` - --- ## - --- ```agda --- open import synthetic-homotopy-theory.families-descent-data-sequential-colimits --- open import synthetic-homotopy-theory.total-cocones-families-sequential-diagrams --- open import synthetic-homotopy-theory.total-sequential-diagrams - --- open import foundation.action-on-identifications-functions --- open import foundation.commuting-squares-of-identifications --- open import foundation.functoriality-dependent-pair-types --- open import foundation.equality-dependent-pair-types --- open import foundation.identity-types --- open import synthetic-homotopy-theory.sequential-colimits --- open import synthetic-homotopy-theory.functoriality-sequential-colimits --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} --- {X : UU l2} {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- (P : family-with-descent-data-sequential-colimit c l3) --- {Y : UU l4} --- {c' : --- cocone-sequential-diagram --- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( Y)} --- (up-c' : universal-property-sequential-colimit c') --- where - --- mediating-cocone : --- cocone-sequential-diagram --- ( total-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P)) --- pr1 mediating-cocone n = --- map-ฮฃ --- ( family-cocone-family-with-descent-data-sequential-colimit P) --- ( map-cocone-sequential-diagram c n) --- ( ฮป a โ†’ map-equiv-descent-data-family-with-descent-data-sequential-colimit P n a) --- pr2 mediating-cocone n (a , p) = --- eq-pair-ฮฃ --- ( coherence-cocone-sequential-diagram c n a) --- ( inv --- ( coherence-square-equiv-descent-data-family-with-descent-data-sequential-colimit P n a p)) - --- totฮน' : Y โ†’ ฮฃ X (family-cocone-family-with-descent-data-sequential-colimit P) --- totฮน' = --- map-universal-property-sequential-colimit up-c' mediating-cocone --- triangle-pr1โˆž-pr1 : --- pr1-sequential-colimit-total-sequential-diagram --- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P) --- ( up-c') --- ( c) ~ --- pr1 โˆ˜ totฮน' --- triangle-pr1โˆž-pr1 = --- htpy-htpy-out-of-sequential-colimit up-c' --- ( concat-htpy-cocone-sequential-diagram --- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c' c --- ( pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-with-descent-data-sequential-colimit P))) --- ( ( ฮป n โ†’ --- inv-htpy (pr1 ยทl (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n))) , --- ( ฮป n x โ†’ --- ap (_โˆ™ inv (ap pr1 (pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _))) right-unit โˆ™ --- horizontal-inv-coherence-square-identifications _ --- ( ap (pr1 โˆ˜ totฮน') (coherence-cocone-sequential-diagram c' n x)) --- ( coherence-cocone-sequential-diagram c n (pr1 x)) --- _ --- ( ( ap --- ( _โˆ™ ap pr1 --- ( pr1 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) (succ-โ„• n) _)) --- ( ap-comp pr1 --- ( totฮน') --- ( coherence-cocone-sequential-diagram c' n x))) โˆ™ --- ( inv --- ( ap-concat pr1 --- ( ap --- ( totฮน') --- ( coherence-cocone-sequential-diagram c' n x)) _)) โˆ™ --- ( ap (ap pr1) (pr2 (htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) n x)) โˆ™ --- ( ap-concat pr1 --- ( pr1 --- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) --- n x) --- ( coherence-cocone-sequential-diagram mediating-cocone n x)) โˆ™ --- ( ap --- ( ap pr1 --- ( pr1 --- ( htpy-cocone-universal-property-sequential-colimit up-c' mediating-cocone) --- n x) โˆ™_) --- ( ap-pr1-eq-pair-ฮฃ --- ( coherence-cocone-sequential-diagram c n (pr1 x)) --- ( _))))))) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) --- (f : hom-sequential-diagram A B) --- (f' : --- (x : X) โ†’ P x โ†’ --- Q (map-sequential-colimit-hom-sequential-diagram up-c c' f x)) --- where - --- open import synthetic-homotopy-theory.flattening-lemma-sequential-colimits - --- ฮฃAP : sequential-diagram (l1 โŠ” l5) --- ฮฃAP = --- total-sequential-diagram (dependent-sequential-diagram-family-cocone c P) - --- ฮฃBQ : sequential-diagram (l3 โŠ” l6) --- ฮฃBQ = --- total-sequential-diagram (dependent-sequential-diagram-family-cocone c' Q) - --- private --- finf : X โ†’ Y --- finf = (map-sequential-colimit-hom-sequential-diagram up-c c' f) - --- totff' : hom-sequential-diagram ฮฃAP ฮฃBQ --- pr1 totff' n = --- map-ฮฃ _ --- ( map-hom-sequential-diagram B f n) --- ( ฮป a โ†’ --- tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) โˆ˜ --- f' (map-cocone-sequential-diagram c n a)) --- pr2 totff' n (a , p) = --- eq-pair-ฮฃ --- ( naturality-map-hom-sequential-diagram B f n a) --- ((pasting-vertical-coherence-square-maps --- ( tr P (coherence-cocone-sequential-diagram c n a)) --- ( f' _) --- ( f' _) --- ( tr Q (ap finf (coherence-cocone-sequential-diagram c n a))) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) --- ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) --- ( ฮป q โ†’ --- substitution-law-tr Q finf (coherence-cocone-sequential-diagram c n a) โˆ™ --- inv (preserves-tr f' (coherence-cocone-sequential-diagram c n a) q)) --- ( ( inv-htpy --- ( ฮป q โ†’ --- ( tr-concat --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( _) --- ( q)) โˆ™ --- ( tr-concat --- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( q))) โˆ™ --- ( substitution-law-tr Q --- ( map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h --- ( ฮป q โ†’ --- ap --- ( ฮป p โ†’ tr Q p q) --- ( inv --- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h --- ( tr-concat --- ( ap finf (coherence-cocone-sequential-diagram c n a)) --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a))))) p) - - --- totff'โˆž : ฮฃ X P โ†’ ฮฃ Y Q --- totff'โˆž = --- map-sequential-colimit-hom-sequential-diagram --- ( flattening-lemma-sequential-colimit _ P up-c) --- ( total-cocone-family-cocone-sequential-diagram c' Q) --- ( totff') - --- pr1Aโˆ™ : hom-sequential-diagram ฮฃAP A --- pr1Aโˆ™ = --- pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-cocone c P) --- pr1Bโˆ™ : hom-sequential-diagram ฮฃBQ B --- pr1Bโˆ™ = --- pr1-total-sequential-diagram --- ( dependent-sequential-diagram-family-cocone c' Q) - --- pr1โˆ˜totff' : hom-sequential-diagram ฮฃAP B --- pr1โˆ˜totff' = comp-hom-sequential-diagram ฮฃAP ฮฃBQ B pr1Bโˆ™ totff' --- fโˆ˜pr1 : hom-sequential-diagram ฮฃAP B --- fโˆ˜pr1 = comp-hom-sequential-diagram ฮฃAP A B f pr1Aโˆ™ - --- pr1cohโˆ™ : htpy-hom-sequential-diagram B fโˆ˜pr1 pr1โˆ˜totff' --- pr1 pr1cohโˆ™ n = --- refl-htpy --- pr2 pr1cohโˆ™ n = --- right-unit-htpy โˆ™h --- right-unit-htpy โˆ™h --- ( ฮป x โ†’ --- inv --- ( ap-pr1-eq-pair-ฮฃ --- ( naturality-map-hom-sequential-diagram B f n (pr1 x)) --- ( _))) - --- module _ --- (sA : --- section-descent-data-sequential-colimit --- ( descent-data-family-cocone-sequential-diagram c P)) --- (sB : --- section-descent-data-sequential-colimit --- ( descent-data-family-cocone-sequential-diagram c' Q)) --- where --- open import foundation.sections - --- -- vertical maps, the "sides" of the cubes --- sAโˆ™ : hom-sequential-diagram A ฮฃAP --- pr1 sAโˆ™ n = map-section-family (pr1 sA n) --- pr2 sAโˆ™ n a = eq-pair-eq-fiber (pr2 sA n a) --- sBโˆ™ : hom-sequential-diagram B ฮฃBQ --- pr1 sBโˆ™ n = map-section-family (pr1 sB n) --- pr2 sBโˆ™ n b = eq-pair-eq-fiber (pr2 sB n b) --- totff'โˆ˜sAโˆ™ : hom-sequential-diagram A ฮฃBQ --- totff'โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP ฮฃBQ totff' sAโˆ™ --- sBโˆ™โˆ˜f : hom-sequential-diagram A ฮฃBQ --- sBโˆ™โˆ˜f = comp-hom-sequential-diagram A B ฮฃBQ sBโˆ™ f --- -- the unaligned cubes --- Hโˆ™ : --- htpy-hom-sequential-diagram ฮฃBQ totff'โˆ˜sAโˆ™ sBโˆ™โˆ˜f --- pr1 Hโˆ™ n a = eq-pair-eq-fiber {!!} --- pr2 Hโˆ™ = {!!} - --- pr1โˆ™โˆ˜sAโˆ™ : hom-sequential-diagram A A --- pr1โˆ™โˆ˜sAโˆ™ = comp-hom-sequential-diagram A ฮฃAP A pr1Aโˆ™ sAโˆ™ - --- idAโˆ™ : hom-sequential-diagram A A --- idAโˆ™ = id-hom-sequential-diagram A --- idBโˆ™ : hom-sequential-diagram B B --- idBโˆ™ = id-hom-sequential-diagram B --- fโˆ˜idAโˆ™ : hom-sequential-diagram A B --- fโˆ˜idAโˆ™ = comp-hom-sequential-diagram A A B f idAโˆ™ --- idBโˆ™โˆ˜f : hom-sequential-diagram A B --- idBโˆ™โˆ˜f = comp-hom-sequential-diagram A B B idBโˆ™ f --- reflโˆ™ : htpy-hom-sequential-diagram B fโˆ˜idAโˆ™ idBโˆ™โˆ˜f --- pr1 reflโˆ™ = ev-pair refl-htpy --- pr2 reflโˆ™ n a = --- right-unit โˆ™ --- right-unit โˆ™ --- inv (ap-id (naturality-map-hom-sequential-diagram B f n a)) --- -- the alignment: postcomposing Hโˆ™ with pr1cohโˆ™ is homotopic with id --- โ„‹ : --- {!htpyยฒ-hom-sequential-diagram!} --- โ„‹ = {!!} - --- _ : --- totฮน' up-c --- ( family-with-descent-data-family-cocone-sequential-diagram c P) --- ( flattening-lemma-sequential-colimit c P up-c) ~ --- id --- _ = --- compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit _ P up-c) - --- _ : --- coherence-square-maps --- ( totฮน' up-c --- ( family-with-descent-data-family-cocone-sequential-diagram c P) --- ( flattening-lemma-sequential-colimit c P up-c)) --- ( totff'โˆž) --- ( map-ฮฃ Q --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- f') --- ( totฮน' up-c' --- ( family-with-descent-data-family-cocone-sequential-diagram c' Q) --- ( flattening-lemma-sequential-colimit c' Q up-c')) --- _ = --- ( compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit c' Q up-c') ยทr _) โˆ™h --- ( htpy-htpy-out-of-sequential-colimit --- ( flattening-lemma-sequential-colimit c P up-c) --- ( concat-htpy-cocone-sequential-diagram --- ( htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- ( flattening-lemma-sequential-colimit c P up-c) --- ( total-cocone-family-cocone-sequential-diagram c' Q) --- ( totff')) --- ( ( ฮป n (a , p) โ†’ --- inv --- ( eq-pair-ฮฃ --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' --- ( f) --- ( n) --- ( a)) --- refl)) , --- {!!}))) โˆ™h --- ( _ ยทl --- ( inv-htpy --- (compute-map-universal-property-sequential-colimit-id --- ( flattening-lemma-sequential-colimit c P up-c)))) - --- -- htpy-htpy-out-of-sequential-colimit --- -- ( flattening-lemma-sequential-colimit c P up-c) --- -- ( {!!}) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (f : hom-sequential-diagram A B) --- where --- open import foundation.homotopies-morphisms-arrows - --- interm : --- coherence-square-maps --- ( id) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( id) --- interm = --- htpy-map-sequential-colimit-htpy-hom-sequential-diagram up-c c' --- ( refl-htpy-hom-sequential-diagram A B f) - --- preserves-refl-htpy-sequential-colimit : --- htpy-hom-arrow --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( map-sequential-colimit-hom-sequential-diagram up-c c' f) --- ( id , id , interm) --- ( id , id , refl-htpy) --- pr1 preserves-refl-htpy-sequential-colimit = refl-htpy --- pr1 (pr2 preserves-refl-htpy-sequential-colimit) = refl-htpy --- pr2 (pr2 preserves-refl-htpy-sequential-colimit) = --- right-unit-htpy โˆ™h --- htpy-eq --- ( ap --- ( htpy-eq โˆ˜ ap (map-sequential-colimit-hom-sequential-diagram up-c c')) --- ( is-retraction-map-inv-equiv --- ( extensionality-hom-sequential-diagram A B f f) --- ( refl))) --- ``` - --- ```agda --- module _ --- {l1 l2 l3 l4 : Level} --- {A : sequential-diagram l1} --- (B : sequential-diagram l2) --- (f : hom-sequential-diagram A B) --- (P : descent-data-sequential-colimit A l3) --- (Q : descent-data-sequential-colimit B l4) --- where - --- hom-over-hom : UU (l1 โŠ” l3 โŠ” l4) --- hom-over-hom = --- ฮฃ ( (n : โ„•) (a : family-sequential-diagram A n) โ†’ --- family-descent-data-sequential-colimit P n a โ†’ --- family-descent-data-sequential-colimit Q n --- ( map-hom-sequential-diagram B f n a)) --- ( ฮป f'n โ†’ --- (n : โ„•) โ†’ --- square-over --- { Q4 = family-descent-data-sequential-colimit Q (succ-โ„• n)} --- ( map-sequential-diagram A n) --- ( map-hom-sequential-diagram B f n) --- ( map-hom-sequential-diagram B f (succ-โ„• n)) --- ( map-sequential-diagram B n) --- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit P n a) --- ( ฮป {a} โ†’ f'n n a) --- ( ฮป {a} โ†’ f'n (succ-โ„• n) a) --- ( ฮป {a} โ†’ map-family-descent-data-sequential-colimit Q n a) --- ( naturality-map-hom-sequential-diagram B f n)) --- module _ --- {l1 l2 l3 l4 l5 l6 : Level} --- {A : sequential-diagram l1} {X : UU l2} --- {c : cocone-sequential-diagram A X} --- (up-c : universal-property-sequential-colimit c) --- {B : sequential-diagram l3} {Y : UU l4} --- {c' : cocone-sequential-diagram B Y} --- (up-c' : universal-property-sequential-colimit c') --- (f : hom-sequential-diagram A B) --- (P : X โ†’ UU l5) (Q : Y โ†’ UU l6) --- where - --- private --- fโˆž : X โ†’ Y --- fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f --- DDMO : descent-data-sequential-colimit A (l5 โŠ” l6) --- pr1 DDMO n a = --- P (map-cocone-sequential-diagram c n a) โ†’ --- Q (map-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- pr2 DDMO n a = --- ( equiv-postcomp _ --- ( ( equiv-tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜e --- ( equiv-tr Q (coherence-cocone-sequential-diagram c' n _)))) โˆ˜e --- ( equiv-precomp --- ( inv-equiv (equiv-tr P (coherence-cocone-sequential-diagram c n a))) --- ( _)) - --- sect-over-DDMO-map-over : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- section-descent-data-sequential-colimit DDMO --- pr1 (sect-over-DDMO-map-over fโˆž') n a = --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ --- ( fโˆž' (map-cocone-sequential-diagram c n a)) --- pr2 (sect-over-DDMO-map-over fโˆž') n a = --- eq-htpy --- ( ฮป p โ†’ --- {!coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a!}) - --- sect-over-DDMO-map-over' : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- section-descent-data-sequential-colimit DDMO --- sect-over-DDMO-map-over' = --- {!sect-family-sect-dd-sequential-colimit!} - --- map-over-sect-DDMO : --- section-descent-data-sequential-colimit DDMO โ†’ --- hom-over-hom B f --- ( descent-data-family-cocone-sequential-diagram c P) --- ( descent-data-family-cocone-sequential-diagram c' Q) --- map-over-sect-DDMO = --- tot --- ( ฮป s โ†’ --- map-ฮ  --- ( ฮป n โ†’ --- ( map-implicit-ฮ  --- ( ฮป a โ†’ --- ( concat-htpy --- ( inv-htpy --- ( ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q --- ( coherence-cocone-sequential-diagram c' n --- (map-hom-sequential-diagram B f n a))) โˆ˜ --- ( s n a)) ยทl --- ( is-retraction-inv-tr P --- ( coherence-cocone-sequential-diagram c n a)))) --- ( _)) โˆ˜ --- ( map-equiv --- ( equiv-htpy-precomp-htpy-ฮ  _ _ --- ( equiv-tr P --- ( coherence-cocone-sequential-diagram c n a)))) โˆ˜ --- ( htpy-eq --- {f = --- ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q --- ( coherence-cocone-sequential-diagram c' n --- ( map-hom-sequential-diagram B f n a))) โˆ˜ --- ( s n a) โˆ˜ --- ( tr P (inv (coherence-cocone-sequential-diagram c n a)))} --- { s (succ-โ„• n) (map-sequential-diagram A n a)}))) โˆ˜ --- ( implicit-explicit-ฮ ))) - --- map-over-diagram-map-over-colimit : --- ((a : X) โ†’ P a โ†’ Q (fโˆž a)) โ†’ --- hom-over-hom B f --- ( descent-data-family-cocone-sequential-diagram c P) --- ( descent-data-family-cocone-sequential-diagram c' Q) --- pr1 (map-over-diagram-map-over-colimit fโˆž') n a = --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a)) โˆ˜ --- ( fโˆž' (map-cocone-sequential-diagram c n a)) --- pr2 (map-over-diagram-map-over-colimit fโˆž') n {a} = --- pasting-vertical-coherence-square-maps --- ( tr P (coherence-cocone-sequential-diagram c n a)) --- ( fโˆž' _) --- ( fโˆž' _) --- ( tr Q (ap fโˆž (coherence-cocone-sequential-diagram c n a))) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ a)) --- ( tr Q (htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f _ (map-sequential-diagram A n a))) --- ( ( tr --- ( Q โˆ˜ map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)) โˆ˜ --- ( tr Q (coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)))) --- ( ฮป q โ†’ --- substitution-law-tr Q fโˆž (coherence-cocone-sequential-diagram c n a) โˆ™ --- inv (preserves-tr fโˆž' (coherence-cocone-sequential-diagram c n a) q)) --- ( ( inv-htpy --- ( ฮป q โ†’ --- ( tr-concat --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( _) --- ( q)) โˆ™ --- ( tr-concat --- ( coherence-cocone-sequential-diagram c' n (map-hom-sequential-diagram B f n a)) --- ( ap (map-cocone-sequential-diagram c' (succ-โ„• n)) (naturality-map-hom-sequential-diagram B f n a)) --- ( tr Q --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f n a) --- ( q))) โˆ™ --- ( substitution-law-tr Q --- ( map-cocone-sequential-diagram c' (succ-โ„• n)) --- ( naturality-map-hom-sequential-diagram B f n a)))) โˆ™h --- ( ฮป q โ†’ --- ap --- ( ฮป p โ†’ tr Q p q) --- ( inv --- ( coherence-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f n a))) โˆ™h --- ( tr-concat --- ( ap fโˆž (coherence-cocone-sequential-diagram c n a)) --- ( htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram --- up-c c' f (succ-โ„• n) (map-sequential-diagram A n a)))) - --- abstract --- triangle-map-over-sect-DDMO : --- coherence-triangle-maps --- ( map-over-diagram-map-over-colimit) --- ( map-over-sect-DDMO) --- ( sect-over-DDMO-map-over) --- triangle-map-over-sect-DDMO fโˆž' = --- eq-pair-eq-fiber --- ( eq-htpy --- ( ฮป n โ†’ --- eq-htpy-implicit --- ( ฮป a โ†’ --- eq-htpy --- ( ฮป p โ†’ --- {!!})))) - --- is-equiv-map-over-sect-DDMO : --- is-equiv map-over-sect-DDMO --- is-equiv-map-over-sect-DDMO = --- is-equiv-tot-is-fiberwise-equiv --- ( ฮป s โ†’ --- is-equiv-map-ฮ -is-fiberwise-equiv --- ( ฮป n โ†’ --- is-equiv-comp _ _ --- ( is-equiv-implicit-explicit-ฮ ) --- ( is-equiv-map-implicit-ฮ -is-fiberwise-equiv --- ( ฮป a โ†’ --- is-equiv-comp _ _ --- ( funext _ _) --- ( is-equiv-comp _ _ --- ( is-equiv-map-equiv (equiv-htpy-precomp-htpy-ฮ  _ _ _)) --- ( is-equiv-concat-htpy _ _)))))) - --- is-equiv-map-over-diagram-map-over-colimit : --- is-equiv map-over-diagram-map-over-colimit --- is-equiv-map-over-diagram-map-over-colimit = --- {!is-equiv-left-map-triangle --- ( map-over-diagram-map-over-colimit) --- ( map-over-sect-DDMO) --- ( sect-over-DDMO-map-over) --- ( triangle-map-over-sect-DDMO) --- ( is-equiv) !} --- ``` - -NB: apd sBโˆž (Cn n a) โ‰  apd sBโˆž (ฮบ n a)!!! - -```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - - unap-square' : - {x y : A} (p : x ๏ผ y) โ†’ - (is-retraction-map-inv-equiv e x) โˆ™ map-equiv (inv-equiv-ap-emb (emb-equiv e)) (ap (map-equiv e) p) ๏ผ - ap (map-inv-equiv e) (ap (map-equiv e) p) โˆ™ is-retraction-map-inv-equiv e y - unap-square' {x} {y} p = - ap - ( is-retraction-map-inv-equiv e x โˆ™_) - ( is-retraction-map-inv-equiv (equiv-ap e x y) p โˆ™ inv (ap-id p)) โˆ™ - nat-htpy - ( is-retraction-map-inv-equiv e) - ( p) โˆ™ - ap - ( _โˆ™ is-retraction-map-inv-equiv e y) - ( ap-comp (map-inv-equiv e) (map-equiv e) p) - - unap-square : - {x y : A} (p : map-equiv e x ๏ผ map-equiv e y) โ†’ - is-retraction-map-inv-equiv e x โˆ™ map-equiv (inv-equiv-ap-emb (emb-equiv e)) p ๏ผ - ap (map-inv-equiv e) p โˆ™ is-retraction-map-inv-equiv e y - unap-square {x} {y} p = - ap - ( ฮป p โ†’ - is-retraction-map-inv-equiv e x โˆ™ - map-equiv (inv-equiv-ap-emb (emb-equiv e)) p) - ( inv (is-section-map-inv-equiv (equiv-ap e x y) p)) โˆ™ - unap-square' - ( map-equiv (inv-equiv-ap-emb (emb-equiv e)) p) โˆ™ - ap - ( ฮป p โ†’ - ap (map-inv-equiv e) p โˆ™ - is-retraction-map-inv-equiv e y) - ( is-section-map-inv-equiv (equiv-ap e x y) p) -``` From 43f1beb3a8bd5a07309b08f4a9088a7bef85199f Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Tue, 25 Mar 2025 18:08:45 +0100 Subject: [PATCH 32/33] =?UTF-8?q?Path=20induction=20=F0=9F=AA=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functoriality-stuff.lagda.md | 1107 ++--------------- 1 file changed, 109 insertions(+), 998 deletions(-) diff --git a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md index 362cc80091..d4d462cd77 100644 --- a/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md +++ b/src/synthetic-homotopy-theory/functoriality-stuff.lagda.md @@ -599,92 +599,6 @@ module _ ( apd H p) ``` -```agda -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : UU l2} - {P : A โ†’ UU l3} {Q : B โ†’ UU l4} - (f : A โ†’ B) (sA : (a : A) โ†’ P a) (sB : (b : B) โ†’ Q b) - (f' : {a : A} โ†’ P a โ†’ Q (f a)) - where - - convenient-square : UU (l1 โŠ” l4) - convenient-square = sB โˆ˜ f ~ f' โˆ˜ sA - - convenient-square' : UU (l1 โŠ” l4) - convenient-square' = f' โˆ˜ sA ~ sB โˆ˜ f - -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} {D : UU l4} - {P : C โ†’ UU l5} {Q : D โ†’ UU l6} - (f : A โ†’ B) (hA : A โ†’ C) (hB : B โ†’ D) (g : C โ†’ D) - (sA : (c : C) โ†’ P c) (sB : (d : D) โ†’ Q d) (f' : {c : C} โ†’ P c โ†’ Q (g c)) - where - - pasting-squares : - (H : coherence-square-maps hA f g hB) โ†’ - convenient-square g sA sB f' โ†’ - (a : A) โ†’ tr Q (H a) (sB (hB (f a))) ๏ผ f' (sA (hA a)) - pasting-squares H K a = - apd sB (H a) โˆ™ K (hA a) - - pasting-squares' : - (H : coherence-square-maps' hA f g hB) โ†’ - convenient-square' g sA sB f' โ†’ - (a : A) โ†’ tr Q (H a) (f' (sA (hA a))) ๏ผ sB (hB (f a)) - pasting-squares' H K a = - ap (tr Q (H a)) (K (hA a)) โˆ™ apd sB (H a) -``` - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} - {A' : UU l4} {B' : UU l5} {C' : UU l6} - (f : A โ†’ C) (g : B โ†’ C) (h : A โ†’ B) - (f' : A' โ†’ C') (g' : B' โ†’ C') (h' : A' โ†’ B') - (hA : A โ†’ A') (hB : B โ†’ B') (hC : C โ†’ C') - (left : hC โˆ˜ f ~ f' โˆ˜ hA) - (right : hC โˆ˜ g ~ g' โˆ˜ hB) - (back : h' โˆ˜ hA ~ hB โˆ˜ h) - (bottom : f ~ g โˆ˜ h) - (top : f' ~ g' โˆ˜ h') - where - - convenient-prism : UU (l1 โŠ” l6) - convenient-prism = - left โˆ™h (top ยทr hA) โˆ™h (g' ยทl back) ~ - (hC ยทl bottom) โˆ™h (right ยทr h) -``` - -```agda -module _ - {l1 l2 l3 l4 l5 l6 : Level} - {A : UU l1} {B : UU l2} {C : UU l3} - {P : A โ†’ UU l4} {Q : B โ†’ UU l5} {R : C โ†’ UU l6} - (f : A โ†’ C) (g : B โ†’ C) (h : A โ†’ B) - (f' : {a : A} โ†’ P a โ†’ R (f a)) - (g' : {b : B} โ†’ Q b โ†’ R (g b)) - (h' : {a : A} โ†’ P a โ†’ Q (h a)) - (sA : (a : A) โ†’ P a) (sB : (b : B) โ†’ Q b) (sC : (c : C) โ†’ R c) - (left : sC โˆ˜ f ~ f' โˆ˜ sA) - (right : sC โˆ˜ g ~ g' โˆ˜ sB) - (back : h' โˆ˜ sA ~ sB โˆ˜ h) - (bottom : f ~ g โˆ˜ h) - (top : htpy-over R bottom f' (g' โˆ˜ h')) - where - - fiberwise-prism : UU (l1 โŠ” l6) - fiberwise-prism = - (a : A) โ†’ - ( ap (tr R (bottom a)) (left a) โˆ™ - top (sA a) โˆ™ - ap g' (back a)) ๏ผ - ( apd sC (bottom a) โˆ™ - right (h a)) -``` - TODO: this should be parameterized by a fiberwise map, not equivalence ```agda @@ -843,91 +757,6 @@ module _ ``` ```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} - where - open import foundation.dependent-identifications - - compute-inv-dependent-identification-inv : - {x y : A} (p : x ๏ผ y) {x' : B x} {y' : B y} - (q : y' ๏ผ tr B p x') โ†’ - inv-dependent-identification B p (inv q) ๏ผ - map-eq-transpose-equiv-inv' (equiv-tr B p) q - compute-inv-dependent-identification-inv refl q = inv-inv q โˆ™ inv (right-unit โˆ™ ap-id q) - -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - - compute-eq-transpose-equiv-inv-concat' : - {x : A} {b c : B} (p : b ๏ผ c) (q : c ๏ผ map-equiv e x) โ†’ - map-eq-transpose-equiv-inv' e (p โˆ™ q) ๏ผ - ap (map-inv-equiv e) p โˆ™ map-eq-transpose-equiv-inv' e q - compute-eq-transpose-equiv-inv-concat' refl q = refl -``` - -```agda -module _ - {l1 l2 l3 l4 : Level} {A : UU l1} {B : A โ†’ UU l2} {X : UU l3} {Y : X โ†’ UU l4} - where - open import foundation.dependent-identifications - - compute-left-whisk-dependent-identification-concat : - {s : X โ†’ A} (s' : (x : X) โ†’ Y x โ†’ B (s x)) โ†’ - {x y : X} (p : x ๏ผ y) โ†’ - {x' : Y x} {y' z' : Y y} (p' : dependent-identification Y p x' y') โ†’ - (q : y' ๏ผ z') โ†’ - left-whisk-dependent-identification {B' = B} (s' _) p (p' โˆ™ q) ๏ผ - left-whisk-dependent-identification (s' _) p p' โˆ™ ap (s' y) q - compute-left-whisk-dependent-identification-concat s' refl p' q = - ap-concat (s' _) p' q - - compute-left-whisk-dependent-identification-concat' : - {s : X โ†’ A} (s' : (x : X) โ†’ Y x โ†’ B (s x)) โ†’ - {x y : X} (p : x ๏ผ y) โ†’ - {x' w' : Y x} {y' : Y y} (p' : x' ๏ผ w') โ†’ - (q' : dependent-identification Y p w' y') โ†’ - left-whisk-dependent-identification {B' = B} (s' _) p (ap (tr Y p) p' โˆ™ q') ๏ผ - ap (tr B (ap s p)) (ap (s' x) p') โˆ™ - left-whisk-dependent-identification {B' = B} (s' _) p q' - compute-left-whisk-dependent-identification-concat' s' refl refl q' = refl -``` - -```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} - where - open import foundation.dependent-identifications - - compute-right-concat-dependent-identification : - {x y : A} (p : x ๏ผ y) - {z : A} (q : y ๏ผ z) - {x' : B x} {y' : B y} (p' : dependent-identification B p x' y') - {z' : B z} (q' : dependent-identification B q y' z') - {w' : B z} (r : z' ๏ผ w') โ†’ - concat-dependent-identification B p q p' (q' โˆ™ r) ๏ผ - concat-dependent-identification B p q p' q' โˆ™ r - compute-right-concat-dependent-identification refl q refl q' r = refl -``` - -```agda -module _ - {l1 l2 l3 l4 : Level} {I : UU l1} {A : I โ†’ UU l2} {J : UU l3} {B : J โ†’ UU l4} - {s : I โ†’ J} (s' : (i : I) โ†’ A i โ†’ B (s i)) - where - - concat-preserves-tr-left-whisk : - {i j : I} (p : i ๏ผ j) {x : A i} โ†’ - ap - ( tr B (ap s (inv p))) - ( inv (preserves-tr s' p x)) โˆ™ - left-whisk-dependent-identification {B' = B} (s' _) (inv p) - ( is-retraction-map-inv-equiv (equiv-tr A p) x) ๏ผ - substitution-law-tr B s (inv p) โˆ™ - is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ s) p) (s' i x) - concat-preserves-tr-left-whisk refl = refl - module _ {l1 l2 l3 l4 : Level} {I : UU l1} {A : I โ†’ UU l2} {B : I โ†’ UU l3} {C : I โ†’ UU l4} @@ -976,117 +805,97 @@ module _ aaa refl x = refl module _ - {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) where - ooo : - {x y : A} (p : x ๏ผ y) (b : B x) โ†’ - tr-concat p (inv p) b โˆ™ is-retraction-map-inv-equiv (equiv-tr B p) b ๏ผ - ap (ฮป r โ†’ tr B r b) (right-inv p) - ooo refl b = refl - - open import foundation.homotopy-algebra - - xxx : - {l3 : Level} {C : UU l3} (f : C โ†’ A) - {x y : C} (p : x ๏ผ y) โ†’ - horizontal-concat-htpy - ( inv-htpy (ฮป b โ†’ substitution-law-tr B f (inv p) {b})) - ( inv-htpy (ฮป b โ†’ substitution-law-tr B f p {b})) โˆ™h - ( ฮป b โ†’ - ap - ( ฮป r โ†’ tr B r (tr B (ap f p) b)) - ( ap-inv f p)) โˆ™h - is-retraction-map-inv-equiv (equiv-tr B (ap f p)) ~ - is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ f) p) - xxx f refl x = refl - - bbb : - {x y : A} (p : x ๏ผ y) - {z : A} (q : y ๏ผ z) โ†’ - is-section-map-inv-equiv (equiv-tr B (p โˆ™ q)) ~ - horizontal-concat-htpy - ( tr-concat p q) - ( (ฮป b โ†’ ap (ฮป r โ†’ tr B r b) (distributive-inv-concat p q)) โˆ™h - tr-concat (inv q) (inv p)) โˆ™h - tr B q ยทl (is-section-map-inv-equiv (equiv-tr B p)) ยทr tr B (inv q) โˆ™h - is-section-map-inv-equiv (equiv-tr B q) - bbb refl refl x = - inv - ( ap - ( _โˆ™ is-section-map-inv-equiv id-equiv x) - ( ap-id _ โˆ™ coherence-map-inv-equiv id-equiv x)) + inv-coherence-map-inv-is-equiv : + (a : A) โ†’ + ap (map-equiv e) (inv (is-retraction-map-inv-equiv e a)) ๏ผ + inv (is-section-map-inv-equiv e (map-equiv e a)) + inv-coherence-map-inv-is-equiv a = + ap-inv (map-equiv e) (is-retraction-map-inv-equiv e a) โˆ™ + ap inv (inv (coherence-map-inv-equiv e a)) - open import foundation.dependent-identifications - bbb' : - {x y : A} (p : x ๏ผ y) - {z : A} (q : y ๏ผ z) โ†’ - (b : B z) โ†’ - concat-dependent-identification B p q - ( ap - ( tr B p) - ( ( ap - ( ฮป r โ†’ tr B r b) - ( distributive-inv-concat p q)) โˆ™ - ( tr-concat (inv q) (inv p) b)) โˆ™ - is-section-map-inv-equiv (equiv-tr B p) (tr B (inv q) b)) - ( is-section-map-inv-equiv (equiv-tr B q) b) ๏ผ - is-section-map-inv-equiv (equiv-tr B (p โˆ™ q)) b - bbb' refl refl b = + left-inv-is-retraction-map-inv-equiv : + (a : A) โ†’ + inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™ + ap (map-equiv e) (is-retraction-map-inv-equiv e a) ๏ผ + refl + left-inv-is-retraction-map-inv-equiv a = ap - ( _โˆ™ is-section-map-inv-equiv id-equiv b) - ( ap-id _ โˆ™ coherence-map-inv-equiv id-equiv b) - - ccc : - {l3 : Level} {C : UU l3} (f : C โ†’ A) - {x y : C} (p : x ๏ผ y) โ†’ - horizontal-concat-htpy - ( ฮป b โ†’ substitution-law-tr B f (inv p) {b}) - ( ฮป b โ†’ - ap - ( ฮป r โ†’ tr B r b) - ( inv (ap-inv f (inv p)) โˆ™ ap (ap f) (inv-inv p)) โˆ™ - substitution-law-tr B f p {b}) โˆ™h - is-retraction-map-inv-equiv (equiv-tr (B โˆ˜ f) p) ~ - is-section-map-inv-equiv (equiv-tr B (ap f (inv p))) - ccc f refl x = inv (coherence-map-inv-equiv id-equiv x) + ( inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™_) + ( inv (coherence-map-inv-equiv e a)) โˆ™ + left-inv (is-section-map-inv-equiv e (map-equiv e a)) + +opaque + priv-is-section : + {l1 l2 : Level} {A : UU l1} {B : UU l2} + (e : A โ‰ƒ B) โ†’ map-equiv e โˆ˜ map-inv-equiv e ~ id + priv-is-section = is-section-map-inv-equiv module _ - {l1 l2 l3 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : UU l3} (f : C โ†’ A) + {l1 l2 l3 l4 l5 : Level} {A : UU l1} {B : A โ†’ UU l2} {C : UU l3} (f : C โ†’ A) + {D : C โ†’ UU l4} {D' : C โ†’ UU l5} + (f' : fam-equiv D D') + (g' : fam-equiv D' (B โˆ˜ f)) + (let + e' : (c : C) โ†’ D c โ†’ B (f c) + e' c = map-fam-equiv g' c โˆ˜ map-fam-equiv f' c + inv-e' : (c : C) โ†’ B (f c) โ†’ D c + inv-e' c = map-inv-equiv (g' c โˆ˜e f' c)) where + open import foundation.dependent-identifications + abstract - - bbb'' : - {x y : C} (p : x ๏ผ y) - {z : A} (q : z ๏ผ f y) โ†’ - {b : B (f x)} โ†’ - tr-concat q (ap f (inv p)) (tr B (inv (q โˆ™ ap f (inv p))) b) โˆ™ - ap - ( tr B (ap f (inv p))) - ( ( ap - ( tr B q) - ( ( ap (ฮป r โ†’ tr B r b) (distributive-inv-concat _ _)) โˆ™ - ( tr-concat _ _ b))) โˆ™ - ( is-section-map-inv-equiv - ( equiv-tr B q) - ( tr B (inv (ap f (inv p))) b)) โˆ™ - ( ap - ( ฮป r โ†’ tr B r b) - ( inv (ap-inv f (inv p)) โˆ™ ap (ap f) (inv-inv p))) โˆ™ - ( substitution-law-tr B f p)) โˆ™ - ( substitution-law-tr B f (inv p) โˆ™ - is-retraction-map-inv-equiv - ( equiv-tr (B โˆ˜ f) p) - ( b)) ๏ผ - is-section-map-inv-equiv - ( equiv-tr B (q โˆ™ ap f (inv p))) - ( b) - bbb'' refl refl {b} = - ap - ( _โˆ™ is-retraction-map-inv-equiv id-equiv b) - ( ap-id _ โˆ™ right-unit โˆ™ right-unit) โˆ™ - right-unit - + ccc'' : + {x y : C} (p : x ๏ผ y) + {z : A} (q : z ๏ผ f y) โ†’ + {d : D x} (let b = e' x d) + {b' : B z} (s : tr B (q โˆ™ ap f (inv p)) b' ๏ผ b) โ†’ + concat-dependent-identification B q (ap f (inv p)) + ( inv (is-section-map-inv-equiv (g' y โˆ˜e f' y) _)) + ( left-whisk-dependent-identification (e' _) (inv p) + ( inv-dependent-identification D p + ( inv + ( ( ap + ( inv-e' _ โˆ˜ tr B q) + ( inv + ( is-retraction-map-inv-equiv (equiv-tr B (q โˆ™ ap f (inv p))) b') โˆ™ + ap + ( tr B (inv (q โˆ™ ap f (inv p)))) + ( s))) โˆ™ + ( ( ap + ( inv-e' y) + ( ( ap + ( tr B q) + ( ap (ฮป r โ†’ tr B r b) (distributive-inv-concat _ _) โˆ™ + ( tr-concat _ _ b))) โˆ™ + ( is-section-map-inv-equiv + ( equiv-tr B q) + ( tr B (inv (ap f (inv p))) b)) โˆ™ + ap + ( ฮป r โ†’ tr B r b) + ( inv (ap-inv f (inv p)) โˆ™ ap (ap f) (inv-inv p)) โˆ™ + substitution-law-tr B f p)) โˆ™ + ( map-eq-transpose-equiv-inv' + ( g' y โˆ˜e f' y) + ( inv (preserves-tr e' p d)))))))) ๏ผ + s + ccc'' refl refl {d = d} refl = + ap + ( ฮป r โ†’ + ap id (inv (is-section-map-inv-equiv (g' _ โˆ˜e f' _) (e' _ d))) โˆ™ + ap (e' _) r) + ( ( inv-inv _) โˆ™ + ( ap + ( ฮป r โ†’ + ap (inv-e' _) r โˆ™ is-retraction-map-inv-equiv (g' _ โˆ˜e f' _) _) + ( right-unit โˆ™ right-unit โˆ™ coherence-map-inv-equiv id-equiv _))) โˆ™ + ap + ( _โˆ™ ap (e' _) (is-retraction-map-inv-equiv (g' _ โˆ˜e f' _) d)) + ( ap-id _) โˆ™ + left-inv-is-retraction-map-inv-equiv (g' _ โˆ˜e f' _) d ``` ```agda @@ -1150,69 +959,6 @@ module _ ```agda -module _ - {l1 l2 l3 l4 : Level} - {A : UU l1} {B : A โ†’ UU l2} - {X : UU l3} {Y : X โ†’ UU l4} - where - - compute-left-whisker-transpose : - {s : A โ†’ X} (s' : {a : A} โ†’ B a โ†’ Y (s a)) - {x y : A} (p : y ๏ผ x) - {x' : B x} {y' : B y} (p' : x' ๏ผ tr B p y') โ†’ - left-whisk-dependent-identification {B' = Y} s' (inv p) - ( map-eq-transpose-equiv-inv' (equiv-tr B p) p') ๏ผ - ap - ( tr Y (ap s (inv p))) - ( ap s' p') โˆ™ - left-whisk-dependent-identification {B' = Y} s' (inv p) - ( is-retraction-map-inv-equiv (equiv-tr B p) y') - -- ap - -- ( ฮป r โ†’ tr Y r (s' x')) - -- ( ap-inv s p) โˆ™ - -- inv - -- ( map-eq-transpose-equiv - -- ( equiv-tr Y (ap s p)) - -- ( left-whisk-dependent-identification {B' = Y} s' p - -- ( inv p'))) - compute-left-whisker-transpose s' refl refl = - refl - -- inv (ap inv (compute-refl-eq-transpose-equiv id-equiv)) - -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - - inv-coherence-map-inv-is-equiv : - (a : A) โ†’ - ap (map-equiv e) (inv (is-retraction-map-inv-equiv e a)) ๏ผ - inv (is-section-map-inv-equiv e (map-equiv e a)) - inv-coherence-map-inv-is-equiv a = - ap-inv (map-equiv e) (is-retraction-map-inv-equiv e a) โˆ™ - ap inv (inv (coherence-map-inv-equiv e a)) - - left-inv-is-retraction-map-inv-equiv : - (a : A) โ†’ - inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™ - ap (map-equiv e) (is-retraction-map-inv-equiv e a) ๏ผ - refl - left-inv-is-retraction-map-inv-equiv a = - ap - ( inv (is-section-map-inv-equiv e (map-equiv e a)) โˆ™_) - ( inv (coherence-map-inv-equiv e a)) โˆ™ - left-inv (is-section-map-inv-equiv e (map-equiv e a)) - -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - - triangle-eq-transpose-equiv-inv'' : - {x : B} {y : A} (p : x ๏ผ map-equiv e y) โ†’ - inv (is-section-map-inv-equiv e x) โˆ™ ap (map-equiv e) (map-eq-transpose-equiv-inv' e p) ๏ผ - p - triangle-eq-transpose-equiv-inv'' refl = left-inv-is-retraction-map-inv-equiv e _ module _ {l1 l2 : Level} {A : UU l1} {B : A โ†’ UU l2} @@ -1241,7 +987,7 @@ module _ open import synthetic-homotopy-theory.zigzags-sequential-diagrams module _ - {l1 l2 l3 l4 l5 : Level} + {l1 l2 l3 l4 l5 l6 : Level} {A : sequential-diagram l1} {X : UU l2} {c : cocone-sequential-diagram A X} (up-c : universal-property-sequential-colimit c) @@ -1254,7 +1000,7 @@ module _ C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) (P : X โ†’ UU l5) (let P' = descent-data-family-cocone-sequential-diagram c P) - (Q : Y โ†’ UU l5) + (Q : Y โ†’ UU l6) (let Q' = descent-data-family-cocone-sequential-diagram c' Q) (e : fam-equiv P (Q โˆ˜ fโˆž)) where @@ -1265,10 +1011,8 @@ module _ ( map-zigzag-sequential-diagram z n a) โ†’ family-descent-data-sequential-colimit P' n a inv-map-over-diagram-equiv-zigzag' n a = - map-inv-fam-equiv e - ( map-cocone-sequential-diagram c n a) โˆ˜ - tr Q (inv (C n a)) - + map-inv-equiv + ( equiv-over-diagram-equiv-over-colimit up-c c' f P Q e n a) inv-map-over-diagram-equiv-zigzag : (n : โ„•) (b : family-sequential-diagram B n) โ†’ @@ -1376,29 +1120,6 @@ module _ ( preserves-tr ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) ( upper-triangle-zigzag-sequential-diagram z n a)) - -- pasting-vertical-coherence-square-maps - -- ( tr - -- ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - -- ( upper-triangle-zigzag-sequential-diagram z n a)) - -- ( map-fam-equiv e _) - -- ( map-fam-equiv e _) - -- ( tr - -- ( Q โˆ˜ fโˆž โˆ˜ map-cocone-sequential-diagram c (succ-โ„• n)) - -- ( upper-triangle-zigzag-sequential-diagram z n a)) - -- ( tr Q (C (succ-โ„• n) _)) - -- ( tr Q (C (succ-โ„• n) _)) - -- ( tr - -- ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ - -- map-zigzag-sequential-diagram z (succ-โ„• n)) - -- ( upper-triangle-zigzag-sequential-diagram z n a)) - -- ( inv-htpy - -- ( preserves-tr - -- ( map-fam-equiv e โˆ˜ map-cocone-sequential-diagram c (succ-โ„• n)) - -- ( upper-triangle-zigzag-sequential-diagram z n a))) - -- ( inv-htpy - -- ( preserves-tr - -- ( ฮป a โ†’ tr Q (C (succ-โ„• n) a)) - -- ( upper-triangle-zigzag-sequential-diagram z n a))) opaque transpose-squares : @@ -1417,10 +1138,8 @@ module _ ( upper-triangle-zigzag-sequential-diagram z n a) transpose-squares n a p = map-eq-transpose-equiv-inv' - ( e _) - ( map-eq-transpose-equiv-inv' - ( equiv-tr Q (C (succ-โ„• n) _)) - ( inv-transport-squares n a p)) + ( equiv-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) + ( inv-transport-squares n a p) opaque @@ -1439,8 +1158,7 @@ module _ ( upper-triangle-zigzag-sequential-diagram z n a) upper-triangle-over' n a p = ap - ( map-inv-fam-equiv e _ โˆ˜ - tr Q (inv (C (succ-โ„• n) _))) + ( inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _) ( internal-triangle-upper-triangle-over' n a ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) p) โˆ™ substitution-law-tr @@ -1489,12 +1207,6 @@ module _ upper-triangle-over n {a} p = inv (inv-upper-triangle-over n a p) - - opaque - priv-is-section : - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) โ†’ map-equiv e โˆ˜ map-inv-equiv e ~ id - priv-is-section = is-section-map-inv-equiv opaque lower-triangle-over' : (n : โ„•) (a : family-sequential-diagram A n) @@ -1506,15 +1218,9 @@ module _ ( inv-map-over-diagram-equiv-zigzag' n a q) lower-triangle-over' n a q = inv - ( priv-is-section -- is-section-map-inv-equiv - ( equiv-tr Q (C n a)) - ( q)) โˆ™ - ap - ( tr Q (C n a)) - ( inv - ( priv-is-section -- is-section-map-inv-equiv - ( e (map-cocone-sequential-diagram c n a)) - ( tr Q (inv (C n a)) q))) + ( is-section-map-inv-equiv + ( equiv-over-diagram-equiv-over-colimit up-c c' f P Q e n a) + ( q)) lower-triangle-over : (n : โ„•) โ†’ @@ -1525,8 +1231,6 @@ module _ ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ โˆ˜ inv-map-over-diagram-equiv-zigzag n _) lower-triangle-over n {b} q = - -- this could change to alternatives - -- map-inv-eq-transpose-equiv-inv doesn't compute well lower-triangle-over' ( succ-โ„• n) ( inv-map-zigzag-sequential-diagram z n b) @@ -1535,585 +1239,11 @@ module _ ( lower-triangle-zigzag-sequential-diagram z n b) ( map-family-descent-data-sequential-colimit Q' n b q)) - trivial-pasting : - (n : โ„•) โ†’ - htpy-over - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( naturality-map-hom-diagram-zigzag-sequential-diagram z n) - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n _)) โˆ˜ - map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - trivial-pasting n = - concat-htpy-over - ( lower-triangle-zigzag-sequential-diagram z n ยทr - ( map-zigzag-sequential-diagram z n)) - ( ( map-zigzag-sequential-diagram z (succ-โ„• n)) ยทl - ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n))) - ( ฮป p โ†’ - lower-triangle-over' (succ-โ„• n) _ - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n _) - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n _)) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) - ( map-sequential-diagram A n _) - ( p))))) - ( left-whisk-htpy-over - ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) - ( ฮป p โ†’ - map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n _)) - ( upper-triangle-over' n _ p)) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _)) - - abstract opaque - unfolding lower-triangle-over' upper-triangle-over' inv-transport-squares - internal-triangle-upper-triangle-over' - open import foundation.dependent-identifications - is-trivial-trivial-pasting : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - trivial-pasting n {a} ~ - is-section-map-inv-equiv - ( equiv-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) ยทr - map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) (map-sequential-diagram A n a) - is-trivial-trivial-pasting n a p = - ap - ( ฮป K' โ†’ - concat-dependent-identification _ _ _ - ( lower-triangle-over' (succ-โ„• n) _ _) - ( K')) - ( ( ap - ( left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( compute-eq-transpose-equiv-inv-concat' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( _) - ( transpose-squares n a p))) โˆ™ - ( ( compute-left-whisk-dependent-identification-concat' - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( _) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( transpose-squares n a p))) โˆ™ - ( ap - ( ฮป r โ†’ - ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( r) โˆ™ - left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( transpose-squares n a p))) - ( inv - ( ap-comp - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _) - ( _)))))) โˆ™ - compute-right-concat-dependent-identification - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( _) - ( _) - ( _) โˆ™ - ap - ( _โˆ™ - left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( transpose-squares n a p))) - ( inv - ( nat-concat-dependent-identification-id - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ โˆ˜ - inv-map-over-diagram-equiv-zigzag' (succ-โ„• n) _) - ( ฮป q โ†’ - lower-triangle-over' (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( q)) - ( internal-triangle-upper-triangle-over' n a - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ p) โˆ™ - substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( _) - ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ - compute-right-concat-dependent-identification - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( _) - ( refl) - ( _)) โˆ™ - assoc _ _ _ โˆ™ - ap - ( concat-dependent-identification - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( _) - ( _) - ( internal-triangle-upper-triangle-over' n a - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ p) โˆ™ - substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( _) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( refl) โˆ™_) - ( ( ap - ( ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( lower-triangle-over' (succ-โ„• n) _ _) โˆ™_) - ( compute-left-whisker-transpose - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( upper-triangle-zigzag-sequential-diagram z n a) - ( transpose-squares n a p))) โˆ™ - ( inv (assoc _ _ _)) โˆ™ - ( ap - ( _โˆ™ - left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( is-retraction-map-inv-equiv - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( p))) - ( ( inv - ( ap-concat - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( lower-triangle-over' (succ-โ„• n) _ _) - ( ap - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( transpose-squares n a p)))) โˆ™ - ( ap - ( ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))))) - ( [i] p)))) โˆ™ - ( concat-preserves-tr-left-whisk - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ - ap - ( _โˆ™ - ( ( substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) โˆ™ - ( is-retraction-map-inv-equiv - ( equiv-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ - map-zigzag-sequential-diagram z (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( _)))) - ( ( compute-concat-dependent-identification - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( _) - ( _)) โˆ™ - right-unit) โˆ™ - bbb'' - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a) - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - where - opaque - unfolding lower-triangle-over' transpose-squares priv-is-section - [i] : - lower-triangle-over' (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) ยทr - ( ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n) โˆ˜ - map-zigzag-sequential-diagram z (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) โˆ˜ - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) - ( map-sequential-diagram A n a))) โˆ™h - map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _ ยทl - transpose-squares n a ~ - inv-transport-squares n a - [i] p = - assoc _ _ _ โˆ™ - ap - ( inv - ( is-section-map-inv-equiv - ( equiv-tr Q - ( C (succ-โ„• n) _)) - ( _)) โˆ™_) - ( ( ap - ( ap - ( tr Q (C (succ-โ„• n) _)) - ( inv - ( is-section-map-inv-equiv - ( e _) - ( tr Q (inv (C (succ-โ„• n) _)) _))) โˆ™_) - ( ap-comp - ( tr Q (C (succ-โ„• n) _)) - ( map-fam-equiv e _) - ( transpose-squares n a p))) โˆ™ - ( inv - ( ap-concat - ( tr Q (C (succ-โ„• n) _)) - ( _) - ( _))) โˆ™ - ( ap - ( ap (tr Q (C (succ-โ„• n) _))) - ( triangle-eq-transpose-equiv-inv'' - ( e _) - ( map-eq-transpose-equiv-inv' - ( equiv-tr Q (C (succ-โ„• n) _)) - ( inv-transport-squares n a p))))) โˆ™ - triangle-eq-transpose-equiv-inv'' - ( equiv-tr Q (C (succ-โ„• n) _)) - ( inv-transport-squares n a p) -``` - -```agda -module _ - {l1 l2 : Level} {A : UU l1} {B : UU l2} - (e : A โ‰ƒ B) - where - concat-inv-coherence-map-inv-is-equiv : - {x : A} {y : B} (p : map-equiv e x ๏ผ y) โ†’ - ap (map-equiv e) (inv (is-retraction-map-inv-equiv e x) โˆ™ ap (map-inv-equiv e) p) ๏ผ - p โˆ™ inv (is-section-map-inv-equiv e y) - concat-inv-coherence-map-inv-is-equiv refl = - ap (ap (map-equiv e)) right-unit โˆ™ inv-coherence-map-inv-is-equiv e _ - -module _ - {l1 l2 l3 l4 l5 : Level} - {A : sequential-diagram l1} {X : UU l2} - {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {B : sequential-diagram l3} {Y : UU l4} - (c' : cocone-sequential-diagram B Y) - (z : zigzag-sequential-diagram A B) - (let f = hom-diagram-zigzag-sequential-diagram z) - (let g = inv-hom-diagram-zigzag-sequential-diagram z) - (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) - (let - C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) - (Q : Y โ†’ UU l5) - (let Q' = descent-data-family-cocone-sequential-diagram c' Q) - (let P = Q โˆ˜ fโˆž) - (let P' = descent-data-family-cocone-sequential-diagram c P) - where - - open import foundation.dependent-identifications - - opaque - -- TODO: Maybe this goes through for general equivalences immediately? - -- I haven't tried yet - compute-square-over-zigzag-square-over-colimit-id : - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - pasting-triangles-over - ( map-sequential-diagram A n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-diagram B n) - ( map-family-descent-data-sequential-colimit P' n _) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv n _) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) _) - ( map-family-descent-data-sequential-colimit Q' n _) - ( map-hom-sequential-diagram _ g n) - ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q id-fam-equiv n _) - ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) - ( lower-triangle-zigzag-sequential-diagram z n) - ( inv-htpy-over - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n) - _ _ - ( upper-triangle-over up-c c' z P Q id-fam-equiv n)) - ( lower-triangle-over up-c c' z P Q id-fam-equiv n) - { a} ~ - square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a - compute-square-over-zigzag-square-over-colimit-id n a p = - compute-concat-dependent-identification - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - _ _ _ _ โˆ™ - ( ap - ( ( ( tr-concat - ( lower-triangle-zigzag-sequential-diagram z n _) - ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( _)) โˆ™ - ( ap - ( tr (family-descent-data-sequential-colimit Q' (succ-โ„• n)) _) - ( lower-triangle-over up-c c' z (Q โˆ˜ fโˆž) Q id-fam-equiv n _))) โˆ™_) - ( ( compute-left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' (hom-diagram-zigzag-sequential-diagram z) (Q โˆ˜ fโˆž) Q id-fam-equiv (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( _)) โˆ™ - ap - ( ฮป r โ†’ - substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ - inv - ( preserves-tr - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( _)) โˆ™ - ap - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) - ( r)) - ( ( compute-inv-dependent-identification-inv - ( upper-triangle-zigzag-sequential-diagram z n a) - ( inv-upper-triangle-over up-c c' z (Q โˆ˜ fโˆž) Q id-fam-equiv n a p)) โˆ™ - ( compute-eq-transpose-equiv-inv-concat' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( _) - ( _))))) โˆ™ - inv (assoc _ _ _) โˆ™ - ap - ( ( tr-concat - ( lower-triangle-zigzag-sequential-diagram z n _) - ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( map-family-descent-data-sequential-colimit Q' n - ( map-zigzag-sequential-diagram z n a) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv n a p)) โˆ™ - ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap _ (inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( lower-triangle-over up-c c' z P Q id-fam-equiv n _) โˆ™ - ( substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ - inv - ( preserves-tr - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( _)))) โˆ™_) - ( ap-concat - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) - ( _) - ( _) โˆ™ - ap - (_โˆ™ - ap - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a _))) - ( inv - ( ap-comp - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) - ( tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( _)) โˆ™ - inv - ( ap-comp - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a) โˆ˜ - tr (family-descent-data-sequential-colimit P' (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( tr Q - ( inv (C (succ-โ„• n) _)) โˆ˜ - tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a))) - ( _)))) โˆ™ - inv (assoc _ _ _) โˆ™ - ap - ( _โˆ™ - ap - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) (map-sequential-diagram A n a)) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a _))) - ( nat-htpy - ( ฮป (q : family-descent-data-sequential-colimit Q' (succ-โ„• n) (map-sequential-diagram B n (map-zigzag-sequential-diagram z n a))) โ†’ - tr-concat - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( q) โˆ™ - ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) _ - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( q))) โˆ™ - ( substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ - inv - ( preserves-tr - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( inv-map-over-diagram-equiv-zigzag' up-c c' z P Q id-fam-equiv (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( q)))))) - ( _) โˆ™ - ap - ( _โˆ™ - ( tr-concat _ _ _ โˆ™ - ap - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)))) - ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) _ _)โˆ™ - ( substitution-law-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) โˆ™ - inv - ( preserves-tr - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( inv-map-over-diagram-equiv-zigzag' up-c c' z P Q id-fam-equiv (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( _)))))) - ( concat-inv-coherence-map-inv-is-equiv - ( equiv-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) - ( square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a p))) โˆ™ - assoc _ _ _ โˆ™ - assoc _ _ _ โˆ™ - ap - ( square-over-diagram-square-over-colimit up-c c' f P Q id-fam-equiv n a p โˆ™_) - ( ap - ( inv - ( is-section-map-inv-equiv - ( equiv-tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) - ( map-sequential-diagram A n a) - ( map-family-descent-data-sequential-colimit P' n a p))) โˆ™_) - ( assoc _ _ _ โˆ™ - inv - ( compute-concat-dependent-identification - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( ap (map-zigzag-sequential-diagram z (succ-โ„• n)) (inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n - ( map-zigzag-sequential-diagram z n a)) - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( tr - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( inv (naturality-map-hom-diagram-zigzag-sequential-diagram z n a)) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) - ( map-sequential-diagram A n a) - ( map-family-descent-data-sequential-colimit P' n a p))))) - ( _)) โˆ™ - ap - ( concat-dependent-identification - ( family-descent-data-sequential-colimit Q' (succ-โ„• n)) - ( lower-triangle-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( ap - ( map-zigzag-sequential-diagram z (succ-โ„• n)) - ( inv (upper-triangle-zigzag-sequential-diagram z n a))) - ( lower-triangle-over' up-c c' z P Q id-fam-equiv (succ-โ„• n) - ( inv-map-zigzag-sequential-diagram z n (map-zigzag-sequential-diagram z n a)) - ( _))) - ( inv - ( compute-left-whisk-dependent-identification - ( map-over-diagram-equiv-over-colimit up-c c' f P Q id-fam-equiv (succ-โ„• n) _) - ( inv (upper-triangle-zigzag-sequential-diagram z n a)) - ( map-eq-transpose-equiv-inv' - ( equiv-tr - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n a)) - ( upper-triangle-over' up-c c' z P Q id-fam-equiv n a - ( map-family-descent-data-sequential-colimit P' n _ p))))) โˆ™ - is-trivial-trivial-pasting up-c c' z P Q id-fam-equiv n a - ( map-family-descent-data-sequential-colimit P' n _ p)) โˆ™ - ( left-inv _)) โˆ™ - right-unit -``` - -```agda -module _ - {l1 l2 l3 l4 l5 : Level} - {A : sequential-diagram l1} {X : UU l2} - {c : cocone-sequential-diagram A X} - (up-c : universal-property-sequential-colimit c) - {B : sequential-diagram l3} {Y : UU l4} - (c' : cocone-sequential-diagram B Y) - (z : zigzag-sequential-diagram A B) - (let f = hom-diagram-zigzag-sequential-diagram z) - (let fโˆž = map-sequential-colimit-hom-sequential-diagram up-c c' f) - (let - C = htpy-htpy-cocone-map-sequential-colimit-hom-sequential-diagram up-c c' f) - (P : X โ†’ UU l5) - (let P' = descent-data-family-cocone-sequential-diagram c P) - (Q : Y โ†’ UU l5) - (let Q' = descent-data-family-cocone-sequential-diagram c' Q) - (e : fam-equiv P (Q โˆ˜ fโˆž)) - where - opaque + unfolding + lower-triangle-over' upper-triangle-over' + internal-triangle-upper-triangle-over' transpose-squares + inv-transport-squares compute-square-over-zigzag-square-over-colimit : (n : โ„•) (a : family-sequential-diagram A n) โ†’ pasting-triangles-over @@ -2126,45 +1256,26 @@ module _ ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) ( map-family-descent-data-sequential-colimit Q' n _) ( inv-map-zigzag-sequential-diagram z n) - ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q e n _) + ( inv-map-over-diagram-equiv-zigzag n _) ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) ( lower-triangle-zigzag-sequential-diagram z n) ( inv-htpy-over ( family-descent-data-sequential-colimit P' (succ-โ„• n)) ( upper-triangle-zigzag-sequential-diagram z n) _ _ - ( upper-triangle-over up-c c' z P Q e n)) - ( lower-triangle-over up-c c' z P Q e n) + ( upper-triangle-over n)) + ( lower-triangle-over n) { a} ~ square-over-diagram-square-over-colimit up-c c' f P Q e n a - compute-square-over-zigzag-square-over-colimit = - ind-fam-equiv' - ( ฮป P e โ†’ - let P' = descent-data-family-cocone-sequential-diagram c P in - (n : โ„•) (a : family-sequential-diagram A n) โ†’ - pasting-triangles-over - ( map-sequential-diagram A n) - ( map-hom-sequential-diagram B f n) - ( map-hom-sequential-diagram B f (succ-โ„• n)) - ( map-sequential-diagram B n) - ( map-family-descent-data-sequential-colimit P' n _) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e n _) - ( map-over-diagram-equiv-over-colimit up-c c' f P Q e (succ-โ„• n) _) - ( map-family-descent-data-sequential-colimit Q' n _) - ( inv-map-zigzag-sequential-diagram z n) - ( inv-map-over-diagram-equiv-zigzag up-c c' z P Q e n _) - ( inv-htpy (upper-triangle-zigzag-sequential-diagram z n)) - ( lower-triangle-zigzag-sequential-diagram z n) - ( inv-htpy-over - ( family-descent-data-sequential-colimit P' (succ-โ„• n)) - ( upper-triangle-zigzag-sequential-diagram z n) - _ _ - ( upper-triangle-over up-c c' z P Q e n)) - ( lower-triangle-over up-c c' z P Q e n) - { a} ~ - square-over-diagram-square-over-colimit up-c c' f P Q e n a) - ( compute-square-over-zigzag-square-over-colimit-id up-c c' z Q) - ( e) + compute-square-over-zigzag-square-over-colimit n a p = + ccc'' + ( map-zigzag-sequential-diagram z (succ-โ„• n)) + ( ฮป a โ†’ e (map-cocone-sequential-diagram c (succ-โ„• n) a)) + ( ฮป a โ†’ equiv-tr Q (C (succ-โ„• n) a)) + ( upper-triangle-zigzag-sequential-diagram z n a) + ( lower-triangle-zigzag-sequential-diagram z n + ( map-zigzag-sequential-diagram z n a)) + ( square-over-diagram-square-over-colimit up-c c' f P Q e n a p) ``` ```agda From 67ab1e9372f0993ed8fe5a096971b1be9107c240 Mon Sep 17 00:00:00 2001 From: VojtechStep Date: Tue, 25 Mar 2025 18:24:16 +0100 Subject: [PATCH 33/33] Temporarily bump maximum heap size Even macOS runners have 14GB of RAM, so this might just go through CI? --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1c7fca38cc..43ebf857d9 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,9 @@ else AGDA_MIN_HEAP ?= 4G endif -AGDARTS := +RTS -H$(AGDA_MIN_HEAP) -M6G -RTS +# Temporarily raise maximum heap size; should compile with the previous 6G +# before merging +AGDARTS := +RTS -H$(AGDA_MIN_HEAP) -M14G -RTS AGDAFILES := $(shell find src -name temp -prune -o -type f \( -name "*.lagda.md" -not -name "everything.lagda.md" \) -print) CONTRIBUTORS_FILE := CONTRIBUTORS.toml