Documentation

Foundation.FirstOrder.Arithmetic.HFS.Vec

Vec #

@[instance_reducible]
Equations
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
        theorem FFL.FirstOrder.Arithmetic.nil_or_adjoin {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (z : V) :
        z = 0 ∨ ∃ (x : V) (v : V), z = adjoin x v
        @[simp]
        theorem FFL.FirstOrder.Arithmetic.adjoin_inj {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (x₁ x₂ v₁ v₂ : V) :
        adjoin x₁ v₁ = adjoin x₂ v₂ ↔ x₁ = x₂ ∧ v₁ = v₂
        theorem FFL.FirstOrder.Arithmetic.adjoin_le_adjoin {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {x₁ x₂ v₁ v₂ : V} (hx : x₁ ≤ x₂) (hv : v₁ ≤ v₂) :
        adjoin x₁ v₁ ≤ adjoin x₂ v₂
        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
              instance FFL.FirstOrder.Arithmetic.mkVec₂_definable' {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (Γ : SigmaPiDelta) (m : ℕ) :
              { Γ := Γ, rank := m + 1 }-Function₂ fun (x y : V) => ?[x, y]

              N-th element of List #

              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
                  theorem FFL.FirstOrder.Arithmetic.Nth.graph_case {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {pr : V} :
                  Graph pr ↔ (∃ (v : V), pr = ⟪v, ⟪0, fstIdx v⟫⟫) ∨ ∃ (v : V) (i : V) (x : V), pr = ⟪v, ⟪i + 1, x⟫⟫ ∧ Graph ⟪sndIdx v, ⟪i, x⟫⟫
                  theorem FFL.FirstOrder.Arithmetic.Nth.graph_unique {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {v i x₁ x₂ : V} :
                  Graph ⟪v, ⟪i, x₁⟫⟫ → Graph ⟪v, ⟪i, x₂⟫⟫ → x₁ = x₂
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem FFL.FirstOrder.Arithmetic.adjoin_cases {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (x : V) :
                    x = 0 ∨ ∃ (y : V) (v : V), x = adjoin y v
                    theorem FFL.FirstOrder.Arithmetic.adjoin_induction {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (Γ : SigmaPiDelta) {P : V → Prop} (hP : { Γ := Γ, rank := 1 }-Predicate P) (nil : P 0) (adjoin : ∀ (x v : V), P v → P (adjoin x v)) (v : V) :
                    P v
                    theorem FFL.FirstOrder.Arithmetic.adjoin_ISigma1.sigma1_succ_induction {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {P : V → Prop} (hP : 𝚺₁-Predicate P) (nil : P 0) (adjoin : ∀ (x v : V), P v → P (adjoin x v)) (v : V) :
                    P v
                    theorem FFL.FirstOrder.Arithmetic.adjoin_ISigma1.pi1_succ_induction {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {P : V → Prop} (hP : 𝚷₁-Predicate P) (nil : P 0) (adjoin : ∀ (x v : V), P v → P (adjoin x v)) (v : V) :
                    P v
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem FFL.FirstOrder.Arithmetic.nth_lt_of_pos {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {v : V} (hv : 0 < v) (i : V) :
                      nth v i < v

                      Inductivly Construction of Function on List #

                      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
                            structure FFL.FirstOrder.Arithmetic.VecRec.Construction (V : Type u_1) [ORingStructure V] {arity : ℕ} (β : Blueprint arity) :
                            Type u_1
                            Instances For
                              def FFL.FirstOrder.Arithmetic.VecRec.Construction.Phi {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (C : Set V) (pr : V) :
                              Equations
                              Instances For
                                Equations
                                Instances For
                                  def FFL.FirstOrder.Arithmetic.VecRec.Construction.Graph {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) :
                                  V → Prop
                                  Equations
                                  Instances For
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_defined {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) :
                                    HierarchySymbol.Defined (fun (v : Fin (arity + 1) → V) => c.Graph (fun (x : Fin arity) => v x.succ) (v 0)) β.graphDef
                                    instance FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_definable {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) :
                                    𝚺₁.Definable fun (v : Fin (arity + 1) → V) => c.Graph (fun (x : Fin arity) => v x.succ) (v 0)
                                    instance FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_definable'' {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) :
                                    { Γ := 𝚺, rank := 0 + 1 }-Predicate c.Graph param
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_case {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) {param : Fin arity → V} {pr : V} :
                                    c.Graph param pr ↔ pr = ⟪0, c.nil param⟫ ∨ ∃ (x : V) (xs : V) (ih : V), pr = ⟪Adjoin.adjoin x xs, c.adjoin param x xs ih⟫ ∧ c.Graph param ⟪xs, ih⟫
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_nil {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) {param : Fin arity → V} {l : V} :
                                    c.Graph param ⟪0, l⟫ ↔ l = c.nil param
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_adjoin {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) {param : Fin arity → V} {x xs y : V} :
                                    c.Graph param ⟪Adjoin.adjoin x xs, y⟫ ↔ ∃ (y' : V), y = c.adjoin param x xs y' ∧ c.Graph param ⟪xs, y'⟫
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_exists {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (xs : V) :
                                    ∃ (y : V), c.Graph param ⟪xs, y⟫
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_unique {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) {param : Fin arity → V} {xs y₁ y₂ : V} :
                                    c.Graph param ⟪xs, y₁⟫ → c.Graph param ⟪xs, y₂⟫ → y₁ = y₂
                                    theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.graph_existsUnique {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (xs : V) :
                                    ∃! y : V, c.Graph param ⟪xs, y⟫
                                    noncomputable def FFL.FirstOrder.Arithmetic.VecRec.Construction.result {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (xs : V) :
                                    V
                                    Equations
                                    Instances For
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.result_graph {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (xs : V) :
                                      c.Graph param ⟪xs, c.result param xs⟫
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.result_eq_of_graph {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) {xs y : V} (h : c.Graph param ⟪xs, y⟫) :
                                      c.result param xs = y
                                      @[simp]
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.result_nil {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) :
                                      c.result param 0 = c.nil param
                                      @[simp]
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.result_adjoin {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (param : Fin arity → V) (x xs : V) :
                                      c.result param (Adjoin.adjoin x xs) = c.adjoin param x xs (c.result param xs)
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.result_defined {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) :
                                      HierarchySymbol.DefinedFunction (fun (v : Fin (arity + 1) → V) => c.result (fun (x : Fin arity) => v x.succ) (v 0)) β.resultDef
                                      @[simp]
                                      theorem FFL.FirstOrder.Arithmetic.VecRec.Construction.eval_resultDef {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (v : Fin (arity + 2) → V) :
                                      (Semiformula.Evalb v) ↑β.resultDef ↔ v 0 = c.result (fun (x : Fin arity) => v x.succ.succ) (v 1)
                                      instance FFL.FirstOrder.Arithmetic.VecRec.Construction.result_definable {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) :
                                      𝚺₁.DefinableFunction fun (v : Fin (arity + 1) → V) => c.result (fun (x : Fin arity) => v x.succ) (v 0)
                                      instance FFL.FirstOrder.Arithmetic.VecRec.Construction.result_definable' {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {arity : ℕ} {β : Blueprint arity} (c : Construction V β) (Γ : SigmaPiDelta) (m : ℕ) :
                                      { Γ := Γ, rank := m + 1 }.DefinableFunction fun (v : Fin (arity + 1) → V) => c.result (fun (x : Fin arity) => v x.succ) (v 0)

                                      Length of List #

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        Equations
                                        Instances For
                                          theorem FFL.FirstOrder.Arithmetic.nth_ext {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {v₁ v₂ : V} (hl : len v₁ = len v₂) (H : ∀ i < len v₁, nth v₁ i = nth v₂ i) :
                                          v₁ = v₂
                                          theorem FFL.FirstOrder.Arithmetic.nth_ext' {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (l : V) {v₁ v₂ : V} (hl₁ : len v₁ = l) (hl₂ : len v₂ = l) (H : ∀ i < l, nth v₁ i = nth v₂ i) :
                                          v₁ = v₂
                                          theorem FFL.FirstOrder.Arithmetic.le_of_nth_le_nth {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {v₁ v₂ : V} (hl : len v₁ = len v₂) (H : ∀ i < len v₁, nth v₁ i ≤ nth v₂ i) :
                                          v₁ ≤ v₂
                                          theorem FFL.FirstOrder.Arithmetic.sigmaOne_skolem_vec {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {R : V → V → Prop} (hP : 𝚺₁-Relation R) {l : V} (H : ∀ x < l, ∃ (y : V), R x y) :
                                          ∃ (v : V), len v = l ∧ ∀ i < l, R i (nth v i)

                                          Maximum of List #

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Equations
                                            Instances For

                                              Take Last k-Element #

                                              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
                                                  @[simp]
                                                  theorem FFL.FirstOrder.Arithmetic.add_sub_add {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (a b c : V) :
                                                  a + c - (b + c) = a - b

                                                  TODO: move

                                                  theorem FFL.FirstOrder.Arithmetic.takeLast_succ_of_lt {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] {i v : V} (h : i < len v) :
                                                  takeLast v (i + 1) = adjoin (nth v (len v - (i + 1))) (takeLast v i)

                                                  Concatation #

                                                  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
                                                      theorem FFL.FirstOrder.Arithmetic.concat_nth_lt {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (v z : V) {i : V} (hi : i < len v) :
                                                      nth (concat v z) i = nth v i
                                                      theorem FFL.FirstOrder.Arithmetic.concat_nth_len' {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (v z : V) {i : V} (hi : len v = i) :
                                                      nth (concat v z) i = z

                                                      Membership #

                                                      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

                                                          Subset #

                                                          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

                                                              Repeat #

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                Equations
                                                                Instances For

                                                                  repeatVec x k = x ∷ x ∷ x ∷ ... k times ... ∷ 0

                                                                  Equations
                                                                  Instances For
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      theorem FFL.FirstOrder.Arithmetic.nth_repeatVec {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁] (x k : V) {i : V} (h : i < k) :
                                                                      nth (repeatVec x k) i = x

                                                                      Convert to Set #

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        Equations
                                                                        Instances For