{-# OPTIONS --without-K --exact-split --two-level #-}
module index where
import Extension.Everything
open import Extension.Prelude
import Extension.Univalence as Univalence
import Extension.Core as Core
import Extension.RS as RS
import Extension.RSHomotopy as RSHomotopy
import Extension.CofibFibration as CofibFibration
import Extension.RS46 as RS46
import Extension.RS410 as RS410
import Extension.RS48 as RS48
import Extension.RS412 as RS412
import Extension.FundamentalId as FundamentalId
import Extension.PiTruncation as PiTruncation
import Extension.SigmaTruncation as SigmaTruncation
import Extension.RS412Ext as RS412Ext
import Extension.ExtFamIso as ExtFamIso
import Extension.RS48Ext as RS48Ext
import Extension.RelFunext as RelFunext
import Extension.WeakStrict as WeakStrict
import Extension.Instances as Instances
import Extension.Fibre as Fibre
import Extension.CanonicalFibre as CanonicalFibre
import Extension.HomFillers as HomFillers
import Extension.Glue as Glue
import Extension.GlueStructure as GlueStructure
import Extension.GlueRules as GlueRules
import Extension.GlueUA as GlueUA
import Extension.UAFromSection as UAFromSection
import Extension.WeakGlueUA as WeakGlueUA
import Extension.WeakGlueUAFibrant as WeakGlueUAFibrant
import Extension.UAStrongGlue as UAStrongGlue
import Extension.GlueStrengthChain3 as GlueStrengthChain3
import Extension.GlueDataFibrant as GlueDataFibrant
import Extension.GlueSandwich as GlueSandwich
import Extension.GlueSandwichFibrant as GlueSandwichFibrant
import Extension.CoercionLaws as CoercionLaws
import Extension.GlueSandwichComplete as GlueSandwichComplete
import Extension.GlueSandwichGeneral as GlueSandwichGeneral
import Extension.Conservativity as Conservativity
import Extension.TheoryComparison as TheoryComparison
import Extension.CofibClosure as CofibClosure
import Extension.PropRealign as PropRealign
import Extension.RS411 as RS411
import Extension.RS410Pack as RS410Pack
import Extension.TriangleStrictification as TriangleStrictification
import Extension.GlueLiteralRules as GlueLiteralRules
import Extension.GlueHomotopySemantic as GlueHomotopySemantic
import Extension.GlueSandwichFull as GlueSandwichFull
import Extension.CoercionLawsNamed as CoercionLawsNamed
import Extension.ExoPushout as ExoPushout
import Extension.RS42 as RS42
import Extension.RS45 as RS45
import Extension.CanonicalFillers as CanonicalFillers
import Extension.GlueConstructorPackage as GlueConstructorPackage
import Extension.Corollary55 as Corollary55
private
variable
ℓΦ ℓΨ ℓA : Level
Lemma-2-2-strict
: {ℓ : Level} {E F : UUᵉ ℓ} (WF : isFibrant F) (g : E → F)
(fibW : (p : F) → isFibrant (Glue.fibᵉ g p)) (p₀ : F) →
CanonicalFibre.fibre-match WF g fibW p₀
≃ fiber (λ r → pr1 r) (ic (CanonicalFibre.to-match WF g fibW p₀))
Lemma-2-2-strict = CanonicalFibre.canonical-fibre-equiv
Lemma-2-2-map
: {ℓ : Level} {E F : UUᵉ ℓ} (WF : isFibrant F) (g : E → F)
(fibW : (p : F) → isFibrant (Glue.fibᵉ g p)) (p₀ : F) →
CanonicalFibre.fibre-match WF g fibW p₀
→ fiber (λ r → pr1 r) (ic (CanonicalFibre.to-match WF g fibW p₀))
Lemma-2-2-map = CanonicalFibre.canonical-map
Lemma-2-2-equiv
: {ℓ : Level} {E F : UUᵉ ℓ} (WF : isFibrant F) (g : E → F)
(fibW : (p : F) → isFibrant (Glue.fibᵉ g p)) (p₀ : F) →
isEquiv (Lemma-2-2-map WF g fibW p₀)
Lemma-2-2-equiv = CanonicalFibre.canonical-map-isEquiv
Lemma-2-2-family-strict
: {ℓX ℓ : Level} {X : UU ℓX} (P : X → UU ℓ) (x₀ : X) → Fibre.Sfibreᶜ P x₀ ≅ C (P x₀)
Lemma-2-2-family-strict = Fibre.strict-fibre-match
Lemma-2-2-family-homotopy
: {ℓX ℓ : Level} {X : UU ℓX} (P : X → UU ℓ) (x₀ : X) → Fibre.Hfibre P x₀ ≃ P x₀
Lemma-2-2-family-homotopy = Fibre.homotopy-fibre-equiv
Lemma-2-2-ext-instance
: {ℓ : Level} {ℓS : Level} {Φ Ψ : UUᵉ ℓS} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΦ : isCofibrant Φ ℓ) (Y : Ψ → UU ℓ) (p₀ : Πᵉ Φ (λ b → C (Y (i b)))) →
CanonicalFibre.fibre-match (Π-fibrant-witness (cofΦ (λ φ → Y (i φ))))
(CofibFibration.i* i Y) (CofibFibration.Ext-isFibrant cof Y) p₀
≃ fiber (λ r → pr1 r)
(ic
(CanonicalFibre.to-match (Π-fibrant-witness (cofΦ (λ φ → Y (i φ))))
(CofibFibration.i* i Y) (CofibFibration.Ext-isFibrant cof Y) p₀))
Lemma-2-2-ext-instance = CanonicalFibre.strict-to-homotopy-ext
Lemma-2-3
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
fibrant-match (HomFillers.D-isFibrant cof2 cofA X Z l k e₀)
≃ HomFillers.D′ cof2 cofA X Z l k e₀
Lemma-2-3 = CanonicalFillers.canonical-fillers
Lemma-2-3-map
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
fibrant-match (HomFillers.D-isFibrant cof2 cofA X Z l k e₀) →
HomFillers.D′ cof2 cofA X Z l k e₀
Lemma-2-3-map = CanonicalFillers.canonical-fill
Lemma-2-3-equiv
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
isEquiv (Lemma-2-3-map cof2 cofA X Z l k e₀)
Lemma-2-3-equiv = CanonicalFillers.canonical-fillers-equiv
Lemma-2-3-existence
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
fibrant-match (HomFillers.D-isFibrant cof2 cofA X Z l k e₀)
≃ HomFillers.D′ cof2 cofA X Z l k e₀
Lemma-2-3-existence = HomFillers.hom-fillers-equiv
Lemma-2-3-D-fibrant
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
isFibrant (HomFillers.D cof2 cofA X Z l k e₀)
Lemma-2-3-D-fibrant = HomFillers.D-isFibrant
Lemma-2-3-D'
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
UU (ℓS ⊔ ℓ)
Lemma-2-3-D' = HomFillers.D′
Lemma-2-3-h-canonical
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B} (cof2 : RelFunext.is-cofib-2LTT i ℓ)
(cofA : isCofibrant A ℓ) (X : UU ℓ) (Z : X → UU ℓ) (l : A → C (Σ X Z)) (k : B → C X)
(e₀ : (λ a → c (pr1 (ic (l a)))) =ᵉ (λ a → k (i a))) →
fibrant-match (Π-fibrant-witness (HomFillers.cofB cof2 cofA X Z l k e₀ (λ _ → Σ X Z)))
≃ HomFillers.ΣB cof2 cofA X Z l k e₀
Lemma-2-3-h-canonical = HomFillers.h-match-canonical
Lemma-2-4
: {ℓS ℓ : Level} {A B : UUᵉ ℓS} {i : A → B}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (cofA : isCofibrant A ℓ)
(Y : B → UU ℓ) (l : (a : A) → C (Y (i a))) →
CanonicalFibre.fibre-match
(Π-fibrant-witness (cofA (λ a → Y (i a))))
(CofibFibration.i* i Y) (CofibFibration.Ext-isFibrant (pr1ᵉ c2) Y) l
≃ fiber (λ r → pr1 r)
(ic (CanonicalFibre.to-match
(Π-fibrant-witness (cofA (λ a → Y (i a))))
(CofibFibration.i* i Y) (CofibFibration.Ext-isFibrant (pr1ᵉ c2) Y) l))
Lemma-2-4 c2 = CanonicalFibre.strict-to-homotopy-ext (pr1ᵉ c2)
Lemma-2-4-section-splitting
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) (Y : Ψ → UU ℓ) →
fibrant-match (Π-fibrant-witness (cofΨ Y))
≃ fibrant-match
(isFibrant-Σ (Π-fibrant-witness (cofΦ (λ φ → Y (i φ))))
(CofibFibration.Ext-isFibrant cof Y))
Lemma-2-4-section-splitting = WeakStrict.weak=strict
Lemma-2-4-dep
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) (Y : Ψ → UU ℓ) →
fibrant-match (Π-fibrant-witness (cofΨ Y))
≃ fibrant-match
(isFibrant-Σ (Π-fibrant-witness (cofΦ (λ φ → Y (i φ))))
(CofibFibration.Ext-isFibrant cof Y))
Lemma-2-4-dep = WeakStrict.weak=strict
Lemma-3-14-strictify
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(Y : Ψ → UU ℓ) (b : (ψ : Ψ) → C (Y ψ))
(a : (φ : Φ) → C (Y (i φ))) (e : (φ : Φ) → Id (ic (a φ)) (ic (b (i φ)))) →
Core.Ext i (λ ψ → C (Y ψ)) a
Lemma-3-14-strictify c2 = RS410.a' (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-strictify-agrees
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(Y : Ψ → UU ℓ) (b : (ψ : Ψ) → C (Y ψ))
(a : (φ : Φ) → C (Y (i φ))) (e : (φ : Φ) → Id (ic (a φ)) (ic (b (i φ)))) (ψ : Ψ) →
Id (ic (Core.ext-app (Lemma-3-14-strictify c2 Y b a e) ψ)) (ic (b ψ))
Lemma-3-14-strictify-agrees c2 = RS410.a'-agrees-b (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-triangle-h
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : UU ℓ) (f : Φ → C Y) (g : Ψ → C Y)
(H : (φ : Φ) → Id (ic (f φ)) (ic (g (i φ)))) →
Ψ → C Y
Lemma-3-14-triangle-h c2 = TriangleStrictification.h (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-triangle-top-strict
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : UU ℓ) (f : Φ → C Y) (g : Ψ → C Y)
(H : (φ : Φ) → Id (ic (f φ)) (ic (g (i φ)))) →
(λ φ → Lemma-3-14-triangle-h c2 Y f g H (i φ)) =ᵉ f
Lemma-3-14-triangle-top-strict c2 = TriangleStrictification.top-strict (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-triangle-globe
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : UU ℓ) (f : Φ → C Y) (g : Ψ → C Y)
(H : (φ : Φ) → Id (ic (f φ)) (ic (g (i φ)))) (ψ : Ψ) →
Id (ic (Lemma-3-14-triangle-h c2 Y f g H ψ)) (ic (g ψ))
Lemma-3-14-triangle-globe c2 = TriangleStrictification.G (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-triangle-globe-strict
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : UU ℓ) (f : Φ → C Y) (g : Ψ → C Y)
(H : (φ : Φ) → Id (ic (f φ)) (ic (g (i φ)))) →
(λ φ → c (Lemma-3-14-triangle-globe c2 Y f g H (i φ)))
=ᵉ (λ φ → exo-tr (λ v → C (Id (ic v) (ic (g (i φ)))))
(exo-inv (happlyᵉ (Lemma-3-14-triangle-top-strict c2 Y f g H) φ))
(c (H φ)))
Lemma-3-14-triangle-globe-strict c2 =
TriangleStrictification.globe-restricts-strictly (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-triangle-no-strict-globe
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : UU ℓ) (f : Φ → C Y) (g : Ψ → C Y) →
((φ : Φ) → Id (ic (f φ)) (ic (g (i φ)))) →
(h' : Ψ → C Y) →
(λ φ → h' (i φ)) =ᵉ f →
h' =ᵉ g →
(λ φ → g (i φ)) =ᵉ f
Lemma-3-14-triangle-no-strict-globe c2 =
TriangleStrictification.no-strict-globe (pr1ᵉ c2) (pr2ᵉ c2)
Definition-3-9
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ) →
UUᵉ ((ℓΦ ⊔ ℓΨ) ⊔ lsuc ℓ)
Definition-3-9 = RelFunext.satisfies-rel-funext
Lemma-3-11
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ) →
Definition-3-9 (pr1ᵉ c2)
Lemma-3-11 = RelFunext.rel-funext-holds-2LTT
Lemma-3-11-cofibrant
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ) →
isCofibrant Ψ ℓ → isCofibrant Φ ℓ → Definition-3-9 cof
Lemma-3-11-cofibrant = RelFunext.rel-funext-holds
Corollary-3-12
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(D : Ψ → UU ℓ) (P : (ψ : Ψ) → D ψ → UU ℓ) (propP : (ψ : Ψ) (d : D ψ) → is-prop (P ψ d))
(s : (ψ : Ψ) → C (PropRealign.S c2 D P propP ψ))
(s₀ : (φ : Φ) → C (PropRealign.S c2 D P propP (i φ)))
(agr : (φ : Φ) → c (pr1 (ic (s (i φ)))) =ᵉ c (pr1 (ic (s₀ φ)))) →
is-contr (fibrant-match (PropRealign.Realign-isFibrant c2 D P propP s s₀ agr))
Corollary-3-12 = PropRealign.realign-contr
Corollary-3-12-iso
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(D : Ψ → UU ℓ) (P : (ψ : Ψ) → D ψ → UU ℓ) (propP : (ψ : Ψ) (d : D ψ) → is-prop (P ψ d))
(s : (ψ : Ψ) → C (PropRealign.S c2 D P propP ψ))
(s₀ : (φ : Φ) → C (PropRealign.S c2 D P propP (i φ)))
(agr : (φ : Φ) → c (pr1 (ic (s (i φ)))) =ᵉ c (pr1 (ic (s₀ φ)))) →
PropRealign.Realign c2 D P propP s s₀ agr
≅ Core.Ext i (λ ψ → C (PropRealign.P' c2 D P propP s s₀ agr ψ))
(PropRealign.l c2 D P propP s s₀ agr)
Corollary-3-12-iso = PropRealign.realign-iso
Corollary-3-12-fibrant
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(D : Ψ → UU ℓ) (P : (ψ : Ψ) → D ψ → UU ℓ) (propP : (ψ : Ψ) (d : D ψ) → is-prop (P ψ d))
(s : (ψ : Ψ) → C (PropRealign.S c2 D P propP ψ))
(s₀ : (φ : Φ) → C (PropRealign.S c2 D P propP (i φ)))
(agr : (φ : Φ) → c (pr1 (ic (s (i φ)))) =ᵉ c (pr1 (ic (s₀ φ)))) →
isFibrant (PropRealign.Realign c2 D P propP s s₀ agr)
Corollary-3-12-fibrant = PropRealign.Realign-isFibrant
Corollary-3-12-exists
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(D : Ψ → UU ℓ) (P : (ψ : Ψ) → D ψ → UU ℓ) (propP : (ψ : Ψ) (d : D ψ) → is-prop (P ψ d))
(s : (ψ : Ψ) → C (PropRealign.S c2 D P propP ψ))
(s₀ : (φ : Φ) → C (PropRealign.S c2 D P propP (i φ)))
(agr : (φ : Φ) → c (pr1 (ic (s (i φ)))) =ᵉ c (pr1 (ic (s₀ φ)))) →
PropRealign.Realign c2 D P propP s s₀ agr
Corollary-3-12-exists = PropRealign.realignment
Corollary-3-12-unique
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(D : Ψ → UU ℓ) (P : (ψ : Ψ) → D ψ → UU ℓ) (propP : (ψ : Ψ) (d : D ψ) → is-prop (P ψ d))
(s : (ψ : Ψ) → C (PropRealign.S c2 D P propP ψ))
(s₀ : (φ : Φ) → C (PropRealign.S c2 D P propP (i φ)))
(agr : (φ : Φ) → c (pr1 (ic (s (i φ)))) =ᵉ c (pr1 (ic (s₀ φ))))
(r₁ r₂ : PropRealign.Realign c2 D P propP s s₀ agr) →
Id (ic (pr1ᵉ (fibrant-witness (Corollary-3-12-fibrant c2 D P propP s s₀ agr)) r₁))
(ic (pr1ᵉ (fibrant-witness (Corollary-3-12-fibrant c2 D P propP s s₀ agr)) r₂))
Corollary-3-12-unique = PropRealign.realign-unique
Definition-3-1 : {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ}
→ (i : Φ → Ψ) (A : Ψ → UUᵉ ℓA) (a : (φ : Φ) → A (i φ))
→ UUᵉ (ℓΦ ⊔ ℓΨ ⊔ ℓA)
Definition-3-1 = Core.Ext
Lemma-3-2-intro
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} → Core.ExtensionRules i A a
Lemma-3-2-intro = Core.extension-rules
Lemma-3-2-eval
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} →
Core.Ext i A a → (ψ : Ψ) → A ψ
Lemma-3-2-eval = Core.ext-app
Lemma-3-2-bdry
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} (f : Core.Ext i A a) (φ : Φ) →
Lemma-3-2-eval f (i φ) =ᵉ a φ
Lemma-3-2-bdry = Core.ext-bdry
Lemma-3-2-β
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} (b : (ψ : Ψ) → A ψ) (p : Core.restrict i b =ᵉ a) (ψ : Ψ) →
Core.ext-app (Core.ext-λ b p) ψ =ᵉ b ψ
Lemma-3-2-β = Core.ext-β
Lemma-3-2-η
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} (f : Core.Ext i A a) →
f =ᵉ Core.ext-λ (Core.ext-app f) (pr2ᵉ f)
Lemma-3-2-η = Core.ext-η
Remark-3-3-type
: {ℓφ ℓA : Level} (φ : UUᵉ ℓφ) (A : UUᵉ ℓA) (u : φ → A) → Instances.PropExtCalculus φ A u
Remark-3-3-type = Instances.prop-ext-calculus
Remark-3-3-intro
: {ℓφ ℓA : Level} (φ : UUᵉ ℓφ) (A : UUᵉ ℓA) (u : φ → A) (v : A) →
((p : φ) → v =ᵉ u p) → Instances.PropExt-direct φ A u
Remark-3-3-intro = Instances.inS
Remark-3-3-elim
: {ℓφ ℓA : Level} (φ : UUᵉ ℓφ) (A : UUᵉ ℓA) (u : φ → A) → Instances.PropExt-direct φ A u → A
Remark-3-3-elim = Instances.outS
Remark-3-3-bdry
: {ℓφ ℓA : Level} (φ : UUᵉ ℓφ) (A : UUᵉ ℓA) (u : φ → A) (w : Instances.PropExt-direct φ A u)
(p : φ) →
Remark-3-3-elim φ A u w =ᵉ u p
Remark-3-3-bdry = Instances.bdryP
Remark-3-3-direct
: {ℓφ ℓA : Level} (φ : UUᵉ ℓφ) (A : UUᵉ ℓA) (u : φ → A) →
Instances.PropExt φ A u ≅ Instances.PropExt-direct φ A u
Remark-3-3-direct = Instances.PropExt≅direct
Remark-3-3-fibrewise
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (A : Ψ → UUᵉ ℓA)
(a : (φ : Φ) → A (i φ)) →
Core.Ext i A a ≅ ((ψ : Ψ) → Instances.PropExt-direct
(Instances.im i ψ) (A ψ) (Instances.im-bdry i A a ψ))
Remark-3-3-fibrewise = Instances.fibrewise-decomposition
Remark-3-3-fibrewise-index
: {ℓΦ ℓΨ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) →
((φ φ' : Φ) → i φ =ᵉ i φ' → φ =ᵉ φ') →
(ψ : Ψ) (z z' : Instances.im i ψ) → z =ᵉ z'
Remark-3-3-fibrewise-index = Instances.im-is-prop
Lemma-3-4
: {ℓΦ ℓΨ ℓX ℓY : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (X : UUᵉ ℓX)
(Y : Ψ → X → UUᵉ ℓY) (f : (φ : Φ) (x : X) → Y (i φ) x) →
Core.Ext i (λ ψ → (x : X) → Y ψ x) f ≅ ((x : X) → Core.Ext i (λ ψ → Y ψ x) (λ φ → f φ x))
Lemma-3-4 = RS.RS41
Lemma-3-5
: {ℓΦ ℓΨ ℓΦ' ℓΨ' ℓP : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {Φ' : UUᵉ ℓΦ'} {Ψ' : UUᵉ ℓΨ'}
(i : Φ → Ψ) (i' : Φ' → Ψ') {P : UUᵉ ℓP} (inlᴾ : Φ ×ᵉ Ψ' → P) (inrᴾ : Ψ ×ᵉ Φ' → P)
(glueᴾ : (w : Φ ×ᵉ Φ') → inlᴾ (RS42.pp-left i i' w) =ᵉ inrᴾ (RS42.pp-right i i' w))
(po : {ℓE : Level} →
ExoPushout.is-exo-pushout (RS42.pp-left i i') (RS42.pp-right i i') inlᴾ inrᴾ glueᴾ ℓE)
{ℓA : Level} (A : Ψ ×ᵉ Ψ' → UUᵉ ℓA) (cᴾ : (p : P) → A (RS42.i□i' i i' inlᴾ inrᴾ glueᴾ po p)) →
Core.Ext i (RS42.E₁ i i' inlᴾ inrᴾ glueᴾ po A cᴾ) (RS42.c₁ i i' inlᴾ inrᴾ glueᴾ po A cᴾ)
≅ Core.Ext i' (RS42.E₂ i i' inlᴾ inrᴾ glueᴾ po A cᴾ) (RS42.c₂ i i' inlᴾ inrᴾ glueᴾ po A cᴾ)
Lemma-3-5 = RS42.RS42
Lemma-3-5-a
: {ℓΦ ℓΨ ℓΦ' ℓΨ' ℓP : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {Φ' : UUᵉ ℓΦ'} {Ψ' : UUᵉ ℓΨ'}
(i : Φ → Ψ) (i' : Φ' → Ψ') {P : UUᵉ ℓP} (inlᴾ : Φ ×ᵉ Ψ' → P) (inrᴾ : Ψ ×ᵉ Φ' → P)
(glueᴾ : (w : Φ ×ᵉ Φ') → inlᴾ (RS42.pp-left i i' w) =ᵉ inrᴾ (RS42.pp-right i i' w))
(po : {ℓE : Level} →
ExoPushout.is-exo-pushout (RS42.pp-left i i') (RS42.pp-right i i') inlᴾ inrᴾ glueᴾ ℓE)
{ℓA : Level} (A : Ψ ×ᵉ Ψ' → UUᵉ ℓA) (cᴾ : (p : P) → A (RS42.i□i' i i' inlᴾ inrᴾ glueᴾ po p)) →
Core.Ext i (RS42.E₁ i i' inlᴾ inrᴾ glueᴾ po A cᴾ) (RS42.c₁ i i' inlᴾ inrᴾ glueᴾ po A cᴾ)
≅ Core.Ext (RS42.i□i' i i' inlᴾ inrᴾ glueᴾ po) A cᴾ
Lemma-3-5-a = RS42.RS42a
Lemma-3-5-b
: {ℓΦ ℓΨ ℓΦ' ℓΨ' ℓP : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {Φ' : UUᵉ ℓΦ'} {Ψ' : UUᵉ ℓΨ'}
(i : Φ → Ψ) (i' : Φ' → Ψ') {P : UUᵉ ℓP} (inlᴾ : Φ ×ᵉ Ψ' → P) (inrᴾ : Ψ ×ᵉ Φ' → P)
(glueᴾ : (w : Φ ×ᵉ Φ') → inlᴾ (RS42.pp-left i i' w) =ᵉ inrᴾ (RS42.pp-right i i' w))
(po : {ℓE : Level} →
ExoPushout.is-exo-pushout (RS42.pp-left i i') (RS42.pp-right i i') inlᴾ inrᴾ glueᴾ ℓE)
{ℓA : Level} (A : Ψ ×ᵉ Ψ' → UUᵉ ℓA) (cᴾ : (p : P) → A (RS42.i□i' i i' inlᴾ inrᴾ glueᴾ po p)) →
Core.Ext (RS42.i□i' i i' inlᴾ inrᴾ glueᴾ po) A cᴾ
≅ Core.Ext i' (RS42.E₂ i i' inlᴾ inrᴾ glueᴾ po A cᴾ) (RS42.c₂ i i' inlᴾ inrᴾ glueᴾ po A cᴾ)
Lemma-3-5-b = RS42.RS42b
Lemma-3-6
: {ℓΦ ℓΨ ℓX ℓY : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (X : Ψ → UUᵉ ℓX)
(Y : (ψ : Ψ) → X ψ → UUᵉ ℓY) (a : (φ : Φ) → X (i φ)) (b : (φ : Φ) → Y (i φ) (a φ)) →
Core.Ext i (λ ψ → Σᵉ (X ψ) (Y ψ)) (λ φ → a φ ,ᵉ b φ)
≅ Σᵉ (Core.Ext i X a)
(λ f → Core.Ext i (λ ψ → Y ψ (Lemma-3-2-eval f ψ))
(λ φ → exo-tr (Y (i φ)) (exo-inv (Lemma-3-2-bdry f φ)) (b φ)))
Lemma-3-6 = RS.RS43
Lemma-3-7
: {ℓΦ ℓΨ ℓΩ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {Ω : UUᵉ ℓΩ} (i : Φ → Ψ) (j : Ψ → Ω)
(A : Ω → UUᵉ ℓA) (a : (φ : Φ) → A (j (i φ))) →
Core.Ext (λ φ → j (i φ)) A a
≅ Σᵉ (Core.Ext i (λ ψ → A (j ψ)) a) (λ f → Core.Ext j A (Lemma-3-2-eval f))
Lemma-3-7 = RS.RS44
Lemma-3-8
: {ℓM ℓΦ ℓΨ ℓP ℓA : Level} {M : UUᵉ ℓM} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (u : M → Φ) (v : M → Ψ)
{P : UUᵉ ℓP} (inlᴾ : Φ → P) (inrᴾ : Ψ → P) (glueᴾ : (m : M) → inlᴾ (u m) =ᵉ inrᴾ (v m))
(A : P → UUᵉ ℓA) (a : (ψ : Ψ) → A (inrᴾ ψ))
(po : ExoPushout.is-exo-pushout u v inlᴾ inrᴾ glueᴾ ℓA) →
Core.Ext inrᴾ A a ≅ Core.Ext u (λ x → A (inlᴾ x)) (RS45.a∧ u v inlᴾ inrᴾ glueᴾ A a)
Lemma-3-8 = RS45.RS45
Lemma-3-11-contr
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) (Y : Ψ → UU ℓ)
(cY : (ψ : Ψ) → is-contr (Y ψ)) (a : (φ : Φ) → C (Y (i φ))) →
Fib-is-contr (Core.Ext i (λ ψ → C (Y ψ)) a) {CofibFibration.Ext-isFibrant cof Y a}
Lemma-3-11-contr = RS46.RS46
Lemma-3-11-full
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ) →
Definition-3-9 (pr1ᵉ c2)
Lemma-3-11-full = RelFunext.rel-funext-holds-2LTT
Lemma-3-11-strict
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) {A : Ψ → UUᵉ ℓA}
(a : (φ : Φ) → A (i φ)) (cA : (ψ : Ψ) → Core.is-contrᵉ (A ψ)) →
Core.is-contrᵉ (Core.Ext i A a)
Lemma-3-11-strict = RSHomotopy.Ext-strict-contr
Lemma-3-13
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : Ψ → UU ℓ) (a : (φ : Φ) → C (Y (i φ)))
(f g : RS48Ext.EA (pr1ᵉ c2) (pr2ᵉ c2) Y a) →
Id f g ≃ RS48Ext.Q (pr1ᵉ c2) (pr2ᵉ c2) Y a f g
Lemma-3-13 c2 = RS48Ext.RS48Ext (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-13-strict
: {ℓΦ ℓΨ ℓA : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {A : Ψ → UUᵉ ℓA}
{a : (φ : Φ) → A (i φ)} (f g : Core.Ext i A a) →
(f =ᵉ g)
≅ Core.Ext i (λ ψ → Lemma-3-2-eval f ψ =ᵉ Lemma-3-2-eval g ψ)
(λ φ → exo-concat (Lemma-3-2-bdry f φ) (exo-inv (Lemma-3-2-bdry g φ)))
Lemma-3-13-strict = RS48.Ext-Id-strict
Lemma-3-14
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) → RS411.HEP (pr1ᵉ c2)
Lemma-3-14 c2 = RS411.HEP-holds (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-agrees
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(Y : Ψ → UU ℓ) (b : (ψ : Ψ) → C (Y ψ))
(a : (φ : Φ) → C (Y (i φ))) (e : (φ : Φ) → Id (ic (a φ)) (ic (b (i φ)))) (ψ : Ψ) →
Id (ic (Lemma-3-2-eval (Lemma-3-14-strictify c2 Y b a e) ψ)) (ic (b ψ))
Lemma-3-14-agrees c2 = RS410.a'-agrees-b (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-full
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) → RS411.HEP (pr1ᵉ c2)
Lemma-3-14-full c2 = RS411.HEP-holds (pr1ᵉ c2) (pr2ᵉ c2)
Lemma-3-14-pack
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (c2 : RelFunext.is-cofib-2LTT i ℓ)
(Y : Ψ → UU ℓ) (b : (ψ : Ψ) → C (Y ψ))
(a : (φ : Φ) → C (Y (i φ))) (e : (φ : Φ) → Id (ic (a φ)) (ic (b (i φ)))) →
RS410Pack.HEP (pr1ᵉ c2) (pr2ᵉ c2) Y b a e
Lemma-3-14-pack c2 = RS410Pack.hep (pr1ᵉ c2) (pr2ᵉ c2)
RS411-implication
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ) →
RS411.HEP cof → RS411.NaiveExtExt cof → Definition-3-9 cof
RS411-implication = RS411.RS411
RS411-hyp-HEP
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) →
RS411.HEP cof
RS411-hyp-HEP cof cofΨ cofΦ =
RS411.HEP-holds cof (RelFunext.rel-funext-holds cof cofΨ cofΦ)
RS411-hyp-NEE
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) →
RS411.NaiveExtExt cof
RS411-hyp-NEE cof cofΨ cofΦ =
RS411.NaiveExtExt-holds cof (RelFunext.rel-funext-holds cof cofΨ cofΦ)
RS411-check
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) →
Definition-3-9 cof
RS411-check cof cofΨ cofΦ =
RS411.rs46-recovered cof (RelFunext.rel-funext-holds cof cofΨ cofΦ)
Lemma-3-15-props
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} (cof : CofibFibration.is-cofib i ℓ)
(cofΨ : isCofibrant Ψ ℓ) (cofΦ : isCofibrant Φ ℓ) (Y : Ψ → UU ℓ) (a : (φ : Φ) → C (Y (i φ))) →
((ψ : Ψ) → is-prop (Y ψ)) →
Fib-is-prop (Core.Ext i (λ ψ → C (Y ψ)) a) {CofibFibration.Ext-isFibrant cof Y a}
Lemma-3-15-props = RS412.Ext-is-prop
Lemma-3-15-general
: {ℓΦ ℓΨ ℓ : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i ℓ) (Y : Ψ → UU ℓ) (a : (φ : Φ) → C (Y (i φ)))
(t : RS412Ext.TruncationLevelᵉ) →
((ψ : Ψ) → is-type (RS412Ext.decode-level t) (Y ψ)) →
is-type (RS412Ext.decode-level t) (fibrant-match (CofibFibration.Ext-isFibrant (pr1ᵉ c2) Y a))
Lemma-3-15-general c2 = RS412Ext.Ext-truncation (pr1ᵉ c2) (pr2ᵉ c2)
Definition-4-1-at
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (f : (φ : Φ) → C (T φ ≃ A (i φ))) →
UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-1-at = GlueLiteralRules.literal-glue-rules
Definition-4-1
: (𝓤 : Level) → SSetω
Definition-4-1 = GlueLiteralRules.CCHMGlue
Definition-4-1-at-cofibration
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} →
(Φ → Ψ) → (𝓤 : Level) → UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-1-at-cofibration = GlueLiteralRules.satisfies-literal-glue-rules
Definition-4-1-bridge
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) {𝓤 : Level} (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (f : (φ : Φ) → C (T φ ≃ A (i φ)))
(r : Definition-4-1-at i 𝓤 A T f) →
((ψ : Ψ) → C (isEquiv (GlueLiteralRules.literal-glue-rules.unglue r ψ))) →
Σᵉ (Ψ → UU 𝓤)
(λ Gl → Σᵉ ((λ φ → Gl (i φ)) =ᵉ T)
(λ p → Σᵉ ((ψ : Ψ) → Gl ψ → A ψ)
(λ ung → Σᵉ
((φ : Φ) →
c (ung (i φ)) =ᵉ exo-tr (λ H → (ξ : Φ) → C (H ξ → A (i ξ))) (exo-inv p)
(λ ξ → c (pr1 (ic (f ξ)))) φ) (λ _ → (ψ : Ψ) → C (isEquiv (ung ψ))))))
Definition-4-1-bridge = GlueLiteralRules.literal-to-homotopy-rules-at
Remark-4-4-homotopy-form
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) → UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Remark-4-4-homotopy-form = GlueRules.satisfies-homotopy-glue-rules
Lemma-4-2-i-to
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) {𝓤 : Level} (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (f : (φ : Φ) → C (T φ ≃ A (i φ))) (G : Ψ → UU 𝓤) (p : (λ φ → G (i φ)) =ᵉ T)
(ung : (ψ : Ψ) → G ψ → A ψ)
(ubd : (φ : Φ) →
c (ung (i φ)) =ᵉ exo-tr (λ H → (ξ : Φ) → C (H ξ → A (i ξ))) (exo-inv p)
(λ ξ → c (pr1 (ic (f ξ)))) φ) →
(GlueLiteralRules.GlueNotation.ConstructorPackage i 𝓤 A T f G p ung ubd →
GlueConstructorPackage.StrictInverse i A T f G p ung ubd)
×ᵉ
(GlueConstructorPackage.StrictInverse i A T f G p ung ubd →
GlueLiteralRules.GlueNotation.ConstructorPackage i 𝓤 A T f G p ung ubd)
Lemma-4-2-i-to i A T f G p ung ubd =
GlueConstructorPackage.package-to-inverse i A T f G p ung ubd ,ᵉ
GlueConstructorPackage.inverse-to-package i A T f G p ung ubd
Lemma-4-2-i-from
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) {𝓤 : Level} (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (f : (φ : Φ) → C (T φ ≃ A (i φ))) (G : Ψ → UU 𝓤) (p : (λ φ → G (i φ)) =ᵉ T)
(ung : (ψ : Ψ) → G ψ → A ψ)
(ubd : (φ : Φ) →
c (ung (i φ)) =ᵉ exo-tr (λ H → (ξ : Φ) → C (H ξ → A (i ξ))) (exo-inv p)
(λ ξ → c (pr1 (ic (f ξ)))) φ) →
GlueConstructorPackage.StrictInverse i A T f G p ung ubd →
GlueLiteralRules.GlueNotation.ConstructorPackage i 𝓤 A T f G p ung ubd
Lemma-4-2-i-from = GlueConstructorPackage.inverse-to-package
abstract
Lemma-4-2-cofΨ
: {ℓS 𝓤 : Level} {Φ Ψ : UUᵉ ℓS} {i : Φ → Ψ} →
RelFunext.is-cofib-2LTT i 𝓤 → isCofibrant Φ 𝓤 → isCofibrant Ψ 𝓤
Lemma-4-2-cofΨ = CofibClosure.cofib-codomain-cofibrant
Lemma-4-2-ii
: {ℓS 𝓤 : Level} {Φ Ψ : UUᵉ ℓS} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i 𝓤)
(cofΦ : isCofibrant Φ 𝓤)
(A : Ψ → UU 𝓤) (T : Φ → UU 𝓤)
(f : (φ : Φ) → C (T φ ≃ A (i φ)))
(G : Ψ → UU 𝓤) (p : (λ φ → G (i φ)) =ᵉ T)
(ung : (ψ : Ψ) → G ψ → A ψ)
(ubd : (φ : Φ) →
c (ung (i φ)) =ᵉ exo-tr (λ H → (ξ : Φ) → C (H ξ → A (i ξ))) (exo-inv p)
(λ ξ → c (pr1 (ic (f ξ)))) φ)
(inv : (ψ : Ψ) → C (isEquiv (ung ψ))) →
GlueConstructorPackage.ThetaAnalysis.Package2.HomotopyConstructorPackage
(pr1ᵉ c2) cofΦ (Lemma-4-2-cofΨ c2 cofΦ)
A T f G p ung ubd inv
Lemma-4-2-ii c2 cofΦ =
GlueConstructorPackage.ThetaAnalysis.Package2.homotopy-constructor-package
(pr1ᵉ c2) cofΦ (Lemma-4-2-cofΨ c2 cofΦ)
Lemma-4-2-iii
: {ℓS 𝓤 : Level} {Φ Ψ : UUᵉ ℓS} {i : Φ → Ψ}
(c2 : RelFunext.is-cofib-2LTT i 𝓤)
(cofΦ : isCofibrant Φ 𝓤)
(A : Ψ → UU 𝓤) (T : Φ → UU 𝓤)
(f : (φ : Φ) → C (T φ ≃ A (i φ)))
(G : Ψ → UU 𝓤) (p : (λ φ → G (i φ)) =ᵉ T)
(ung : (ψ : Ψ) → G ψ → A ψ)
(ubd : (φ : Φ) →
c (ung (i φ)) =ᵉ exo-tr (λ H → (ξ : Φ) → C (H ξ → A (i ξ))) (exo-inv p)
(λ ξ → c (pr1 (ic (f ξ)))) φ) →
GlueConstructorPackage.StrictInverse i A T f G p ung ubd →
isEquiv
(GlueConstructorPackage.ThetaAnalysis.unglue-match
(pr1ᵉ c2) cofΦ (Lemma-4-2-cofΨ c2 cofΦ)
A T f G p ung ubd)
Lemma-4-2-iii c2 cofΦ =
GlueConstructorPackage.ThetaAnalysis.unglue-equiv-of-strict-inverse
(pr1ᵉ c2) cofΦ (Lemma-4-2-cofΨ c2 cofΦ)
Remark-4-4
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {𝓤 : Level}
(cof : CofibFibration.is-cofib i 𝓤) (triv : Definition-3-9 cof) →
(Remark-4-4-homotopy-form i 𝓤 → GlueStructure.has-strictly-coherent-glue i 𝓤)
×ᵉ
(GlueStructure.has-strictly-coherent-glue i 𝓤 →
Remark-4-4-homotopy-form i 𝓤)
Remark-4-4 = GlueHomotopySemantic.homotopy-vs-semantic
Remark-4-4-to-strict
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ} {𝓤 : Level}
(cof : CofibFibration.is-cofib i 𝓤) (triv : Definition-3-9 cof) →
Remark-4-4-homotopy-form i 𝓤 → GlueStructure.has-strictly-coherent-glue i 𝓤
Remark-4-4-to-strict = GlueHomotopySemantic.homotopy-rules-to-strict-coh
Remark-4-4-to-rules
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) →
GlueStructure.has-strictly-coherent-glue i 𝓤 → Remark-4-4-homotopy-form i 𝓤
Remark-4-4-to-rules = GlueHomotopySemantic.strict-coh-to-homotopy-rules
Definition-4-3-output
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-3-output = GlueStructure.GlueOutput
Definition-4-3-strict-coh
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
Definition-4-3-output i 𝓤 A T e → UUᵉ (ℓφ ⊔ 𝓤)
Definition-4-3-strict-coh = GlueStructure.is-strictly-coherent
Definition-4-3-homotopy-coh
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
Definition-4-3-output i 𝓤 A T e → UUᵉ (ℓφ ⊔ 𝓤)
Definition-4-3-homotopy-coh = GlueStructure.is-homotopy-coherent
Definition-4-3-fixed-data
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-3-fixed-data = GlueStructure.GlueData
Definition-4-3-has
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) → UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-3-has = GlueStructure.has-glue-structure
Definition-4-3-data
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) → UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-3-data = GlueStructure.has-strictly-coherent-glue
Definition-4-3-has-homotopy
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) → UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-4-3-has-homotopy = GlueStructure.has-homotopy-coherent-glue
Lemma-5-1
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ)))
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) →
(Definition-4-3-fixed-data i 𝓤 A T e
≅ Core.Ext i (λ ψ → C (GlueStructure.W i 𝓤 A ψ))
(λ φ → c {A = GlueStructure.W i 𝓤 A (i φ)} (T φ , ic (e φ))))
×ᵉ isFibrant (Definition-4-3-fixed-data i 𝓤 A T e)
Lemma-5-1 i 𝓤 A T e cof =
GlueDataFibrant.glue-data-≅ i 𝓤 A T e ,ᵉ
GlueDataFibrant.GlueData-isFibrant i 𝓤 A T e cof
Lemma-5-1-iso
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
Definition-4-3-fixed-data i 𝓤 A T e
≅ Core.Ext i (λ ψ → C (GlueStructure.W i 𝓤 A ψ))
(λ φ → c {A = GlueStructure.W i 𝓤 A (i φ)} (T φ , ic (e φ)))
Lemma-5-1-iso = GlueDataFibrant.glue-data-≅
Lemma-5-1-fibrant
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
CofibFibration.is-cofib i (lsuc 𝓤) → isFibrant (Definition-4-3-fixed-data i 𝓤 A T e)
Lemma-5-1-fibrant = GlueDataFibrant.GlueData-isFibrant
Definition-5-2
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level)
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) →
UUᵉ ((ℓφ ⊔ ℓΨ) ⊔ lsuc 𝓤)
Definition-5-2 = GlueDataFibrant.has-strong-glue-structure
Theorem-5-4
: {ℓΦ ℓΨ 𝓤 : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) (triv : Definition-3-9 cof) →
Definition-5-2 i 𝓤 cof
Theorem-5-4 = GlueSandwich.ua-strong-glue
Theorem-5-4-Ext
: {ℓΦ ℓΨ 𝓤 : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) →
Definition-3-9 cof →
(A : Ψ → UU 𝓤) (T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
is-contr
(fibrant-match
(CofibFibration.Ext-isFibrant cof (UAStrongGlue.GlueFam A) (λ φ → c (T φ , ic (e φ)))))
Theorem-5-4-Ext = UAStrongGlue.ua-implies-strong-glue
Theorem-5-4-GlueData
: {ℓΦ ℓΨ 𝓤 : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) →
Definition-3-9 cof →
(A : Ψ → UU 𝓤) (T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
is-contr (fibrant-match (Lemma-5-1-fibrant i 𝓤 A T e cof))
Theorem-5-4-GlueData = GlueSandwich.ua-glue-data-contr
Theorem-5-4-cofibrant
: {ℓΦ ℓΨ 𝓤 : Level} {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(cof : CofibFibration.is-cofib i (lsuc 𝓤)) →
isCofibrant Ψ (lsuc 𝓤) →
isCofibrant Φ (lsuc 𝓤) →
(A : Ψ → UU 𝓤) (T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) →
is-contr
(fibrant-match
(CofibFibration.Ext-isFibrant cof (UAStrongGlue.GlueFam A) (λ φ → c (T φ , ic (e φ)))))
Theorem-5-4-cofibrant = UAStrongGlue.ua-implies-strong-glue-cofibrant
Corollary-5-5
: {ℓS 𝓤 : Level} {Φ Ψ : UUᵉ ℓS} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(c2-small : RelFunext.is-cofib-2LTT i 𝓤)
(c2-large : RelFunext.is-cofib-2LTT i (lsuc 𝓤))
(cofΦ-small : isCofibrant Φ 𝓤)
(cofΦ-large : isCofibrant Φ (lsuc 𝓤)) →
Corollary55.Corollary55 i (pr1ᵉ c2-small) (pr1ᵉ c2-large)
cofΦ-small cofΦ-large
Corollary-5-5 = Corollary55.univalence-gives-homotopy-form
Definition-5-6
: (ℓI 𝓤 : Level) → UUᵉ (lsuc ℓI ⊔ lsuc 𝓤)
Definition-5-6 = Conservativity.PathInterval
Definition-5-6-presentation
: (ℓI 𝓤 : Level) → UUᵉ (lsuc (ℓI ⊔ 𝓤))
Definition-5-6-presentation = Conservativity.PathPresentation
Definition-5-6-aligned
: (ℓI 𝓤 : Level) → UUᵉ (lsuc ℓI ⊔ lsuc (lsuc 𝓤))
Definition-5-6-aligned = CoercionLaws.PathStructure
Definition-5-6-bridge
: {ℓI 𝓤 : Level} (𝕀 : Definition-5-6 ℓI (lsuc 𝓤)) →
Definition-5-6-aligned ℓI 𝓤
Definition-5-6-bridge = Conservativity.PathInterval-to-PathStructure
Lemma-5-8-coe
: {ℓI 𝓤 : Level} (𝕀 : Definition-5-6 ℓI (lsuc 𝓤)) →
CoercionLawsNamed.CoercionPackage
(Definition-5-6-bridge 𝕀)
Lemma-5-8-coe 𝕀 = CoercionLawsNamed.coercion-package
(Conservativity.PathInterval-to-PathStructure 𝕀)
Lemma-5-8-coe-structure
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤) →
CoercionLawsNamed.CoercionPackage P
Lemma-5-8-coe-structure = CoercionLawsNamed.coercion-package
Lemma-5-8-c1
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤)
(G : CoercionLaws.PathStructure.I P → UU 𝓤) (x : G (CoercionLaws.PathStructure.0I P)) →
Id (CoercionLawsNamed.coe P G x) (pr1 (idtoeqv (CoercionLawsNamed.path-univ P G)) x)
Lemma-5-8-c1 = CoercionLawsNamed.coercion-law-c1
Lemma-5-8-c2
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤)
(G H : CoercionLaws.PathStructure.I P → UU 𝓤)
(θ : (t : CoercionLaws.PathStructure.I P) → G t → H t)
(x : G (CoercionLaws.PathStructure.0I P)) →
Id (θ (CoercionLaws.PathStructure.1I P) (CoercionLawsNamed.coe P G x))
(CoercionLawsNamed.coe P H (θ (CoercionLaws.PathStructure.0I P) x))
Lemma-5-8-c2 = CoercionLawsNamed.coercion-law-c2
Lemma-5-8-c3
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤) (Y : UU 𝓤) (x : Y) →
Id (CoercionLawsNamed.coe P (λ _ → Y) x) x
Lemma-5-8-c3 = CoercionLawsNamed.coercion-law-c3
Remark-5-9
: {ℓI : Level} (𝕀 : UU ℓI) (a₀ a₁ : 𝕀) (𝓤 : Level) (seg : Id a₀ a₁) →
Definition-5-6-aligned ℓI 𝓤
Remark-5-9 = WeakGlueUAFibrant.fibrant-path-structure
Lemma-5-10
: {𝓤 : Level} (s : (A B : UU 𝓤) → A ≃ B → Id A B) →
((A B : UU 𝓤) (g : A ≃ B) → Id (idtoeqv (s A B g)) g) → (A B : UU 𝓤) → isEquiv idtoeqv
Lemma-5-10 = UAFromSection.ua-from-section
Definition-5-11
: {ℓI : Level} (I : UUᵉ ℓI) (0I 1I : I) (𝓤 : Level) → UUᵉ (ℓI ⊔ lsuc 𝓤)
Definition-5-11 = GlueRules.WeakGlue
Remark-5-12
: {ℓI : Level} (I : UUᵉ ℓI) (0I 1I : I) (𝓤 : Level) →
Univalence.Univalence 𝓤 → Definition-5-11 I 0I 1I 𝓤
Remark-5-12 = GlueRules.ua-gives-weak-glue
Lemma-5-13-i
: {ℓφ ℓΨ ℓI : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ}
(i : Φ → Ψ) (I : UUᵉ ℓI) (i∂ : ⊤ᵉ +ᵉ ⊤ᵉ → I) (𝓤 : Level)
(c2 : RelFunext.is-cofib-2LTT i (lsuc 𝓤))
(c2∂ : RelFunext.is-cofib-2LTT i∂ (lsuc 𝓤)) →
(Definition-5-2 i 𝓤 (pr1ᵉ c2) →
Definition-4-3-data i 𝓤)
×ᵉ
(Definition-4-3-has-homotopy i∂ 𝓤 →
Definition-5-11 I (i∂ (inlᵉ starᵉ)) (i∂ (inrᵉ starᵉ)) 𝓤)
Lemma-5-13-i i I i∂ 𝓤 c2 _ =
GlueDataFibrant.strong-to-strict i 𝓤 (pr1ᵉ c2) ,ᵉ
GlueStrengthChain3.strength-chain-3 I i∂ 𝓤
Lemma-5-13-i-contractible-to-structure
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level)
(c2 : RelFunext.is-cofib-2LTT i (lsuc 𝓤)) →
Definition-5-2 i 𝓤 (pr1ᵉ c2) →
Definition-4-3-data i 𝓤
Lemma-5-13-i-contractible-to-structure i 𝓤 c2 =
GlueDataFibrant.strong-to-strict i 𝓤 (pr1ᵉ c2)
Lemma-5-13-ii
: {ℓφ ℓΨ : Level} {Φ : UUᵉ ℓφ} {Ψ : UUᵉ ℓΨ} (i : Φ → Ψ) (𝓤 : Level) (A : Ψ → UU 𝓤)
(T : Φ → UU 𝓤) (e : (φ : Φ) → C (T φ ≃ A (i φ))) (out : Definition-4-3-output i 𝓤 A T e) →
Definition-4-3-strict-coh i 𝓤 A T e out →
Definition-4-3-homotopy-coh i 𝓤 A T e out
Lemma-5-13-ii = GlueStructure.strict-coh-to-homotopy-coh
Lemma-5-13-iii
: {ℓI : Level} (I : UUᵉ ℓI) (i∂ : ⊤ᵉ +ᵉ ⊤ᵉ → I) (𝓤 : Level)
(hcg : Definition-4-3-has-homotopy i∂ 𝓤) →
Definition-5-11 I (i∂ (inlᵉ starᵉ)) (i∂ (inrᵉ starᵉ)) 𝓤
Lemma-5-13-iii = GlueStrengthChain3.strength-chain-3
Theorem-5-14-from-laws
: {ℓI : Level} (I : UUᵉ ℓI) (0I 1I : I) (𝓤 : Level) (coe : (G : I → UU 𝓤) → G 0I → G 1I)
(path-univ : (G : I → UU 𝓤) → Id (G 0I) (G 1I))
(c1 : (G : I → UU 𝓤) (x : G 0I) → Id (coe G x) (pr1 (idtoeqv (path-univ G)) x))
(c2 : (G H : I → UU 𝓤) (θ : (t : I) → G t → H t) (x : G 0I) →
Id (θ 1I (coe G x)) (coe H (θ 0I x))) (c3 : (Y : UU 𝓤) (x : Y) → Id (coe (λ _ → Y) x) x) →
Definition-5-11 I 0I 1I 𝓤 → (A B : UU 𝓤) → isEquiv idtoeqv
Theorem-5-14-from-laws = WeakGlueUA.weak-glue-implies-ua
Theorem-5-14
: {ℓI 𝓤 : Level}
(P : Definition-5-6-presentation ℓI (lsuc 𝓤)) →
Definition-5-11
(Conservativity.PathPresentation.shape P)
(Conservativity.PathPresentation.point0 P)
(Conservativity.PathPresentation.point1 P) 𝓤 →
Univalence.Univalence 𝓤
Theorem-5-14 P = CoercionLaws.general-weak-glue-implies-ua
(Conservativity.PathPresentation-to-PathStructure P)
Theorem-5-14-structure
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤) →
Definition-5-11 (CoercionLaws.PathStructure.I P)
(CoercionLaws.PathStructure.0I P)
(CoercionLaws.PathStructure.1I P) 𝓤 →
Univalence.Univalence 𝓤
Theorem-5-14-structure = CoercionLaws.general-weak-glue-implies-ua
Theorem-5-15-three-node-fibrant
: {ℓI : Level} (𝕀 : UU ℓI) (a₀ a₁ : 𝕀) (𝓤 : Level) (seg : Id a₀ a₁)
(cof : CofibFibration.is-cofib (GlueSandwichComplete.i∂ 𝕀 a₀ a₁) (lsuc 𝓤))
(triv : Definition-3-9 cof) →
(GlueSandwichComplete.Cond1 𝕀 a₀ a₁ 𝓤 seg cof triv →
GlueSandwichComplete.Cond4 𝕀 a₀ a₁ 𝓤 seg cof triv) ×ᵉ
((GlueSandwichComplete.Cond4 𝕀 a₀ a₁ 𝓤 seg cof triv →
GlueSandwichComplete.Cond5 𝕀 a₀ a₁ 𝓤 seg cof triv) ×ᵉ
(GlueSandwichComplete.Cond5 𝕀 a₀ a₁ 𝓤 seg cof triv →
GlueSandwichComplete.Cond1 𝕀 a₀ a₁ 𝓤 seg cof triv))
Theorem-5-15-three-node-fibrant = GlueSandwichComplete.glue-sandwich
Theorem-5-15-three-node-general
: {ℓI 𝓤 : Level} (P : Definition-5-6-aligned ℓI 𝓤)
(cof : CofibFibration.is-cofib (GlueSandwichGeneral.i∂ P) (lsuc 𝓤))
(triv : Definition-3-9 cof) →
(GlueSandwichGeneral.Cond1 P cof triv → GlueSandwichGeneral.Cond4 P cof triv) ×ᵉ
((GlueSandwichGeneral.Cond4 P cof triv → GlueSandwichGeneral.Cond5 P cof triv) ×ᵉ
(GlueSandwichGeneral.Cond5 P cof triv → GlueSandwichGeneral.Cond1 P cof triv))
Theorem-5-15-three-node-general = GlueSandwichGeneral.glue-sandwich
Theorem-5-15-fibrant
: {ℓI 𝓤 : Level} (𝕀 : Definition-5-6 ℓI (lsuc 𝓤)) →
GlueSandwichFull.ExactPathInterval.ExactFiveNodeCycle 𝕀
Theorem-5-15-fibrant =
GlueSandwichFull.ExactPathInterval.exact-five-node-cycle
Theorem-5-15-general
: {ℓI 𝓤' : Level} (P : Definition-5-6-aligned ℓI 𝓤')
(cof : CofibFibration.is-cofib (GlueSandwichGeneral.i∂ P) (lsuc 𝓤'))
(triv : Definition-3-9 cof) →
GlueSandwichFull.GeneralInterval.ExactFiveNodeCycle P cof triv
Theorem-5-15-general =
GlueSandwichFull.GeneralInterval.exact-five-node-cycle
Theorem-5-15-any-cofibration
: {ℓΦ ℓΨ : Level} (𝓤 : Level) {Φ : UUᵉ ℓΦ} {Ψ : UUᵉ ℓΨ} {i : Φ → Ψ}
(U : Univalence.Univalence 𝓤)
(c2 : RelFunext.is-cofib-2LTT i (lsuc 𝓤)) →
Definition-5-2 i 𝓤 (pr1ᵉ c2)
Theorem-5-15-any-cofibration = GlueSandwichFull.strong-glue-any-cofibration
CubicalPath-is-Ext
: {ℓI 𝓤 : Level} → Definition-5-6 ℓI 𝓤 → (Y : UU 𝓤) → C Y → C Y → UUᵉ (ℓI ⊔ 𝓤)
CubicalPath-is-Ext = Conservativity.CubicalPath
fibrant-shape-weak-glue-is-ua
: {ℓI : Level} (𝕀 : UU ℓI) (a₀ a₁ : 𝕀) (𝓤 : Level) (seg : Id a₀ a₁) →
(Univalence.Univalence 𝓤 → Definition-5-11 (C 𝕀) (c a₀) (c a₁) 𝓤) ×ᵉ
(Definition-5-11 (C 𝕀) (c a₀) (c a₁) 𝓤 → Univalence.Univalence 𝓤)
fibrant-shape-weak-glue-is-ua 𝕀 a₀ a₁ 𝓤 seg =
GlueRules.ua-gives-weak-glue (C 𝕀) (c a₀) (c a₁) 𝓤 ,ᵉ
WeakGlueUAFibrant.fibrant-weak-glue-implies-ua 𝕀 a₀ a₁ 𝓤 seg
fibrant-shape-weak-glue-is-ua-composite
: {ℓI : Level} (𝕀 : UU ℓI) (a₀ a₁ : 𝕀) (𝓤 : Level) (seg : Id a₀ a₁) →
Definition-4-3-has-homotopy (GlueSandwichFibrant.i∂ 𝕀 a₀ a₁ 𝓤 seg) 𝓤 →
(A B : UU 𝓤) →
isEquiv idtoeqv
fibrant-shape-weak-glue-is-ua-composite = GlueSandwichFibrant.htpy-coherent-glue-implies-ua