{-# OPTIONS --without-K --prop --rewriting --confluence-check --postfix-projections #-} module TT.Isomorphism where open import TT.Lib import TT.CwF.Syntax as CwF import TT.SSC.Syntax as SSC import TT.SSC.Parallel as SSC open import TT.SSC-CwF open import TT.CwF-SSC open import TT.SSC-CwF-SSC open import TT.CwF-SSC-CwF open Iso private variable i : ℕ Γ Δ : SSC.Con A : SSC.Ty Γ i isoᶜ : Iso SSC.Con CwF.Con isoᶜ .to = S→Cᶜ isoᶜ .from = C→Sᶜ isoᶜ .invl = S→C→Sᶜ isoᶜ .invr = C→S→Cᶜ isoᵀ : Iso (SSC.Ty Γ i) (CwF.Ty (S→Cᶜ Γ) i) isoᵀ .to = S→Cᵀ isoᵀ .from A = coe (SSC.ap-Ty S→C→Sᶜ) (C→Sᵀ A) isoᵀ .invl = S→C→Sᵀ isoᵀ .invr = C→S→Cᵀ isoᵗ : Iso (SSC.Tm Γ A) (CwF.Tm (S→Cᶜ Γ) (S→Cᵀ A)) isoᵗ .to = S→Cᵗ isoᵗ .from a = coe (SSC.ap-Tm₂ S→C→Sᶜ S→C→Sᵀ) (C→Sᵗ a) isoᵗ .invl = S→C→Sᵗ isoᵗ .invr = C→S→Cᵗ isoˢ : Iso (SSC.Tms Δ Γ) (CwF.Sub (S→Cᶜ Δ) (S→Cᶜ Γ)) isoˢ .to = T→C isoˢ .from γ = coe (SSC.ap-Tms S→C→Sᶜ S→C→Sᶜ) (C→T γ) isoˢ .invl = T→C→T isoˢ .invr = undep (apᵈ-T→C (sym S→C→Sᶜ) (sym S→C→Sᶜ) (splitl reflᵈ) ∙ᵈ C→T→C)