{-# OPTIONS --without-K --exact-split --two-level #-}
module Extension.GlueSandwichGeneral 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.CoercionLaws using (PathStructure ; general-weak-glue-implies-ua)
private
variable
βI π€ : Level
iβ : (P : PathStructure βI π€) β (β€α΅ {βI} +α΅ β€α΅ {βI}) β PathStructure.I P
iβ P (inlα΅ _) = PathStructure.0I P
iβ P (inrα΅ _) = PathStructure.1I P
module _ (P : PathStructure βI π€)
(cof : is-cofib (iβ P) (lsuc π€))
(triv : satisfies-rel-funext cof)
where
Cond1 : UU (lsuc π€)
Cond1 = (A B : UU π€) β isEquiv (idtoeqv {A = A} {B = B})
Cond4 : UUα΅ (lsuc π€ β βI)
Cond4 = has-homotopy-coherent-glue (iβ P) π€
Cond5 : UUα΅ (βI β lsuc π€)
Cond5 = WeakGlue (PathStructure.I P) (PathStructure.0I P) (PathStructure.1I P) π€
1β4 : Cond1 β Cond4
1β4 U = ua-homotopy-coherent-glue U cof triv
4β5 : Cond4 β Cond5
4β5 hcg = strength-chain-3 (PathStructure.I P) (iβ P) π€ hcg
5β1 : Cond5 β Cond1
5β1 = general-weak-glue-implies-ua P
glue-sandwich : (Cond1 β Cond4) Γα΅ ((Cond4 β Cond5) Γα΅ (Cond5 β Cond1))
glue-sandwich = 1β4 ,α΅ (4β5 ,α΅ 5β1)