Morphisms of natural models, and Russell-universe embeddings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- NaturalModel.Universe.Hom.id M = { mapTm := CategoryTheory.CategoryStruct.id M.Tm, mapTy := CategoryTheory.CategoryStruct.id M.Ty, pb := ⋯ }
Instances For
Equations
- α.comp β = { mapTm := CategoryTheory.CategoryStruct.comp α.mapTm β.mapTm, mapTy := CategoryTheory.CategoryStruct.comp α.mapTy β.mapTy, pb := ⋯ }
Instances For
Morphism into the representable natural transformation M
from the pullback of M
along a type.
Equations
- M.pullbackHom A = { mapTm := M.var A, mapTy := A, pb := ⋯ }
Instances For
Given M : Universe
, a semantic type A : y(Γ) ⟶ M.Ty
,
and a substitution σ : Δ ⟶ Γ
, construct a Hom for the substitution A[σ]
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- h.cartesianNatTrans = M.uvPolyTp.cartesianNatTrans N.uvPolyTp h.mapTy h.mapTm ⋯
Instances For
Equations
- h.extIsoExt A = CategoryTheory.IsPullback.isoIsPullback N.Tm (CategoryTheory.yoneda.obj Γ) ⋯ ⋯
Instances For
A Russell universe embedding is a hom of natural models M ⟶ N
such that types in M
correspond to terms of a universe U
in N
.
These don't form a category since UHom.id M
is essentially Type : Type
in M
.
Note this doesn't need to extend Hom
as none of its fields are used;
it's just convenient to pack up the data.
- U_pb : CategoryTheory.IsPullback self.asTm (CategoryTheory.ChosenTerminal.isTerminal_yUnit.from M.Ty) N.tp self.U
Instances For
Equations
- NaturalModel.Universe.UHom.ofTyIsoExt H i = { toHom := H, U := U, asTm := CategoryTheory.CategoryStruct.comp i.hom (N.var U), U_pb := ⋯ }
Instances For
Equations
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
Instances For
Equations
- NaturalModel.Universe.UHom.ofTarskiU M U El = { toHom := M.pullbackHom El, U := U, asTm := M.var U, U_pb := ⋯ }
Instances For
Universe embeddings #
A sequence of Russell universe embeddings.
- length : ℕ
Number of embeddings in the sequence, or one less than the number of models in the sequence.
Instances For
Equations
- NaturalModel.Universe.UHomSeq.instGetElemNatLtHAddLengthOfNat = { getElem := fun (s : NaturalModel.Universe.UHomSeq Ctx) (i : ℕ) (h : i < s.length + 1) => s.objs i h }
Composition of embeddings between i
and j
in the chain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
For i ≤ j
and a term t
at level j
,
if the type of t
is lifted from level i
,
then t
is a lift of a term at level i
.
Instances For
Equations
Instances For
If s
is a sequence of universe homomorphisms then for i ≤ j
we get a polynomial endofunctor
natural transformation s[i].Ptp ⟶ s[j].Ptp
.
Equations
- s.cartesianNatTrans i j ij jlen = (s.homOfLe i j ij jlen).cartesianNatTrans
Instances For
This is one side of the commutative square
s[i0].Ptp.obj s[j0].Tm ⟶ s[i1].Ptp.obj s[j1].Tm
| |
| |
| |
| |
V V
s[i0].Ptp.obj s[j0].Tm ⟶ s[i1].Ptp.obj s[j0].Tm
Given i0 ≤ i1
and j0 ≤ j1
Equations
- s.cartesianNatTransTm i0 i1 j0 j1 ii ilen jj jlen = CategoryTheory.CategoryStruct.comp ((s.cartesianNatTrans i0 i1 ii ilen).app s[j0].Tm) (s[i1].Ptp.map (s.homOfLe j0 j1 jj jlen).mapTm)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
TODO: Consider generalising to just UHom?
Convert a map into the i
th type classifier into a a term of the
i+1
th term classifier, that is a term of the i
th universe.
It is defined by composition with the first projection of the pullback square
v
s[i].Ty ----> s[i+1].Tm
^ | |
A / | p.b. |
/ | |
/ V V
y(Γ) ---> 1 -----> s[i+1].Ty
U_i
Equations
- s.code ilen A = CategoryTheory.CategoryStruct.comp A (s.homSucc i ilen).asTm
Instances For
TODO: Consider generalising to just UHom?
Convert a a term of the i
th universe (it is a i+1
level term) into
a map into the i
th type classifier.
It is the unique map into the pullback
a
y(Γ) -----------------¬
‖ --> v V
‖ s[i].Ty ----> s[i+1].Tm
‖ | |
‖ | p.b. |
‖ | |
‖ V V
y(Γ) ---> 1 -----> s[i+1].Ty
U_i
Equations
- s.el ilen a a_tp = ⋯.lift a (CategoryTheory.ChosenTerminal.isTerminal_yUnit.from (CategoryTheory.yoneda.obj Γ)) ⋯
Instances For
Pi #
The data of Pi
and lam
formers at each universe s[i].tp
.
This data is universe-monomorphic,
but we can use it to construct universe-polymorphic formation
in a model-independent manner.
For example, universe-monomorphic Pi
Γ ⊢ᵢ A type Γ.A ⊢ᵢ B type
--------------------------
Γ ⊢ᵢ ΠA. B type
can be extended to
Γ ⊢ᵢ A type Γ.A ⊢ⱼ B type
--------------------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ΠA. B type
Instances
Equations
- s.Pi ilen jlen = CategoryTheory.CategoryStruct.comp (s.cartesianNatTransTy i (max i j) j (max i j) ⋯ ⋯ ⋯ ⋯) (NaturalModel.Universe.UHomSeq.PiSeq.nmPi (max i j) ⋯).Pi
Instances For
Equations
- s.lam ilen jlen = CategoryTheory.CategoryStruct.comp (s.cartesianNatTransTm i (max i j) j (max i j) ⋯ ⋯ ⋯ ⋯) (NaturalModel.Universe.UHomSeq.PiSeq.nmPi (max i j) ⋯).lam
Instances For
Equations
- ⋯ = ⋯
Instances For
Γ ⊢ᵢ A Γ.A ⊢ⱼ B
-----------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ΠA. B
Equations
- s.mkPi ilen jlen A B = CategoryTheory.CategoryStruct.comp (NaturalModel.Universe.PtpEquiv.mk s[i] A B) (s.Pi ilen jlen)
Instances For
Γ ⊢ᵢ A Γ.A ⊢ⱼ t : B
-------------------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ λA. t : ΠA. B
Equations
- s.mkLam ilen jlen A t = CategoryTheory.CategoryStruct.comp (NaturalModel.Universe.PtpEquiv.mk s[i] A t) (s.lam ilen jlen)
Instances For
Γ ⊢ᵢ A Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B
-----------------------------
Γ.A ⊢ⱼ unlam f : B
Equations
- s.unLam ilen jlen A B f f_tp = NaturalModel.Universe.PtpEquiv.snd s[i] (⋯.lift f (NaturalModel.Universe.PtpEquiv.mk s[i] A B) f_tp) A ⋯
Instances For
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B Γ ⊢ᵢ a : A
---------------------------------
Γ ⊢ⱼ f a : B[id.a]
Equations
- s.mkApp ilen jlen A B f f_tp a a_tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].sec A a a_tp)) (s.unLam ilen jlen A B f f_tp)
Instances For
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B
--------------------------------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ λA. f[↑] v₀ : ΠA. B
Equations
- One or more equations did not get rendered due to their size.
Instances For
Γ ⊢ᵢ A Γ.A ⊢ⱼ t : B Γ ⊢ᵢ a : A
--------------------------------
Γ.A ⊢ⱼ (λA. t) a ≡ t[a] : B[a]
Sigma #
The data of Sig
and pair
formers at each universe s[i].tp
.
Instances
Equations
- s.Sig ilen jlen = CategoryTheory.CategoryStruct.comp (s.cartesianNatTransTy i (max i j) j (max i j) ⋯ ⋯ ⋯ ⋯) (NaturalModel.Universe.UHomSeq.SigSeq.nmSig (max i j) ⋯).Sig
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Instances For
Γ ⊢ᵢ A Γ.A ⊢ⱼ B
-----------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ΣA. B
Equations
- s.mkSig ilen jlen A B = CategoryTheory.CategoryStruct.comp (NaturalModel.Universe.PtpEquiv.mk s[i] A B) (s.Sig ilen jlen)
Instances For
Γ ⊢ᵢ t : A Γ ⊢ⱼ u : B[t]
--------------------------
Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ⟨t, u⟩ : ΣA. B
Equations
- s.mkPair ilen jlen A B t t_tp u u_tp = CategoryTheory.CategoryStruct.comp (NaturalModel.Universe.compDomEquiv.mk t t_tp B u u_tp) (s.pair ilen jlen)
Instances For
Equations
- s.mkFst ilen jlen A B p p_tp = NaturalModel.Universe.compDomEquiv.fst (⋯.lift p (NaturalModel.Universe.PtpEquiv.mk s[i] A B) p_tp)
Instances For
Equations
- s.mkSnd ilen jlen A B p p_tp = NaturalModel.Universe.compDomEquiv.snd (⋯.lift p (NaturalModel.Universe.PtpEquiv.mk s[i] A B) p_tp)
Instances For
Identity types #
Instances
Γ ⊢ᵢ A Γ ⊢ᵢ a0, a1 : A
-----------------------
Γ ⊢ᵢ Id(A, a0, a1)
Equations
- s.mkId ilen A a0 a1 a0_tp a1_tp = (NaturalModel.Universe.UHomSeq.IdSeq.nmII i ilen).mkId a0 a1 ⋯
Instances For
Γ ⊢ᵢ t : A
-----------------------
Γ ⊢ᵢ refl(t) : Id(A, t, t)
Equations
- s.mkRefl ilen t = (NaturalModel.Universe.UHomSeq.IdSeq.nmII i ilen).mkRefl t
Instances For
Γ ⊢ᵢ t : A
-----------------------
Γ ⊢ᵢ idRec(t) : Id(A, t, t)
Equations
- One or more equations did not get rendered due to their size.