{-# OPTIONS --without-K --exact-split --two-level #-}
--------------------------------------------------------------------------------
-- Theorem 5.15, the (4)β(5)β(1) fragment, for a fibrant interval.
--
-- For a fibrant interval I = C π with points c aβ, c aβ and segment
-- seg : aβ = aβ, the boundary inclusion iβ : βI β I, and any universe π€:
--
-- a homotopy coherent Glue structure for (iβ, π€) βΉ π€ is univalent.
--
-- This composes the two pieces:
-- * Lemma 5.13(3) (`GlueStrengthChain3.strength-chain-3`):
-- a homotopy coherent Glue structure yields a weak Glue structure;
-- * Theorem 5.14 for a fibrant interval
-- (`WeakGlueUAFibrant.fibrant-weak-glue-implies-ua`):
-- a weak Glue structure implies univalence.
-- Together with `UAStrongGlue.ua-implies-strong-glue` (the (1)ββ¦ direction) and
-- `GlueRules.ua-gives-weak-glue`, this closes the equivalence of univalence with
-- (homotopy-coherent / weak) gluing over a fibrant interval, modulo the encoding
-- Lemma 5.1 that identifies the strong Glue data with the extension
-- type (which links this to the strict-coherent form of the sandwich).
--------------------------------------------------------------------------------
module Extension.GlueSandwichFibrant where
open import Extension.Prelude
open import Extension.GlueStructure using (has-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
module _ (π : UU βI) (aβ aβ : π) (π€ : Level) (seg : Id aβ aβ) where
-- public: part of the statement of `htpy-coherent-glue-implies-ua`
-- (referenced by the paper index src/index.agda)
iβ : (β€α΅ {βI} +α΅ β€α΅ {βI}) β C π
iβ (inlα΅ _) = c aβ
iβ (inrα΅ _) = c aβ
htpy-coherent-glue-implies-ua :
has-homotopy-coherent-glue iβ π€
β (A B : UU π€) β isEquiv (idtoeqv {A = A} {B = B})
htpy-coherent-glue-implies-ua hcg =
fibrant-weak-glue-implies-ua π aβ aβ π€ seg
(strength-chain-3 (C π) iβ π€ hcg)