{-# OPTIONS --postfix-projections --prop --rewriting #-}
module AcyclicTwoLevel-Id where
open import Agda.Primitive
open import Lib
open import Fam as _
open import Id as _
open import Id-Tele as _
open import Id-Misc as _
open import Id-Acyclic as _
open import Pi as _
open import Pi-Tele as _
open import TwoLevel
open import Quotient
open import Cong
open import AcyclicTwoLevel
module _ {i j} (C : TwoLevelFam {i} {j}) (IsAcyclic-C : IsAcyclic C) where
open IsAcyclic IsAcyclic-C
private
module C = TwoLevelFam C
open Id-Tele-r C.Outer
open IsAcyclic-Cong C IsAcyclic-C
module CPi = Pi-StrictBeta C.OuterPi
module IC = Fam C.Inner
module CC = Fam (C.Outer ∗ C.Outer)
module CCId = IdM (C.Outer ∗ C.Outer) ⦃ CId-Elim-C = cheat ⦄ _
module CCC = Fam ((C.Outer ∗ C.Outer) ∗ C.Outer)
module CCCId = IdM ((C.Outer ∗ C.Outer) ∗ C.Outer) ⦃ CId-Elim-C = cheat ⦄ _
module CCCC = Fam (((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer)
module CCCCId = IdM (((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ⦃ CId-Elim-C = cheat ⦄ _
module CCCCC = Fam ((((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer)
module CCCCCId = IdM ((((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ⦃ CId-Elim-C = cheat ⦄ _
module CCCCCC = Fam (((((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer)
module CCCCCCId = IdM (((((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ⦃ CId-Elim-C = cheat ⦄ _
module CCCId-Elim-C = Id-ElimM ((C.Outer ∗ C.Outer) ∗ C.Outer) C.Outer ⦃ CId-Elim-C = cheat ⦄ ⦃ CId-Elim-D = cheat ⦄ ⦃ DId-Elim-D = cheat ⦄ _
module CCCCCCId-Elim-CC = Id-ElimM (((((C.Outer ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) ∗ C.Outer) (C.Outer ∗ C.Outer)
⦃ CId-Elim-C = cheat ⦄ ⦃ CId-Elim-D = cheat ⦄ ⦃ DId-Elim-D = cheat ⦄ _
private
postulate cpi : Pi-StrictBeta C.Inner C.Outer
module cpi = Pi-StrictBeta cpi
{-# REWRITE cpi.app-βₛ #-}
module _ ⦃ ICId : Id-Intro C.Inner ⦄ where
private
module ICId = Id-Intro ICId
C~-Id-Intro : Cong-Id-Intro C~
C~-Id-Intro .Cong-Id-Intro.Id~ {A₁} {A₂} {x₁} {x₂} {y₁} {y₂} ∣ A~ ∣ ∣ x~ ∣ ∣ y~ ∣
= ∣ CCCId-Elim-C.ap {A = T₃} (λ ((A , x) , y) → ICId.Id {A} x y) p₃ ∣
where T₂ : CC.Ty
T₂ = C.ty , C.tm
p₂ : CC.Tm (CCId.Id {A = T₂} (A₁ , x₁) (A₂ , x₂))
p₂ = x~
T₃ : CCC.Ty
T₃ = (C.ty , C.tm) , λ (A , _) → C.tm A
p₃ : CCC.Tm (CCCId.Id {A = T₃} ((A₁ , x₁) , y₁) ((A₂ , x₂) , y₂))
p₃ = JM.baseChange↑ (λ (A , x) → A) _ p₂ y~
C~-Id-Intro .Cong-Id-Intro.idp~ ∣ A~ ∣ ∣ x~ ∣
= ∣ CCId.ap {A = C.ty , C.tm} (λ (A , x) → _ , ICId.idp {A} {x}) x~ ∣