{-# OPTIONS --without-K --exact-split --two-level #-}
--------------------------------------------------------------------------------
-- Theorem 5.15, the complete cycle, for a fibrant interval.
--
-- For a fibrant interval I = C π with segment seg : aβ = aβ and boundary
-- inclusion iβ a full 2LTT cofibration, the fibration half `cof` plus the
-- trivial half `triv` (relative funext); no cofibrancy of I or βI is assumed,
-- the following are inter-derivable:
--
-- (1) π€ is univalent [Cond1];
-- (4) a homotopy coherent Glue structure for (iβ, π€) [Cond4];
-- (5) a weak Glue structure for (I, 0, 1, π€) [Cond5].
--
-- with the cyclic implications (1)β(4)β(5)β(1):
-- 1β4 `GlueSandwich.ua-homotopy-coherent-glue`, (1)β(2)β(3)β(4): univalence
-- gives the strong Glue data (Theorem 5.4 via
-- Lemma 5.1), whose centre is a strictly coherent output,
-- coerced to homotopy coherence (Lemma 5.13(1),(2));
-- 4β5 `GlueStrengthChain3.strength-chain-3` (Lemma 5.13(3));
-- 5β1 `WeakGlueUAFibrant.fibrant-weak-glue-implies-ua` (Theorem 5.14).
--
-- The intermediate strong-Glue conditions are compressed into 1β4. That map
-- consumes its Cond1 argument explicitly; 5β1 constructs a new univalence
-- witness from weak Glue.
--------------------------------------------------------------------------------
module Extension.GlueSandwichComplete where
open import Extension.Prelude
open import Extension.CofibFibration using (is-cofib)
open import Extension.RelFunext using (satisfies-rel-funext)
open import Extension.GlueStructure using (has-homotopy-coherent-glue)
open import Extension.GlueRules using (WeakGlue)
open import Extension.GlueSandwich using (ua-homotopy-coherent-glue)
open import Extension.GlueStrengthChain3 using (strength-chain-3)
open import Extension.WeakGlueUAFibrant using (fibrant-weak-glue-implies-ua)
private
variable
βI : Level
-- Boundary inclusion of a fibrant interval I = C π, 0 = c aβ, 1 = c aβ.
iβ : (π : UU βI) (aβ aβ : π) β (β€α΅ {βI} +α΅ β€α΅ {βI}) β C π
iβ π aβ aβ (inlα΅ _) = c aβ
iβ π aβ aβ (inrα΅ _) = c aβ
module _ (π : UU βI) (aβ aβ : π) (π€ : Level) (seg : Id aβ aβ)
(cof : is-cofib (iβ π aβ aβ) (lsuc π€))
(triv : satisfies-rel-funext cof)
where
-- The three conditions.
Cond1 : UU (lsuc π€)
Cond1 = (A B : UU π€) β isEquiv (idtoeqv {A = A} {B = B})
Cond4 : UUα΅ (lsuc π€ β βI)
Cond4 = has-homotopy-coherent-glue (iβ π aβ aβ) π€
Cond5 : UUα΅ (βI β lsuc π€)
Cond5 = WeakGlue (C π) (c aβ) (c aβ) π€
-- (1)β(2)β(3)β(4).
1β4 : Cond1 β Cond4
1β4 U = ua-homotopy-coherent-glue U cof triv
-- (4)β(5).
4β5 : Cond4 β Cond5
4β5 hcg = strength-chain-3 (C π) (iβ π aβ aβ) π€ hcg
-- (5)β(1).
5β1 : Cond5 β Cond1
5β1 = fibrant-weak-glue-implies-ua π aβ aβ π€ seg
-- The complete cycle: the three conditions are equivalent. In particular,
-- univalence round-trips through the gluing conditions.
glue-sandwich : (Cond1 β Cond4) Γα΅ ((Cond4 β Cond5) Γα΅ (Cond5 β Cond1))
glue-sandwich = 1β4 ,α΅ (4β5 ,α΅ 5β1)