A natural model with support for dependent types (and nothing more). The data is a natural transformation with representable fibers, stored as a choice of representative for each fiber.
- Tm : Ctx
- Ty : Ctx
Instances For
Pullback of representable natural transformation #
Pull a natural model back along a type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given the pullback square on the right,
with a natural model structure on tp : Tm ⟶ Ty
giving the outer pullback square.
Γ.A -.-.- var -.-,-> E ------ toTm ------> Tm | | | | | | M.disp π tp | | | V V V Γ ------- A -------> U ------ toTy ------> Ty
construct a natural model structure on π : E ⟶ U,
by pullback pasting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Substitutions #
Δ ⊢ σ : Γ Γ ⊢ A type Δ ⊢ t : A[σ]
-----------------------------------
Δ ⊢ σ.t : Γ.A
------ Δ ------ t --------¬ | ↓ substCons ↓ | M.ext A ---var A---> M.Tm | | | σ | | | disp A M.tp | | | | V V ---> Γ ------ A -----> M.Ty
Instances For
Δ ⊢ σ : Γ.A
------------
Δ ⊢ ↑∘σ : Γ
Equations
- M.substFst σ = CategoryTheory.CategoryStruct.comp σ (M.disp A)
Instances For
Δ ⊢ σ : Γ.A
-------------------
Δ ⊢ v₀[σ] : A[↑∘σ]
Equations
- M.substSnd σ = CategoryTheory.CategoryStruct.comp σ (M.var A)
Instances For
Weaken a substitution.
Δ ⊢ σ : Γ Γ ⊢ A type A' = A[σ]
------------------------------------
Δ.A' ⊢ ↑≫σ : Γ Δ.A' ⊢ v₀ : A[↑≫σ]
------------------------------------
Δ.A' ⊢ (↑≫σ).v₀ : Γ.A
Equations
Instances For
sec is the section of disp A corresponding to a.
===== Γ ------ a --------¬ ‖ ↓ sec V ‖ M.ext A -----------> M.Tm ‖ | | ‖ | | ‖ disp A M.tp ‖ | | ‖ V V ===== Γ ------ A -----> M.Ty
Equations
- M.sec A a a_tp = M.substCons (CategoryTheory.CategoryStruct.id Γ) A a ⋯
Instances For
- pair_comp {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} {σA : Δ ⟶ U0.Ty} (eq : CategoryTheory.CategoryStruct.comp σ A = σA) (B : U0.ext A ⟶ U1.Ty) (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (b : Γ ⟶ U1.Tm) (b_tp : CategoryTheory.CategoryStruct.comp b U1.tp = CategoryTheory.CategoryStruct.comp (U0.sec A a a_tp) B) : self.pair (CategoryTheory.CategoryStruct.comp (U0.substWk σ A σA eq) B) (CategoryTheory.CategoryStruct.comp σ a) ⋯ (CategoryTheory.CategoryStruct.comp σ b) ⋯ = CategoryTheory.CategoryStruct.comp σ (self.pair B a a_tp b b_tp)
- pair_tp {Γ : Ctx} {A : Γ ⟶ U0.Ty} (B : U0.ext A ⟶ U1.Ty) (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (b : Γ ⟶ U1.Tm) (b_tp : CategoryTheory.CategoryStruct.comp b U1.tp = CategoryTheory.CategoryStruct.comp (U0.sec A a a_tp) B) : CategoryTheory.CategoryStruct.comp (self.pair B a a_tp b b_tp) U2.tp = self.Sig B
- fst_pair {Γ : Ctx} {A : Γ ⟶ U0.Ty} (B : U0.ext A ⟶ U1.Ty) (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (b : Γ ⟶ U1.Tm) (b_tp : CategoryTheory.CategoryStruct.comp b U1.tp = CategoryTheory.CategoryStruct.comp (U0.sec A a a_tp) B) : self.fst B (self.pair B a a_tp b b_tp) ⋯ = a
- snd_pair {Γ : Ctx} {A : Γ ⟶ U0.Ty} (B : U0.ext A ⟶ U1.Ty) (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (b : Γ ⟶ U1.Tm) (b_tp : CategoryTheory.CategoryStruct.comp b U1.tp = CategoryTheory.CategoryStruct.comp (U0.sec A a a_tp) B) : self.snd B (self.pair B a a_tp b b_tp) ⋯ = b
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- lam_comp {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} {σA : Δ ⟶ U0.Ty} (eq : CategoryTheory.CategoryStruct.comp σ A = σA) (B : U0.ext A ⟶ U1.Ty) (b : U0.ext A ⟶ U1.Tm) (b_tp : CategoryTheory.CategoryStruct.comp b U1.tp = B) : self.lam (CategoryTheory.CategoryStruct.comp (U0.substWk σ A σA eq) B) (CategoryTheory.CategoryStruct.comp (U0.substWk σ A σA eq) b) ⋯ = CategoryTheory.CategoryStruct.comp σ (self.lam B b b_tp)
Instances For
- Id_comp {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} (a0 a1 : Γ ⟶ U0.Tm) (a0_tp : CategoryTheory.CategoryStruct.comp a0 U0.tp = A) (a1_tp : CategoryTheory.CategoryStruct.comp a1 U0.tp = A) : self.Id (CategoryTheory.CategoryStruct.comp σ a0) (CategoryTheory.CategoryStruct.comp σ a1) ⋯ ⋯ = CategoryTheory.CategoryStruct.comp σ (self.Id a0 a1 a0_tp a1_tp)
- refl_comp {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) : self.refl (CategoryTheory.CategoryStruct.comp σ a) ⋯ = CategoryTheory.CategoryStruct.comp σ (self.refl a a_tp)
Instances For
Given Γ ⊢ a : A this is the identity type weakened to the context
Γ.(x : A) ⊢ Id(a,x) : U1.Ty
Instances For
Given Γ ⊢ a : A this is the context Γ.(x : A).(h:Id(a,x))
Instances For
Given Γ ⊢ a : A, reflSubst is the substitution (a,refl) : Γ ⟶ Γ.(x:A).(h:Id(a,x))
appearing in identity elimination J so that we can write Γ ⊢ r : C(a,refl)
Instances For
Given a substitution σ : Δ ⟶ Γ and Γ ⊢ a : A,
this is the substitution Δ.(x: σ ≫ A).(h:Id(σ ≫ a,x)) ⟶ Γ.(x:A).(h:Id(a,x))
Equations
- i.motiveSubst σ a a_tp eq = U1.substWk (U0.substWk σ A σA ⋯) (i.weakenId a a_tp) (i.weakenId (CategoryTheory.CategoryStruct.comp σ a) ⋯) ⋯
Instances For
- comp_j {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (C : i.motiveCtx a a_tp ⟶ U2.Ty) (c : Γ ⟶ U2.Tm) (c_tp : CategoryTheory.CategoryStruct.comp c U2.tp = CategoryTheory.CategoryStruct.comp (i.reflSubst a a_tp) C) : self.j (CategoryTheory.CategoryStruct.comp σ a) ⋯ (CategoryTheory.CategoryStruct.comp (i.motiveSubst σ a a_tp ⋯) C) (CategoryTheory.CategoryStruct.comp σ c) ⋯ = CategoryTheory.CategoryStruct.comp (i.motiveSubst σ a a_tp ⋯) (self.j a a_tp C c c_tp)
- j_tp {Γ : Ctx} {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (C : i.motiveCtx a a_tp ⟶ U2.Ty) (c : Γ ⟶ U2.Tm) (c_tp : CategoryTheory.CategoryStruct.comp c U2.tp = CategoryTheory.CategoryStruct.comp (i.reflSubst a a_tp) C) : CategoryTheory.CategoryStruct.comp (self.j a a_tp C c c_tp) U2.tp = C
- reflSubst_j {Γ : Ctx} {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : CategoryTheory.CategoryStruct.comp a U0.tp = A) (C : i.motiveCtx a a_tp ⟶ U2.Ty) (c : Γ ⟶ U2.Tm) (c_tp : CategoryTheory.CategoryStruct.comp c U2.tp = CategoryTheory.CategoryStruct.comp (i.reflSubst a a_tp) C) : CategoryTheory.CategoryStruct.comp (i.reflSubst a a_tp) (self.j a a_tp C c c_tp) = c