{-# OPTIONS --without-K --exact-split --two-level #-}
module Extension.GlueSandwichFull where
open import Extension.Prelude
open import Extension.CofibFibration using (is-cofib)
open import Extension.RelFunext using (satisfies-rel-funext ; is-cofib-2LTT)
open import Extension.Univalence using (Univalence)
open import Extension.GlueStructure
using (has-strictly-coherent-glue ; has-homotopy-coherent-glue ;
strict-coh-to-homotopy-coh)
open import Extension.GlueDataFibrant
using (has-strong-glue-structure ; strong-to-strict)
open import Extension.GlueRules using (WeakGlue)
open import Extension.GlueSandwich using (ua-strong-glue)
open import Extension.GlueStrengthChain3 using (strength-chain-3)
open import Extension.WeakGlueUAFibrant using (fibrant-weak-glue-implies-ua)
open import Extension.CoercionLaws
using (PathStructure ; general-weak-glue-implies-ua)
import Extension.Conservativity as PathIntervalDef
open import Extension.GlueSandwichComplete using () renaming (iโ to iโ-fib)
open import Extension.GlueSandwichGeneral using () renaming (iโ to iโ-path)
private
variable
โI ๐ค' : Level
strong-glue-any-cofibration :
{โฮฆ โฮจ : Level} (๐ค : Level) {ฮฆ : UUแต โฮฆ} {ฮจ : UUแต โฮจ} {i : ฮฆ โ ฮจ}
(U : Univalence ๐ค)
(c2 : is-cofib-2LTT i (lsuc ๐ค))
โ has-strong-glue-structure i ๐ค (pr1แต c2)
strong-glue-any-cofibration ๐ค U c2 = ua-strong-glue U (pr1แต c2) (pr2แต c2)
AllStrongGlue : (๐ค : Level) โ SSetฯ
AllStrongGlue ๐ค =
{โฮฆ โฮจ : Level} {ฮฆ : UUแต โฮฆ} {ฮจ : UUแต โฮจ} {i : ฮฆ โ ฮจ} โ
(c2 : is-cofib-2LTT i (lsuc ๐ค)) โ
has-strong-glue-structure i ๐ค (pr1แต c2)
module FibrantInterval
(๐ : UU โI) (aโ aโ : ๐) (๐ค : Level) (seg : Id aโ aโ)
(cof : is-cofib (iโ-fib ๐ aโ aโ) (lsuc ๐ค))
(triv : satisfies-rel-funext cof)
where
Cond1 : UU (lsuc ๐ค)
Cond1 = (A B : UU ๐ค) โ isEquiv (idtoeqv {A = A} {B = B})
Cond2 : UUแต (lsuc (โI โ lsuc ๐ค))
Cond2 = {ฮฆ ฮจ : UUแต โI} (i : ฮฆ โ ฮจ) (c2 : is-cofib-2LTT i (lsuc ๐ค))
โ has-strong-glue-structure i ๐ค (pr1แต c2)
Cond3 : UUแต (โI โ lsuc ๐ค)
Cond3 = has-strong-glue-structure (iโ-fib ๐ aโ aโ) ๐ค cof
Cond4 : UUแต (โI โ lsuc ๐ค)
Cond4 = has-strictly-coherent-glue (iโ-fib ๐ aโ aโ) ๐ค
Cond5 : UUแต (โI โ lsuc ๐ค)
Cond5 = WeakGlue (C ๐) (c aโ) (c aโ) ๐ค
1โ2 : Cond1 โ Cond2
1โ2 U i c2 = ua-strong-glue U (pr1แต c2) (pr2แต c2)
2โ3 : Cond2 โ Cond3
2โ3 s2 = s2 (iโ-fib ๐ aโ aโ) (cof ,แต triv)
3โ4 : Cond3 โ Cond4
3โ4 = strong-to-strict (iโ-fib ๐ aโ aโ) ๐ค cof
4โ5 : Cond4 โ Cond5
4โ5 scg = strength-chain-3 (C ๐) (iโ-fib ๐ aโ aโ) ๐ค hcg
where
hcg : has-homotopy-coherent-glue (iโ-fib ๐ aโ aโ) ๐ค
hcg A T e =
pr1แต gd ,แต
strict-coh-to-homotopy-coh (iโ-fib ๐ aโ aโ) ๐ค A T e (pr1แต gd) (pr2แต gd)
where
gd = scg A T e
5โ1 : Cond5 โ Cond1
5โ1 = fibrant-weak-glue-implies-ua ๐ aโ aโ ๐ค seg
glue-sandwich-full :
(Cond1 โ Cond2)
รแต ((Cond2 โ Cond3)
รแต ((Cond3 โ Cond4)
รแต ((Cond4 โ Cond5)
รแต (Cond5 โ Cond1))))
glue-sandwich-full = 1โ2 ,แต (2โ3 ,แต (3โ4 ,แต (4โ5 ,แต 5โ1)))
record ExactFiveNodeCycle : SSetฯ where
field
univalence-to-all : Cond1 โ AllStrongGlue ๐ค
all-to-boundary : AllStrongGlue ๐ค โ Cond3
boundary-to-structure : Cond3 โ Cond4
structure-to-weak : Cond4 โ Cond5
weak-to-univalence : Cond5 โ Cond1
exact-five-node-cycle : ExactFiveNodeCycle
exact-five-node-cycle = record
{ univalence-to-all = ฮป U {โฮฆ} {โฮจ} {ฮฆ} {ฮจ} {i} c2 โ
strong-glue-any-cofibration ๐ค {ฮฆ = ฮฆ} {ฮจ = ฮจ} {i = i} U c2
; all-to-boundary = ฮป all โ
all (cof ,แต triv)
; boundary-to-structure = 3โ4
; structure-to-weak = 4โ5
; weak-to-univalence = 5โ1
}
module GeneralInterval
(P : PathStructure โI ๐ค')
(cof : is-cofib (iโ-path P) (lsuc ๐ค'))
(triv : satisfies-rel-funext cof)
where
Cond1 : UU (lsuc ๐ค')
Cond1 = (A B : UU ๐ค') โ isEquiv (idtoeqv {A = A} {B = B})
Cond2 : UUแต (lsuc (โI โ lsuc ๐ค'))
Cond2 = {ฮฆ ฮจ : UUแต โI} (i : ฮฆ โ ฮจ) (c2 : is-cofib-2LTT i (lsuc ๐ค'))
โ has-strong-glue-structure i ๐ค' (pr1แต c2)
Cond3 : UUแต (โI โ lsuc ๐ค')
Cond3 = has-strong-glue-structure (iโ-path P) ๐ค' cof
Cond4 : UUแต (โI โ lsuc ๐ค')
Cond4 = has-strictly-coherent-glue (iโ-path P) ๐ค'
Cond5 : UUแต (โI โ lsuc ๐ค')
Cond5 = WeakGlue (PathStructure.I P) (PathStructure.0I P) (PathStructure.1I P) ๐ค'
1โ2 : Cond1 โ Cond2
1โ2 U i c2 = ua-strong-glue U (pr1แต c2) (pr2แต c2)
2โ3 : Cond2 โ Cond3
2โ3 s2 = s2 (iโ-path P) (cof ,แต triv)
3โ4 : Cond3 โ Cond4
3โ4 = strong-to-strict (iโ-path P) ๐ค' cof
4โ5 : Cond4 โ Cond5
4โ5 scg = strength-chain-3 (PathStructure.I P) (iโ-path P) ๐ค' hcg
where
hcg : has-homotopy-coherent-glue (iโ-path P) ๐ค'
hcg A T e =
pr1แต gd ,แต
strict-coh-to-homotopy-coh (iโ-path P) ๐ค' A T e (pr1แต gd) (pr2แต gd)
where
gd = scg A T e
5โ1 : Cond5 โ Cond1
5โ1 = general-weak-glue-implies-ua P
glue-sandwich-full :
(Cond1 โ Cond2)
รแต ((Cond2 โ Cond3)
รแต ((Cond3 โ Cond4)
รแต ((Cond4 โ Cond5)
รแต (Cond5 โ Cond1))))
glue-sandwich-full = 1โ2 ,แต (2โ3 ,แต (3โ4 ,แต (4โ5 ,แต 5โ1)))
record ExactFiveNodeCycle : SSetฯ where
field
univalence-to-all : Cond1 โ AllStrongGlue ๐ค'
all-to-boundary : AllStrongGlue ๐ค' โ Cond3
boundary-to-structure : Cond3 โ Cond4
structure-to-weak : Cond4 โ Cond5
weak-to-univalence : Cond5 โ Cond1
exact-five-node-cycle : ExactFiveNodeCycle
exact-five-node-cycle = record
{ univalence-to-all = ฮป U {โฮฆ} {โฮจ} {ฮฆ} {ฮจ} {i} c2 โ
strong-glue-any-cofibration ๐ค' {ฮฆ = ฮฆ} {ฮจ = ฮจ} {i = i} U c2
; all-to-boundary = ฮป all โ
all (cof ,แต triv)
; boundary-to-structure = 3โ4
; structure-to-weak = 4โ5
; weak-to-univalence = 5โ1
}
module ExactPathInterval
(๐ : PathIntervalDef.PathInterval โI (lsuc ๐ค')) where
private
c2 = PathIntervalDef.iโ-cofib ๐
cof = pr1แต c2
triv = pr2แต c2
iโ = PathIntervalDef.iโ ๐
P = PathIntervalDef.PathInterval-to-PathStructure ๐
Cond1 : UU (lsuc ๐ค')
Cond1 = Univalence ๐ค'
Cond3 : UUแต (โI โ lsuc ๐ค')
Cond3 = has-strong-glue-structure iโ ๐ค' cof
Cond4 : UUแต (โI โ lsuc ๐ค')
Cond4 = has-strictly-coherent-glue iโ ๐ค'
Cond5 : UUแต (โI โ lsuc ๐ค')
Cond5 = WeakGlue (PathIntervalDef.I ๐)
(PathIntervalDef.0I ๐) (PathIntervalDef.1I ๐) ๐ค'
3โ4 : Cond3 โ Cond4
3โ4 = strong-to-strict iโ ๐ค' cof
4โ5 : Cond4 โ Cond5
4โ5 scg = strength-chain-3 (PathIntervalDef.I ๐) iโ ๐ค' hcg
where
hcg : has-homotopy-coherent-glue iโ ๐ค'
hcg A T e =
pr1แต gd ,แต
strict-coh-to-homotopy-coh iโ ๐ค' A T e (pr1แต gd) (pr2แต gd)
where
gd = scg A T e
5โ1 : Cond5 โ Cond1
5โ1 = general-weak-glue-implies-ua P
record ExactFiveNodeCycle : SSetฯ where
field
univalence-to-all : Cond1 โ AllStrongGlue ๐ค'
all-to-boundary : AllStrongGlue ๐ค' โ Cond3
boundary-to-structure : Cond3 โ Cond4
structure-to-weak : Cond4 โ Cond5
weak-to-univalence : Cond5 โ Cond1
exact-five-node-cycle : ExactFiveNodeCycle
exact-five-node-cycle = record
{ univalence-to-all = ฮป U {โฮฆ} {โฮจ} {ฮฆ} {ฮจ} {i} c2' โ
strong-glue-any-cofibration ๐ค' {ฮฆ = ฮฆ} {ฮจ = ฮจ} {i = i} U c2'
; all-to-boundary = ฮป all โ all c2
; boundary-to-structure = 3โ4
; structure-to-weak = 4โ5
; weak-to-univalence = 5โ1
}