{-# OPTIONS
--without-K
--prop
--rewriting
--confluence-check
--postfix-projections
#-}
module TT.SSC.Standard where
open import TT.Lib
open import TT.IRUniv
open import TT.SSC.Ind
open DM
open DModel
opaque
unfolding coe
M : DModel
M .sorts .Conᴹ _ = Uω
M .sorts .Subᴹ Δ Γ _ = Elω Δ → Elω Γ
M .sorts .Tyᴹ Γ i _ = Elω Γ → U i
M .sorts .Tmᴹ Γ A _ = (γ : Elω Γ) → El (A γ)
M .core ._[_]ᵀᴹ A γ δ = A (γ δ)
M .core ._[_]ᵗᴹ a γ δ = a (γ δ)
M .core .◇ᴹ = `⊤
M .core ._▹ᴹ_ Γ A = `Σ Γ λ γ → base (`Lift (A γ))
M .core .pᴹ (γ ,, a) = γ
M .core .qᴹ (γ ,, a) = a
M .core ._⁺ᴹ γ (δ ,, a) = γ δ ,, a
M .core .p-⁺ᵀᴹ = refl
M .core .p-⁺ᵗᴹ = refl
M .core .q-⁺ᴹ = refl
M .core .⟨_⟩ᴹ a γ = γ ,, a γ
M .core .p-⟨⟩ᵀᴹ = refl
M .core .p-⟨⟩ᵗᴹ = refl
M .core .q-⟨⟩ᴹ = refl
M .core .⟨⟩-[]ᵀᴹ = refl
M .core .▹-ηᵀᴹ = refl
M .types .Uᴹ i γ = base `U
M .types .U-[]ᴹ = refl
M .types .Elᴹ A γ = A γ
M .types .El-[]ᴹ = refl
M .types .cᴹ A γ = A γ
M .types .c-[]ᴹ = refl
M .types .U-βᴹ = refl
M .types .U-ηᴹ = refl
M .types .Liftᴹ A γ = base (`Lift (A γ))
M .types .Lift-[]ᴹ = refl
M .types .lowerᴹ A γ = A γ
M .types .lower-[]ᴹ = refl
M .types .liftᴹ A γ = A γ
M .types .lift-[]ᴹ = refl
M .types .Lift-βᴹ = refl
M .types .Lift-ηᴹ = refl
M .types .Πᴹ A B γ = `Π (A γ) λ a → B (γ ,, a)
M .types .Π-[]ᴹ = refl
M .types .appᴹ f a γ = f γ (a γ)
M .types .app-[]ᴹ = refl
M .types .lamᴹ b γ a = b (γ ,, a)
M .types .lam-[]ᴹ = refl
M .types .Π-βᴹ = refl
M .types .Π-ηᴹ = refl