Documentation

GroupoidModel.Syntax.UHom

Morphisms of natural models, and Russell-universe embeddings.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Instances For
      def NaturalModel.Universe.Hom.comp {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] {M N O : Universe Ctx} (α : M.Hom N) (β : N.Hom O) :
      M.Hom O
      Equations
      Instances For
        def NaturalModel.Universe.Hom.comp_assoc {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] {M N O P : Universe Ctx} (α : M.Hom N) (β : N.Hom O) (γ : O.Hom P) :
        (α.comp β).comp γ = α.comp (β.comp γ)
        Equations
        • =
        Instances For

          Morphism into the representable natural transformation M from the pullback of M along a type.

          Equations
          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

              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.

              Instances For
                Equations
                Instances For
                  def NaturalModel.Universe.UHom.comp_assoc {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] {M N O P : Universe Ctx} (α : M.UHom N) (β : N.UHom O) (γ : O.UHom P) :
                  (α.comp β).comp γ = α.comp (β.comp γ)
                  Equations
                  • =
                  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.

                    • objs (i : ) (h : i < self.length + 1) : Universe Ctx
                    • homSucc' (i : ) (h : i < self.length) : (self.objs i ).UHom (self.objs (i + 1) )
                    Instances For
                      def NaturalModel.Universe.UHomSeq.homSucc {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i : ) (h : i < s.length := by get_elem_tactic) :
                      s[i].UHom s[i + 1]
                      Equations
                      Instances For
                        @[irreducible]
                        def NaturalModel.Universe.UHomSeq.hom {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j : ) (ij : i < j := by omega) (jlen : j < s.length + 1 := by get_elem_tactic) :
                        s[i].UHom s[j]

                        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
                          def NaturalModel.Universe.UHomSeq.homOfLe {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j : ) (ij : i j := by omega) (jlen : j < s.length + 1 := by get_elem_tactic) :
                          s[i].Hom s[j]
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def NaturalModel.Universe.UHomSeq.unlift {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j : ) (ij : i j := by omega) (jlen : j < s.length + 1 := by get_elem_tactic) {Γ : CategoryTheory.Psh Ctx} (A : Γ s[i].Ty) (t : Γ s[j].Tm) (eq : CategoryTheory.CategoryStruct.comp t s[j].tp = CategoryTheory.CategoryStruct.comp A (s.homOfLe i j ij jlen).mapTy) :
                            Γ s[i].Tm

                            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.

                            Equations
                            Instances For
                              def NaturalModel.Universe.UHomSeq.unliftVar {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j : ) (ij : i j := by omega) (jlen : j < s.length + 1 := by get_elem_tactic) {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) {A' : CategoryTheory.yoneda.obj Γ s[j].Ty} (eq : CategoryTheory.CategoryStruct.comp A (s.homOfLe i j ij jlen).mapTy = A') :
                              Equations
                              Instances For
                                def NaturalModel.Universe.UHomSeq.cartesianNatTrans {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j : ) (ij : i j := by get_elem_tactic) (jlen : j < s.length + 1 := by get_elem_tactic) :

                                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
                                Instances For
                                  def NaturalModel.Universe.UHomSeq.cartesianNatTransTm {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i0 i1 j0 j1 : ) (ii : i0 i1 := by get_elem_tactic) (ilen : i1 < s.length + 1 := by get_elem_tactic) (jj : j0 j1 := by get_elem_tactic) (jlen : j1 < s.length + 1 := by get_elem_tactic) :
                                  s[i0].Ptp.obj s[j0].Tm s[i1].Ptp.obj s[j1].Tm

                                  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
                                  Instances For
                                    theorem NaturalModel.Universe.UHomSeq.mk_comp_cartesianNatTransTm {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i0 i1 j0 j1 : } {ii : i0 i1} {ilen : i1 < s.length + 1} {jj : j0 j1} {jlen : j1 < s.length + 1} {Γ : Ctx} {X : i0 < s.length + 1} (A : CategoryTheory.yoneda.obj Γ s[i0].Ty) (B : CategoryTheory.yoneda.obj (s[i0].ext A) s[j0].Tm) :
                                    theorem NaturalModel.Universe.UHomSeq.cartesianNatTransTm_fstProj {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i0 i1 j0 j1 : } {ii : i0 i1} {ilen : i1 < s.length + 1} {jj : j0 j1} {jlen : j1 < s.length + 1} :
                                    def NaturalModel.Universe.UHomSeq.cartesianNatTransTy {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i0 i1 j0 j1 : ) (i0len : i0 i1 := by get_elem_tactic) (i1len : i1 < s.length + 1 := by get_elem_tactic) (j0len : j0 j1 := by get_elem_tactic) (j1len : j1 < s.length + 1 := by get_elem_tactic) :
                                    s[i0].Ptp.obj s[j0].Ty s[i1].Ptp.obj s[j1].Ty
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem NaturalModel.Universe.UHomSeq.mk_comp_cartesianNatTransTy {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i0 i1 j0 j1 : } {ii : i0 i1} {ilen : i1 < s.length + 1} {jj : j0 j1} {jlen : j1 < s.length + 1} {Γ : Ctx} {X : i0 < s.length + 1} (A : CategoryTheory.yoneda.obj Γ s[i0].Ty) (B : CategoryTheory.yoneda.obj (s[i0].ext A) s[j0].Ty) :
                                      theorem NaturalModel.Universe.UHomSeq.cartesianNatTransTy_fstProj {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i0 i1 j0 j1 : } {ii : i0 i1} {ilen : i1 < s.length + 1} {jj : j0 j1} {jlen : j1 < s.length + 1} :
                                      @[irreducible]
                                      theorem NaturalModel.Universe.UHomSeq.hom_comp_trans {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) (i j k : ) (ij : i < j) (jk : j < k) (klen : k < s.length + 1) :
                                      (s.hom i j ij ).comp (s.hom j k jk klen) = s.hom i k klen

                                      TODO: Consider generalising to just UHom? Convert a map into the ith type classifier into a a term of the i+1th term classifier, that is a term of the ith 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
                                      Instances For

                                        TODO: Consider generalising to just UHom? Convert a a term of the ith universe (it is a i+1 level term) into a map into the ith 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
                                        Instances For
                                          @[simp]
                                          theorem NaturalModel.Universe.UHomSeq.el_code {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] {Γ : Ctx} {i : } (s : UHomSeq Ctx) (ilen : i < s.length) (A : CategoryTheory.yoneda.obj Γ s[i].Ty) :
                                          s.el ilen (s.code ilen A) = A
                                          @[simp]
                                          theorem NaturalModel.Universe.UHomSeq.code_el {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {Γ : Ctx} {i : } (ilen : i < s.length) (a : CategoryTheory.yoneda.obj Γ s[i + 1].Tm) (a_tp : CategoryTheory.CategoryStruct.comp a s[i + 1].tp = UHom.wkU Γ (s.homSucc i ilen)) :
                                          s.code ilen (s.el ilen a a_tp) = a

                                          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
                                            def NaturalModel.Universe.UHomSeq.Pi {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] :
                                            s[i].Ptp.obj s[j].Ty s[max i j].Ty
                                            Equations
                                            Instances For
                                              def NaturalModel.Universe.UHomSeq.lam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] :
                                              s[i].Ptp.obj s[j].Tm s[max i j].Tm
                                              Equations
                                              Instances For
                                                def NaturalModel.Universe.UHomSeq.Pi_pb {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] :
                                                CategoryTheory.IsPullback (s.lam ilen jlen) (s[i].Ptp.map s[j].tp) s[max i j].tp (s.Pi ilen jlen)
                                                Equations
                                                • =
                                                Instances For
                                                  def NaturalModel.Universe.UHomSeq.mkPi {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) :
                                                  Γ ⊢ᵢ A  Γ.A ⊢ⱼ B
                                                  -----------------
                                                  Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ΠA. B
                                                  
                                                  Equations
                                                  Instances For
                                                    def NaturalModel.Universe.UHomSeq.mkLam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (t : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Tm) :
                                                    Γ ⊢ᵢ A  Γ.A ⊢ⱼ t : B
                                                    -------------------------
                                                    Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ λA. t : ΠA. B
                                                    
                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem NaturalModel.Universe.UHomSeq.mkLam_tp {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (t : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[j].tp = B) :
                                                      CategoryTheory.CategoryStruct.comp (s.mkLam ilen jlen A t) s[max i j].tp = s.mkPi ilen jlen A B
                                                      def NaturalModel.Universe.UHomSeq.unLam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (f : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (f_tp : CategoryTheory.CategoryStruct.comp f s[max i j].tp = s.mkPi ilen jlen A B) :
                                                      Γ ⊢ᵢ A  Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B
                                                      -----------------------------
                                                      Γ.A ⊢ⱼ unlam f : B
                                                      
                                                      Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem NaturalModel.Universe.UHomSeq.unLam_tp {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (f : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (f_tp : CategoryTheory.CategoryStruct.comp f s[max i j].tp = s.mkPi ilen jlen A B) :
                                                        CategoryTheory.CategoryStruct.comp (s.unLam ilen jlen A B f f_tp) s[j].tp = B
                                                        Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B  Γ ⊢ᵢ a : A
                                                        ---------------------------------
                                                        Γ ⊢ⱼ f a : B[id.a]
                                                        
                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem NaturalModel.Universe.UHomSeq.mkLam_unLam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (f : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (f_tp : CategoryTheory.CategoryStruct.comp f s[max i j].tp = s.mkPi ilen jlen A B) :
                                                          s.mkLam ilen jlen A (s.unLam ilen jlen A B f f_tp) = f
                                                          @[simp]
                                                          theorem NaturalModel.Universe.UHomSeq.unLam_mkLam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (t : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[j].tp = B) (lam_tp : CategoryTheory.CategoryStruct.comp (s.mkLam ilen jlen A t) s[max i j].tp = s.mkPi ilen jlen A B) :
                                                          s.unLam ilen jlen A B (s.mkLam ilen jlen A t) lam_tp = t
                                                          def NaturalModel.Universe.UHomSeq.etaExpand {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (f : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (f_tp : CategoryTheory.CategoryStruct.comp f s[max i j].tp = s.mkPi ilen jlen A B) :
                                                          Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ f : ΠA. B
                                                          --------------------------------------
                                                          Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ λA. f[↑] v₀ : ΠA. B
                                                          
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            theorem NaturalModel.Universe.UHomSeq.etaExpand_eq {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (f : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (f_tp : CategoryTheory.CategoryStruct.comp f s[max i j].tp = s.mkPi ilen jlen A B) :
                                                            s.etaExpand ilen jlen A B f f_tp = f
                                                            @[simp]
                                                            theorem NaturalModel.Universe.UHomSeq.mkApp_mkLam {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.PiSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (t : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[j].tp = B) (lam_tp : CategoryTheory.CategoryStruct.comp (s.mkLam ilen jlen A t) s[max i j].tp = s.mkPi ilen jlen A B) (a : CategoryTheory.yoneda.obj Γ s[i].Tm) (a_tp : CategoryTheory.CategoryStruct.comp a s[i].tp = A) :
                                                            s.mkApp ilen jlen A B (s.mkLam ilen jlen A t) lam_tp a a_tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].sec A a a_tp)) t
                                                            Γ ⊢ᵢ 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
                                                              def NaturalModel.Universe.UHomSeq.Sig {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] :
                                                              s[i].Ptp.obj s[j].Ty s[max i j].Ty
                                                              Equations
                                                              Instances For
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  def NaturalModel.Universe.UHomSeq.Sig_pb {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] :
                                                                  CategoryTheory.IsPullback (s.pair ilen jlen) (s[i].uvPolyTp.compP s[j].uvPolyTp) s[max i j].tp (s.Sig ilen jlen)
                                                                  Equations
                                                                  • =
                                                                  Instances For
                                                                    Γ ⊢ᵢ A  Γ.A ⊢ⱼ B
                                                                    -----------------
                                                                    Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ΣA. B
                                                                    
                                                                    Equations
                                                                    Instances For
                                                                      Γ ⊢ᵢ t : A  Γ ⊢ⱼ u : B[t]
                                                                      --------------------------
                                                                      Γ ⊢ₘₐₓ₍ᵢ,ⱼ₎ ⟨t, u⟩ : ΣA. B
                                                                      
                                                                      Equations
                                                                      Instances For
                                                                        def NaturalModel.Universe.UHomSeq.mkFst {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                        Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem NaturalModel.Universe.UHomSeq.mkFst_tp {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                          CategoryTheory.CategoryStruct.comp (s.mkFst ilen jlen A B p p_tp) s[i].tp = A
                                                                          @[simp]
                                                                          theorem NaturalModel.Universe.UHomSeq.mkFst_mkPair {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (t : CategoryTheory.yoneda.obj Γ s[i].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[i].tp = A) (u : CategoryTheory.yoneda.obj Γ s[j].Tm) (u_tp : CategoryTheory.CategoryStruct.comp u s[j].tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].sec A t t_tp)) B) :
                                                                          s.mkFst ilen jlen A B (s.mkPair ilen jlen A B t t_tp u u_tp) = t
                                                                          def NaturalModel.Universe.UHomSeq.mkSnd {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                          Equations
                                                                          Instances For
                                                                            @[simp]
                                                                            theorem NaturalModel.Universe.UHomSeq.mkSnd_mkPair {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (t : CategoryTheory.yoneda.obj Γ s[i].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[i].tp = A) (u : CategoryTheory.yoneda.obj Γ s[j].Tm) (u_tp : CategoryTheory.CategoryStruct.comp u s[j].tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].sec A t t_tp)) B) :
                                                                            s.mkSnd ilen jlen A B (s.mkPair ilen jlen A B t t_tp u u_tp) = u
                                                                            theorem NaturalModel.Universe.UHomSeq.dependent_eq {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                            compDomEquiv.dependent (.lift p (PtpEquiv.mk s[i] A B) p_tp) A = B
                                                                            @[simp]
                                                                            theorem NaturalModel.Universe.UHomSeq.mkSnd_tp {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                            CategoryTheory.CategoryStruct.comp (s.mkSnd ilen jlen A B p p_tp) s[j].tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].sec A (s.mkFst ilen jlen A B p p_tp) )) B
                                                                            @[simp]
                                                                            theorem NaturalModel.Universe.UHomSeq.mkPair_mkFst_mkSnd {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.SigSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[j].Ty) (p : CategoryTheory.yoneda.obj Γ s[max i j].Tm) (p_tp : CategoryTheory.CategoryStruct.comp p s[max i j].tp = s.mkSig ilen jlen A B) :
                                                                            s.mkPair ilen jlen A B (s.mkFst ilen jlen A B p p_tp) (s.mkSnd ilen jlen A B p p_tp) = p

                                                                            Identity types #

                                                                            Instances
                                                                              Γ ⊢ᵢ A  Γ ⊢ᵢ a0, a1 : A
                                                                              -----------------------
                                                                              Γ ⊢ᵢ Id(A, a0, a1)
                                                                              
                                                                              Equations
                                                                              Instances For
                                                                                Γ ⊢ᵢ t : A
                                                                                -----------------------
                                                                                Γ ⊢ᵢ refl(t) : Id(A, t, t)
                                                                                
                                                                                Equations
                                                                                Instances For
                                                                                  @[simp]
                                                                                  Γ ⊢ᵢ t : A
                                                                                  -----------------------
                                                                                  Γ ⊢ᵢ idRec(t) : Id(A, t, t)
                                                                                  
                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    theorem NaturalModel.Universe.UHomSeq.comp_mkIdRec {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.IdSeq] {Δ Γ : Ctx} (σ : Δ Γ) (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (σA : CategoryTheory.yoneda.obj Δ s[i].Ty) (σA_eq : CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map σ) A = σA) (t : CategoryTheory.yoneda.obj Γ s[i].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[i].tp = A) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[i].Ty) (B_eq : s.mkId ilen (CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].disp A)) A) (CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].disp A)) t) (s[i].var A) = B) (σB : CategoryTheory.yoneda.obj (s[i].ext σA) s[i].Ty) (σB_eq : CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].substWk σ A σA σA_eq)) B = σB) (M : CategoryTheory.yoneda.obj (s[i].ext B) s[j].Ty) (r : CategoryTheory.yoneda.obj Γ s[j].Tm) (r_tp : CategoryTheory.CategoryStruct.comp r s[j].tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].substCons (s[i].sec A t t_tp) B (s.mkRefl ilen t) )) M) (u : CategoryTheory.yoneda.obj Γ s[i].Tm) (u_tp : CategoryTheory.CategoryStruct.comp u s[i].tp = A) (h : CategoryTheory.yoneda.obj Γ s[i].Tm) (h_tp : CategoryTheory.CategoryStruct.comp h s[i].tp = s.mkId ilen A t u t_tp u_tp) :
                                                                                    @[simp]
                                                                                    theorem NaturalModel.Universe.UHomSeq.mkIdRec_mkRefl {Ctx : Type u} [CategoryTheory.SmallCategory Ctx] [CategoryTheory.ChosenTerminal Ctx] (s : UHomSeq Ctx) {i j : } (ilen : i < s.length + 1) (jlen : j < s.length + 1) [s.IdSeq] {Γ : Ctx} (A : CategoryTheory.yoneda.obj Γ s[i].Ty) (t : CategoryTheory.yoneda.obj Γ s[i].Tm) (t_tp : CategoryTheory.CategoryStruct.comp t s[i].tp = A) (B : CategoryTheory.yoneda.obj (s[i].ext A) s[i].Ty) (B_eq : s.mkId ilen (CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].disp A)) A) (CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].disp A)) t) (s[i].var A) = B) (M : CategoryTheory.yoneda.obj (s[i].ext B) s[j].Ty) (r : CategoryTheory.yoneda.obj Γ s[j].Tm) (r_tp : CategoryTheory.CategoryStruct.comp r s[j].tp = CategoryTheory.CategoryStruct.comp (CategoryTheory.yoneda.map (s[i].substCons (s[i].sec A t t_tp) B (s.mkRefl ilen t) )) M) :
                                                                                    s.mkIdRec ilen jlen A t t_tp B B_eq M r r_tp t t_tp (s.mkRefl ilen t) = r