Documentation

Arithmetization.ISigmaOne.Metamath.Term.Basic

def LO.Arith.qqBvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (z : V) :
V
Equations
Instances For
    def LO.Arith.qqFvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (x : V) :
    V
    Equations
    Instances For
      def LO.Arith.qqFunc {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (k : V) (f : V) (v : V) :
      V
      Equations
      Instances For
        @[simp]
        @[simp]
        @[simp]
        theorem LO.Arith.arity_lt_qqFunc {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (k : V) (f : V) (v : V) :
        @[simp]
        theorem LO.Arith.func_lt_qqFunc {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (k : V) (f : V) (v : V) :
        @[simp]
        theorem LO.Arith.terms_lt_qqFunc {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (k : V) (f : V) (v : V) :
        theorem LO.Arith.nth_lt_qqFunc_of_lt {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i : V} {k : V} {f : V} {v : V} (hi : i < LO.Arith.len v) :
        @[simp]
        theorem LO.Arith.qqBvar_inj {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {z : V} {z' : V} :
        @[simp]
        theorem LO.Arith.qqFvar_inj {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {x : V} {x' : V} :
        @[simp]
        theorem LO.Arith.qqFunc_inj {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : V} {f : V} {v : V} {k' : V} {f' : V} {w : V} :
        LO.Arith.qqFunc k f v = LO.Arith.qqFunc k' f' w k = k' f = f' v = w
        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
            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
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  Instances For
                    Equations
                    Instances For
                      @[simp]
                      theorem LO.Arith.eval_isUTermDef {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (v : Fin 1V) :
                      Equations
                      • =
                      instance LO.Arith.isUTermDef_definable' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {m : } (Γ : LO.SigmaPiDelta) :
                      { Γ := Γ, rank := m + 1 }-Predicate L.IsUTerm
                      Equations
                      • =
                      def LO.Arith.Language.IsUTermVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (n : V) (w : V) :
                      Equations
                      Instances For
                        theorem LO.Arith.Language.IsUTermVec.lh {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {w : V} (h : L.IsUTermVec n w) :
                        theorem LO.Arith.Language.IsUTermVec.nth {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {w : V} (h : L.IsUTermVec n w) {i : V} :
                        i < nL.IsUTerm (LO.Arith.nth w i)
                        @[simp]
                        theorem LO.Arith.Language.IsUTermVec.empty {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                        L.IsUTermVec 0 0
                        @[simp]
                        theorem LO.Arith.Language.IsUTermVec.empty_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {v : V} :
                        L.IsUTermVec 0 v v = 0
                        theorem LO.Arith.Language.IsUTermVec.two_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {v : V} :
                        L.IsUTermVec 2 v ∃ (t₁ : V) (t₂ : V), L.IsUTerm t₁ L.IsUTerm t₂ v = ?[t₁, t₂]
                        @[simp]
                        theorem LO.Arith.Language.IsUTermVec.cons {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {w : V} {t : V} (h : L.IsUTermVec n w) (ht : L.IsUTerm t) :
                        L.IsUTermVec (n + 1) (cons t w)
                        @[simp]
                        theorem LO.Arith.Language.IsUTermVec.cons₁_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t : V} :
                        L.IsUTermVec 1 ?[t] L.IsUTerm t
                        @[simp]
                        theorem LO.Arith.Language.IsUTermVec.mkSeq₂_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t₁ : V} {t₂ : V} :
                        L.IsUTermVec 2 ?[t₁, t₂] L.IsUTerm t₁ L.IsUTerm t₂
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          theorem LO.Arith.Language.isUTermVec_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                          𝚫₁-Relation L.IsUTermVec via pL.isUTermVecDef
                          @[simp]
                          theorem LO.Arith.eval_isUTermVecDef {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (v : Fin 2V) :
                          V ⊧/v (LO.FirstOrder.Arith.HierarchySymbol.Semiformula.val pL.isUTermVecDef) L.IsUTermVec (v 0) (v 1)
                          Equations
                          • =
                          instance LO.Arith.Language.isUTermVecDef_definable' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {m : } (Γ : LO.SigmaPiDelta) :
                          { Γ := Γ, rank := m + 1 }-Relation L.IsUTermVec
                          Equations
                          • =
                          theorem LO.Arith.Language.IsUTerm.case_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t : V} :
                          L.IsUTerm t (∃ (z : V), t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsUTermVec k v t = LO.Arith.qqFunc k f v
                          theorem LO.Arith.Language.IsUTerm.case {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t : V} :
                          L.IsUTerm t(∃ (z : V), t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsUTermVec k v t = LO.Arith.qqFunc k f v

                          Alias of the forward direction of LO.Arith.Language.IsUTerm.case_iff.

                          theorem LO.Arith.Language.IsUTerm.mk {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t : V} :
                          ((∃ (z : V), t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsUTermVec k v t = LO.Arith.qqFunc k f v)L.IsUTerm t

                          Alias of the reverse direction of LO.Arith.Language.IsUTerm.case_iff.

                          @[simp]
                          theorem LO.Arith.Language.IsUTerm.bvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {z : V} :
                          L.IsUTerm (LO.Arith.qqBvar z)
                          @[simp]
                          theorem LO.Arith.Language.IsUTerm.fvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (x : V) :
                          L.IsUTerm (LO.Arith.qqFvar x)
                          @[simp]
                          theorem LO.Arith.Language.IsUTerm.func_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {f : V} {v : V} :
                          L.IsUTerm (LO.Arith.qqFunc k f v) L.Func k f L.IsUTermVec k v
                          theorem LO.Arith.Language.IsUTerm.func {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {f : V} {v : V} (hkf : L.Func k f) (hv : L.IsUTermVec k v) :
                          L.IsUTerm (LO.Arith.qqFunc k f v)
                          theorem LO.Arith.Language.IsUTerm.induction {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (Γ : LO.SigmaPiDelta) {P : VProp} (hP : { Γ := Γ, rank := 1 }-Predicate P) (hbvar : ∀ (z : V), P (LO.Arith.qqBvar z)) (hfvar : ∀ (x : V), P (LO.Arith.qqFvar x)) (hfunc : ∀ (k f v : V), L.Func k fL.IsUTermVec k v(i < k, P (LO.Arith.nth v i))P (LO.Arith.qqFunc k f v)) (t : V) :
                          L.IsUTerm tP t
                          Instances For
                            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
                                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
                                    Instances For
                                      theorem LO.Arith.Language.TermRec.Construction.func_defined {V : Type u_1} [LO.ORingStruc V] {pL : LO.FirstOrder.Arith.LDef} {L : LO.Arith.Language V} {k : } {φ : LO.Arith.Language.TermRec.Blueprint pL k} (self : LO.Arith.Language.TermRec.Construction V L φ) :
                                      LO.FirstOrder.Arith.HierarchySymbol.DefinedFunction (fun (v : Fin k.succ.succ.succ.succV) => self.func (fun (x : Fin k) => v x.succ.succ.succ.succ) (v 0) (v 1) (v 2) (v 3)) φ.func
                                      def LO.Arith.Language.TermRec.Construction.Phi {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (C : Set V) (pr : V) :
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        theorem LO.Arith.Language.TermRec.Construction.seq_bound {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : V} {s : V} {m : V} (Ss : LO.Arith.Seq s) (hk : k = LO.Arith.lh s) (hs : ∀ (i z : V), i, z sz < m) :
                                        s < exp ((k + m + 1) ^ 2)
                                        @[simp]
                                        theorem LO.Arith.Language.TermRec.Construction.cons_app_9 {α : Type u_2} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succ.succ.succ.succα) :
                                        (a :> s) 9 = s 8

                                        TODO: move

                                        @[simp]
                                        theorem LO.Arith.Language.TermRec.Construction.cons_app_10 {α : Type u_2} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succ.succ.succ.succ.succα) :
                                        (a :> s) 10 = s 9
                                        @[simp]
                                        theorem LO.Arith.Language.TermRec.Construction.cons_app_11 {α : Type u_2} {n : } (a : α) (s : Fin n.succ.succ.succ.succ.succ.succ.succ.succ.succ.succ.succα) :
                                        (a :> s) 11 = s 10
                                        Equations
                                        • c.construction = { Φ := c.Phi, defined := , monotone := }
                                        Instances For
                                          Equations
                                          • c.instFiniteConstruction = { finite := }
                                          def LO.Arith.Language.TermRec.Construction.Graph {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (x : V) (y : V) :
                                          Equations
                                          • c.Graph param x y = c.construction.Fixpoint param x, y
                                          Instances For
                                            theorem LO.Arith.Language.TermRec.Construction.Graph.case_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} {t : V} {y : V} :
                                            c.Graph param t y L.IsUTerm t ((∃ (z : V), t = LO.Arith.qqBvar z y = c.bvar param z) (∃ (x : V), t = LO.Arith.qqFvar x y = c.fvar param x) ∃ (k : V) (f : V) (v : V) (w : V), (k = LO.Arith.len w i < k, c.Graph param (LO.Arith.nth v i) (LO.Arith.nth w i)) t = LO.Arith.qqFunc k f v y = c.func param k f v w)
                                            theorem LO.Arith.Language.TermRec.Construction.graph_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) :
                                            LO.FirstOrder.Arith.HierarchySymbol.Defined (fun (v : Fin arity.succ.succV) => c.Graph (fun (x : Fin arity) => v x.succ.succ) (v 0) (v 1)) β.graph
                                            @[simp]
                                            theorem LO.Arith.Language.TermRec.Construction.eval_graphDef {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (v : Fin (arity + 2)V) :
                                            V ⊧/v (LO.FirstOrder.Arith.HierarchySymbol.Semiformula.val β.graph) c.Graph (fun (x : Fin arity) => v x.succ.succ) (v 0) (v 1)
                                            instance LO.Arith.Language.TermRec.Construction.graph_definable {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) :
                                            𝚺₁.Boldface fun (v : Fin arity.succ.succV) => c.Graph (fun (x : Fin arity) => v x.succ.succ) (v 0) (v 1)
                                            Equations
                                            • =
                                            instance LO.Arith.Language.TermRec.Construction.graph_definable₂ {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) :
                                            { Γ := 𝚺, rank := 0 + 1 }-Relation c.Graph param
                                            Equations
                                            • =
                                            theorem LO.Arith.Language.TermRec.Construction.graph_dom_isUTerm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {t : V} {y : V} :
                                            c.Graph param t yL.IsUTerm t
                                            theorem LO.Arith.Language.TermRec.Construction.graph_bvar_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {y : V} {z : V} :
                                            c.Graph param (LO.Arith.qqBvar z) y y = c.bvar param z
                                            theorem LO.Arith.Language.TermRec.Construction.graph_fvar_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {y : V} (x : V) :
                                            c.Graph param (LO.Arith.qqFvar x) y y = c.fvar param x
                                            theorem LO.Arith.Language.TermRec.Construction.graph_func {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {k : V} {f : V} {v : V} {w : V} (hkr : L.Func k f) (hv : L.IsUTermVec k v) (hkw : k = LO.Arith.len w) (hw : i < k, c.Graph param (LO.Arith.nth v i) (LO.Arith.nth w i)) :
                                            c.Graph param (LO.Arith.qqFunc k f v) (c.func param k f v w)
                                            theorem LO.Arith.Language.TermRec.Construction.graph_func_inv {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {k : V} {f : V} {v : V} {y : V} :
                                            c.Graph param (LO.Arith.qqFunc k f v) y∃ (w : V), (k = LO.Arith.len w i < k, c.Graph param (LO.Arith.nth v i) (LO.Arith.nth w i)) y = c.func param k f v w
                                            theorem LO.Arith.Language.TermRec.Construction.graph_exists {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} (param : Fin arityV) {t : V} :
                                            L.IsUTerm t∃ (y : V), c.Graph param t y
                                            theorem LO.Arith.Language.TermRec.Construction.graph_unique {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} (param : Fin arityV) {t : V} {y₁ : V} {y₂ : V} :
                                            c.Graph param t y₁c.Graph param t y₂y₁ = y₂
                                            theorem LO.Arith.Language.TermRec.Construction.graph_existsUnique {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {t : V} (ht : L.IsUTerm t) :
                                            ∃! y : V, c.Graph param t y
                                            theorem LO.Arith.Language.TermRec.Construction.graph_existsUnique_total {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (t : V) :
                                            ∃! y : V, (L.IsUTerm tc.Graph param t y) (¬L.IsUTerm ty = 0)
                                            def LO.Arith.Language.TermRec.Construction.result {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (t : V) :
                                            V
                                            Equations
                                            Instances For
                                              def LO.Arith.Language.TermRec.Construction.result_prop {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {t : V} (ht : L.IsUTerm t) :
                                              c.Graph param t (c.result param t)
                                              Equations
                                              • =
                                              Instances For
                                                def LO.Arith.Language.TermRec.Construction.result_prop_not {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {t : V} (ht : ¬L.IsUTerm t) :
                                                c.result param t = 0
                                                Equations
                                                • =
                                                Instances For
                                                  theorem LO.Arith.Language.TermRec.Construction.result_eq_of_graph {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} {t : V} {y : V} (ht : L.IsUTerm t) (h : c.Graph param t y) :
                                                  c.result param t = y
                                                  @[simp]
                                                  theorem LO.Arith.Language.TermRec.Construction.result_bvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} (z : V) :
                                                  c.result param (LO.Arith.qqBvar z) = c.bvar param z
                                                  @[simp]
                                                  theorem LO.Arith.Language.TermRec.Construction.result_fvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} (x : V) :
                                                  c.result param (LO.Arith.qqFvar x) = c.fvar param x
                                                  theorem LO.Arith.Language.TermRec.Construction.result_func {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} {k : V} {f : V} {v : V} {w : V} (hkf : L.Func k f) (hv : L.IsUTermVec k v) (hkw : k = LO.Arith.len w) (hw : i < k, c.result param (LO.Arith.nth v i) = LO.Arith.nth w i) :
                                                  c.result param (LO.Arith.qqFunc k f v) = c.func param k f v w
                                                  theorem LO.Arith.Language.TermRec.Construction.graph_existsUnique_vec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} {c : LO.Arith.Language.TermRec.Construction V L β} {param : Fin arityV} {k : V} {w : V} (hw : L.IsUTermVec k w) :
                                                  ∃! w' : V, k = LO.Arith.len w' i < k, c.Graph param (LO.Arith.nth w i) (LO.Arith.nth w' i)
                                                  theorem LO.Arith.Language.TermRec.Construction.graph_existsUnique_vec_total {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (k : V) (w : V) :
                                                  ∃! w' : V, (L.IsUTermVec k wk = LO.Arith.len w' i < k, c.Graph param (LO.Arith.nth w i) (LO.Arith.nth w' i)) (¬L.IsUTermVec k ww' = 0)
                                                  def LO.Arith.Language.TermRec.Construction.resultVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) (k : V) (w : V) :
                                                  V
                                                  Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem LO.Arith.Language.TermRec.Construction.resultVec_lh {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {k : V} {w : V} (hw : L.IsUTermVec k w) :
                                                    LO.Arith.len (c.resultVec param k w) = k
                                                    theorem LO.Arith.Language.TermRec.Construction.graph_of_mem_resultVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {k : V} {w : V} (hw : L.IsUTermVec k w) {i : V} (hi : i < k) :
                                                    c.Graph param (LO.Arith.nth w i) (LO.Arith.nth (c.resultVec param k w) i)
                                                    theorem LO.Arith.Language.TermRec.Construction.nth_resultVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {k : V} {w : V} {i : V} (hw : L.IsUTermVec k w) (hi : i < k) :
                                                    LO.Arith.nth (c.resultVec param k w) i = c.result param (LO.Arith.nth w i)
                                                    @[simp]
                                                    def LO.Arith.Language.TermRec.Construction.resultVec_of_not {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {k : V} {w : V} (hw : ¬L.IsUTermVec k w) :
                                                    c.resultVec param k w = 0
                                                    Equations
                                                    • =
                                                    Instances For
                                                      @[simp]
                                                      theorem LO.Arith.Language.TermRec.Construction.resultVec_nil {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) :
                                                      c.resultVec param 0 0 = 0
                                                      theorem LO.Arith.Language.TermRec.Construction.resultVec_cons {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (param : Fin arityV) {k : V} {w : V} {t : V} (hw : L.IsUTermVec k w) (ht : L.IsUTerm t) :
                                                      c.resultVec param (k + 1) (cons t w) = cons (c.result param t) (c.resultVec param k w)
                                                      @[simp]
                                                      theorem LO.Arith.Language.TermRec.Construction.result_func' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) {param : Fin arityV} {k : V} {f : V} {v : V} (hkf : L.Func k f) (hv : L.IsUTermVec k v) :
                                                      c.result param (LO.Arith.qqFunc k f v) = c.func param k f v (c.resultVec param k v)
                                                      theorem LO.Arith.Language.TermRec.Construction.result_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) :
                                                      LO.FirstOrder.Arith.HierarchySymbol.DefinedFunction (fun (v : Fin arity.succV) => c.result (fun (x : Fin arity) => v x.succ) (v 0)) β.result
                                                      @[simp]
                                                      theorem LO.Arith.Language.TermRec.Construction.result_graphDef {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (v : Fin (arity + 2)V) :
                                                      V ⊧/v (LO.FirstOrder.Arith.HierarchySymbol.Semiformula.val β.result) v 0 = c.result (fun (x : Fin arity) => v x.succ.succ) (v 1)
                                                      theorem LO.Arith.Language.TermRec.Construction.resultVec_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) :
                                                      LO.FirstOrder.Arith.HierarchySymbol.DefinedFunction (fun (v : Fin arity.succ.succV) => c.resultVec (fun (x : Fin arity) => v x.succ.succ) (v 0) (v 1)) β.resultVec
                                                      theorem LO.Arith.Language.TermRec.Construction.eval_resultVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {arity : } {β : LO.Arith.Language.TermRec.Blueprint pL arity} (c : LO.Arith.Language.TermRec.Construction V L β) (v : Fin (arity + 3)V) :
                                                      V ⊧/v (LO.FirstOrder.Arith.HierarchySymbol.Semiformula.val β.resultVec) v 0 = c.resultVec (fun (x : Fin arity) => v x.succ.succ.succ) (v 1) (v 2)
                                                      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
                                                          def LO.Arith.Language.termBV {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (t : V) :
                                                          V
                                                          Equations
                                                          Instances For
                                                            def LO.Arith.Language.termBVVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (k : V) (v : V) :
                                                            V
                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem LO.Arith.Language.termBV_bvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (z : V) :
                                                              L.termBV (LO.Arith.qqBvar z) = z + 1
                                                              @[simp]
                                                              theorem LO.Arith.Language.termBV_fvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (x : V) :
                                                              L.termBV (LO.Arith.qqFvar x) = 0
                                                              @[simp]
                                                              theorem LO.Arith.Language.termBV_func {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {f : V} {v : V} (hkf : L.Func k f) (hv : L.IsUTermVec k v) :
                                                              L.termBV (LO.Arith.qqFunc k f v) = LO.Arith.listMax (L.termBVVec k v)
                                                              @[simp]
                                                              theorem LO.Arith.Language.len_termBVVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {v : V} (hv : L.IsUTermVec k v) :
                                                              LO.Arith.len (L.termBVVec k v) = k
                                                              @[simp]
                                                              theorem LO.Arith.Language.nth_termBVVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {v : V} (hv : L.IsUTermVec k v) {i : V} (hi : i < k) :
                                                              LO.Arith.nth (L.termBVVec k v) i = L.termBV (LO.Arith.nth v i)
                                                              @[simp]
                                                              theorem LO.Arith.Language.termBVVec_nil {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                                                              L.termBVVec 0 0 = 0
                                                              theorem LO.Arith.Language.termBVVec_cons {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {t : V} {ts : V} (ht : L.IsUTerm t) (hts : L.IsUTermVec k ts) :
                                                              L.termBVVec (k + 1) (cons t ts) = cons (L.termBV t) (L.termBVVec k ts)
                                                              Equations
                                                              Instances For
                                                                Equations
                                                                Instances For
                                                                  Equations
                                                                  • =
                                                                  instance LO.Arith.Language.termBV_definable' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {Γ : LO.SigmaPiDelta} {k : } :
                                                                  { Γ := Γ, rank := k + 1 }-Function₁ L.termBV
                                                                  Equations
                                                                  • =
                                                                  theorem LO.Arith.Language.termBVVec_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                                                                  LO.FirstOrder.Arith.HierarchySymbol.DefinedFunction (fun (v : Fin 2V) => L.termBVVec (v 0) (v 1)) pL.termBVVecDef
                                                                  Equations
                                                                  • =
                                                                  instance LO.Arith.Language.termBVVec_definable' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {Γ : LO.SigmaPiDelta} {i : } :
                                                                  { Γ := Γ, rank := i + 1 }-Function₂ L.termBVVec
                                                                  Equations
                                                                  • =
                                                                  def LO.Arith.Language.IsSemiterm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (n : V) (t : V) :
                                                                  Equations
                                                                  • L.IsSemiterm n t = (L.IsUTerm t L.termBV t n)
                                                                  Instances For
                                                                    def LO.Arith.Language.IsSemitermVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (k : V) (n : V) (v : V) :
                                                                    Equations
                                                                    Instances For
                                                                      @[reducible, inline]
                                                                      abbrev LO.Arith.Language.IsTerm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (t : V) :
                                                                      Equations
                                                                      • L.IsTerm t = L.IsSemiterm 0 t
                                                                      Instances For
                                                                        @[reducible, inline]
                                                                        abbrev LO.Arith.Language.IsTermVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (k : V) (v : V) :
                                                                        Equations
                                                                        • L.IsTermVec k v = L.IsSemitermVec k 0 v
                                                                        Instances For
                                                                          theorem LO.Arith.Language.IsSemiterm.isUTerm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} (h : L.IsSemiterm n t) :
                                                                          L.IsUTerm t
                                                                          theorem LO.Arith.Language.IsSemiterm.bv {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} (h : L.IsSemiterm n t) :
                                                                          L.termBV t n
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.isUTerm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {v : V} (h : L.IsSemitermVec k n v) :
                                                                          L.IsUTermVec k v
                                                                          theorem LO.Arith.Language.IsSemitermVec.bv {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {v : V} (h : L.IsSemitermVec k n v) {i : V} (hi : i < k) :
                                                                          L.termBV (LO.Arith.nth v i) n
                                                                          theorem LO.Arith.Language.IsSemitermVec.lh {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {v : V} (h : L.IsSemitermVec k n v) :
                                                                          theorem LO.Arith.Language.IsSemitermVec.nth {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {v : V} (h : L.IsSemitermVec k n v) {i : V} (hi : i < k) :
                                                                          L.IsSemiterm n (LO.Arith.nth v i)
                                                                          theorem LO.Arith.Language.IsUTerm.isSemiterm {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {t : V} (h : L.IsUTerm t) :
                                                                          L.IsSemiterm (L.termBV t) t
                                                                          theorem LO.Arith.Language.IsUTermVec.isSemitermVec {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {v : V} (h : L.IsUTermVec k v) :
                                                                          L.IsSemitermVec k (LO.Arith.listMax (L.termBVVec k v)) v
                                                                          theorem LO.Arith.Language.IsSemitermVec.iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {v : V} :
                                                                          L.IsSemitermVec k n v LO.Arith.len v = k i < k, L.IsSemiterm n (LO.Arith.nth v i)
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemiterm.bvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {z : V} :
                                                                          L.IsSemiterm n (LO.Arith.qqBvar z) z < n
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemiterm.fvar {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (n : V) (x : V) :
                                                                          L.IsSemiterm n (LO.Arith.qqFvar x)
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemiterm.func {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {k : V} {f : V} {v : V} :
                                                                          L.IsSemiterm n (LO.Arith.qqFunc k f v) L.Func k f L.IsSemitermVec k n v
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.empty {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (n : V) :
                                                                          L.IsSemitermVec 0 n 0
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.empty_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {v : V} {n : V} :
                                                                          L.IsSemitermVec 0 n v v = 0
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.cons_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {w : V} {t : V} :
                                                                          L.IsSemitermVec (k + 1) n (cons t w) L.IsSemiterm n t L.IsSemitermVec k n w
                                                                          theorem LO.Arith.Language.SemitermVec.cons {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {m : V} {w : V} {t : V} (h : L.IsSemitermVec n m w) (ht : L.IsSemiterm m t) :
                                                                          L.IsSemitermVec (n + 1) m (cons t w)
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.singleton {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} :
                                                                          L.IsSemitermVec 1 n ?[t] L.IsSemiterm n t
                                                                          @[simp]
                                                                          theorem LO.Arith.Language.IsSemitermVec.doubleton {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t₁ : V} {t₂ : V} :
                                                                          L.IsSemitermVec 2 n ?[t₁, t₂] L.IsSemiterm n t₁ L.IsSemiterm n t₂
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            theorem LO.Arith.Language.isSemiterm_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                                                                            𝚫₁-Relation L.IsSemiterm via pL.isSemitermDef
                                                                            Equations
                                                                            • =
                                                                            instance LO.Arith.Language.isSemiterm_defined' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (Γ : LO.SigmaPiDelta) (m : ) :
                                                                            { Γ := Γ, rank := m + 1 }-Relation L.IsSemiterm
                                                                            Equations
                                                                            • =
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              theorem LO.Arith.Language.isSemitermVec_defined {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] :
                                                                              𝚫₁-Relation₃ L.IsSemitermVec via pL.isSemitermVecDef
                                                                              Equations
                                                                              • =
                                                                              instance LO.Arith.Language.isSemitermVec_defined' {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (L : LO.Arith.Language V) {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (Γ : LO.SigmaPiDelta) (m : ) :
                                                                              { Γ := Γ, rank := m + 1 }-Relation₃ L.IsSemitermVec
                                                                              Equations
                                                                              • =
                                                                              theorem LO.Arith.Language.IsSemiterm.case_iff {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} :
                                                                              L.IsSemiterm n t (z < n, t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsSemitermVec k n v t = LO.Arith.qqFunc k f v
                                                                              theorem LO.Arith.Language.IsSemiterm.mk {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} :
                                                                              ((z < n, t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsSemitermVec k n v t = LO.Arith.qqFunc k f v)L.IsSemiterm n t

                                                                              Alias of the reverse direction of LO.Arith.Language.IsSemiterm.case_iff.

                                                                              theorem LO.Arith.Language.IsSemiterm.case {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} {t : V} :
                                                                              L.IsSemiterm n t(z < n, t = LO.Arith.qqBvar z) (∃ (x : V), t = LO.Arith.qqFvar x) ∃ (k : V) (f : V) (v : V), L.Func k f L.IsSemitermVec k n v t = LO.Arith.qqFunc k f v

                                                                              Alias of the forward direction of LO.Arith.Language.IsSemiterm.case_iff.

                                                                              theorem LO.Arith.Language.IsSemiterm.induction {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {n : V} (Γ : LO.SigmaPiDelta) {P : VProp} (hP : { Γ := Γ, rank := 1 }-Predicate P) (hbvar : z < n, P (LO.Arith.qqBvar z)) (hfvar : ∀ (x : V), P (LO.Arith.qqFvar x)) (hfunc : ∀ (k f v : V), L.Func k fL.IsSemitermVec k n v(i < k, P (LO.Arith.nth v i))P (LO.Arith.qqFunc k f v)) (t : V) :
                                                                              L.IsSemiterm n tP t
                                                                              @[simp]
                                                                              theorem LO.Arith.Language.IsSemitermVec.nil {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] (k : V) :
                                                                              L.IsSemitermVec 0 k 0
                                                                              @[simp]
                                                                              theorem LO.Arith.Language.IsSemitermVec.cons {V : Type u_1} [LO.ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {L : LO.Arith.Language V} {pL : LO.FirstOrder.Arith.LDef} [L.Defined pL] {k : V} {n : V} {w : V} {t : V} (h : L.IsSemitermVec n k w) (ht : L.IsSemiterm k t) :
                                                                              L.IsSemitermVec (n + 1) k (cons t w)