Documentation

Arithmetization.ISigmaOne.HFS.Seq

Sequence #

def LO.Arith.Seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
Equations
Instances For
    def LO.Arith.Seq.isMapping {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) :
    Equations
    • ⋯ = ⋯
    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 LO.Arith.lh_exists_uniq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
          ∃! l : V, (Seq s → domain s = under l) ∧ (¬Seq s → l = 0)
          def LO.Arith.lh {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
          V
          Equations
          Instances For
            theorem LO.Arith.lh_prop {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
            (Seq s → domain s = under (lh s)) ∧ (¬Seq s → lh s = 0)
            theorem LO.Arith.lh_prop_of_not_seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : ¬Seq s) :
            lh s = 0
            theorem LO.Arith.Seq.domain_eq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) :
            @[simp]
            theorem LO.Arith.lh_bound {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
            lh s ≤ 2 * s
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem LO.Arith.Seq.exists {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x : V} (hx : x < lh s) :
              ∃ (y : V), ⟪x, y⟫ ∈ s
              theorem LO.Arith.Seq.nth_exists_uniq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x : V} (hx : x < lh s) :
              ∃! y : V, ⟪x, y⟫ ∈ s
              def LO.Arith.Seq.nth {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x : V} (hx : x < lh s) :
              V
              Equations
              Instances For
                @[simp]
                theorem LO.Arith.Seq.nth_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x : V} (hx : x < lh s) :
                ⟪x, h.nth hx⟫ ∈ s
                theorem LO.Arith.Seq.nth_uniq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x y : V} (hx : x < lh s) (hy : ⟪x, y⟫ ∈ s) :
                y = h.nth hx
                @[simp]
                theorem LO.Arith.Seq.nth_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {x : V} (hx : x < lh s) :
                h.nth hx < s
                theorem LO.Arith.Seq.lh_eq_of {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (H : Seq s) {l : V} (h : domain s = under l) :
                lh s = l
                theorem LO.Arith.Seq.lt_lh_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {i : V} :
                i < lh s ↔ i ∈ domain s
                theorem LO.Arith.Seq.lt_lh_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) {i x : V} (hix : ⟪i, x⟫ ∈ s) :
                i < lh s
                def LO.Arith.seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s x : V) :
                V
                Equations
                Instances For
                  def LO.Arith.znth_existsUnique {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s i : V) :
                  ∃! x : V, (Seq s ∧ i < lh s → ⟪i, x⟫ ∈ s) ∧ (¬(Seq s ∧ i < lh s) → x = 0)
                  Equations
                  • ⋯ = ⋯
                  Instances For
                    def LO.Arith.znth {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s i : V) :
                    V
                    Equations
                    Instances For
                      theorem LO.Arith.Seq.znth {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s i : V} (h : Seq s) (hi : i < lh s) :
                      ⟪i, znth s i⟫ ∈ s
                      theorem LO.Arith.Seq.znth_eq_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {x s i : V} (h : Seq s) (hi : ⟪i, x⟫ ∈ s) :
                      znth s i = x
                      theorem LO.Arith.znth_prop_not {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s i : V} (h : ¬Seq s ∨ lh s ≤ i) :
                      znth s i = 0
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem LO.Arith.Seq.isempty_of_lh_eq_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (Hs : Seq s) (h : lh s = 0) :
                        s = ∅
                        @[simp]
                        theorem LO.Arith.Seq.subset_seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s x : V) :
                        s ⊆ s ⁀' x
                        theorem LO.Arith.Seq.lt_seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (hs : Seq s) (x : V) :
                        s < s ⁀' x
                        @[simp]
                        theorem LO.Arith.Seq.mem_seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s x : V) :
                        ⟪lh s, x⟫ ∈ s ⁀' x
                        theorem LO.Arith.Seq.seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (h : Seq s) (x : V) :
                        Seq (s ⁀' x)
                        @[simp]
                        theorem LO.Arith.Seq.lh_seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (x : V) {s : V} (h : Seq s) :
                        lh (s ⁀' x) = lh s + 1
                        theorem LO.Arith.mem_seqCons_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i x z s : V} :
                        ⟪i, x⟫ ∈ s ⁀' z ↔ i = lh s ∧ x = z ∨ ⟪i, x⟫ ∈ s
                        @[simp]
                        theorem LO.Arith.lh_mem_seqCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s z : V) :
                        ⟪lh s, z⟫ ∈ s ⁀' z
                        @[simp]
                        theorem LO.Arith.lh_mem_seqCons_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s x z : V} (H : Seq s) :
                        ⟪lh s, x⟫ ∈ s ⁀' z ↔ x = z
                        theorem LO.Arith.Seq.mem_seqCons_iff_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i s x z : V} (hi : i < lh s) :
                        ⟪i, x⟫ ∈ s ⁀' z ↔ ⟪i, x⟫ ∈ s
                        @[simp]
                        theorem LO.Arith.lh_not_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (Ss : Seq s) (x : V) :
                        ⟪lh s, x⟫ ∉ s
                        theorem LO.Arith.seqCons_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (t x s : V) :
                        t = s ⁀' x ↔ ∃ l ≤ 2 * s, l = lh s ∧ ∃ p ≤ (2 * s + x + 1) ^ 2, p = ⟪l, x⟫ ∧ t = insert p s
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem LO.Arith.seqCons_absolute {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s a : ℕ) :
                          ↑(s ⁀' a) = ↑s ⁀' ↑a
                          theorem LO.Arith.Seq.restr {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (H : Seq s) {i : V} (hi : i ≤ lh s) :
                          theorem LO.Arith.Seq.restr_lh {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} (H : Seq s) {i : V} (hi : i ≤ lh s) :
                          lh (Arith.restr s (under i)) = i
                          theorem LO.Arith.domain_bitRemove_of_isMapping_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {x y s : V} (hs : IsMapping s) (hxy : ⟪x, y⟫ ∈ s) :
                          domain (bitRemove ⟪x, y⟫ s) = bitRemove x (domain s)
                          theorem LO.Arith.Seq.eq_of_eq_of_subset {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s₁ s₂ : V} (H₁ : Seq s₁) (H₂ : Seq s₂) (hl : lh s₁ = lh s₂) (h : s₁ ⊆ s₂) :
                          s₁ = s₂
                          theorem LO.Arith.subset_pair {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s t : V} (h : ∀ (i x : V), ⟪i, x⟫ ∈ s → ⟪i, x⟫ ∈ t) :
                          s ⊆ t
                          theorem LO.Arith.Seq.lh_ext {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s₁ s₂ : V} (H₁ : Seq s₁) (H₂ : Seq s₂) (h : lh s₁ = lh s₂) (H : ∀ (i x₁ x₂ : V), ⟪i, x₁⟫ ∈ s₁ → ⟪i, x₂⟫ ∈ s₂ → x₁ = x₂) :
                          s₁ = s₂
                          @[simp]
                          theorem LO.Arith.Seq.seqCons_ext {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a₁ a₂ s₁ s₂ : V} (H₁ : Seq s₁) (H₂ : Seq s₂) :
                          s₁ ⁀' a₁ = s₂ ⁀' a₂ ↔ a₁ = a₂ ∧ s₁ = s₂
                          theorem LO.Arith.ne_zero_iff_one_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a : V} :
                          a ≠ 0 ↔ 1 ≤ a

                          TODO: move to Lemmata.lean

                          theorem LO.Arith.Seq.cases_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} :
                          Seq s ↔ s = ∅ ∨ ∃ (x : V) (s' : V), Seq s' ∧ s = s' ⁀' x
                          theorem LO.Arith.Seq.cases {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} :
                          Seq s → s = ∅ ∨ ∃ (x : V) (s' : V), Seq s' ∧ s = s' ⁀' x

                          Alias of the forward direction of LO.Arith.Seq.cases_iff.

                          theorem LO.Arith.seq_induction {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (Γ : SigmaPiDelta) {P : V → Prop} (hP : { Γ := Γ, rank := 1 }-Predicate P) (hnil : P ∅) (hcons : ∀ (s x : V), Seq s → P s → P (s ⁀' x)) {s : V} :
                          Seq s → P s

                          !⟦x, y, z, ...⟧ notation for Seq

                          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 LO.Arith.singleton_seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (x : V) :
                              Seq !⟦x⟧
                              @[simp]
                              theorem LO.Arith.doubleton_seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (x y : V) :
                              Seq !⟦x, y⟧
                              @[simp]
                              theorem LO.Arith.mem_singleton_seq_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (x y : V) :
                              ⟪0, x⟫ ∈ !⟦y⟧ ↔ x = y
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                instance LO.Arith.mkSeq₁_definable {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
                                𝚺₀-Function₁ fun (x : V) => !⟦x⟧
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  instance LO.Arith.mkSeq₂_definable {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
                                  𝚺₁-Function₂ fun (x y : V) => !⟦x, y⟧
                                  instance LO.Arith.mkSeq₂_definable' {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (Γ : SigmaPiDelta) (m : ℕ) :
                                  { Γ := Γ, rank := m + 1 }-Function₂ fun (x y : V) => !⟦x, y⟧
                                  theorem LO.Arith.sigmaOne_skolem_seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {R : V → V → Prop} (hP : 𝚺₁-Relation R) {l : V} (H : ∀ x < l, ∃ (y : V), R x y) :
                                  ∃ (s : V), Seq s ∧ lh s = l ∧ ∀ (i x : V), ⟪i, x⟫ ∈ s → R i x
                                  theorem LO.Arith.sigmaOne_skolem_seq! {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {R : V → V → Prop} (hP : 𝚺₁-Relation R) {l : V} (H : ∀ x < l, ∃! y : V, R x y) :
                                  ∃! s : V, Seq s ∧ lh s = l ∧ ∀ (i x : V), ⟪i, x⟫ ∈ s → R i x
                                  def LO.Arith.vecToSeq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : ℕ} :
                                  (Fin n → V) → V
                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem LO.Arith.vecToSeq_vecCons {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : ℕ} (v : Fin n → V) (a : V) :
                                    @[simp]
                                    theorem LO.Arith.vecToSeq_seq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : ℕ} (v : Fin n → V) :
                                    @[simp]
                                    theorem LO.Arith.lh_vecToSeq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : ℕ} (v : Fin n → V) :
                                    lh (vecToSeq v) = ↑n
                                    theorem LO.Arith.mem_vectoSeq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {n : ℕ} (v : Fin n → V) (i : Fin n) :
                                    ⟪↑↑i, v i⟫ ∈ vecToSeq v
                                    theorem LO.Arith.order_ball_induction_sigma1 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {f : V → V → V} (hf : 𝚺₁-Function₂ f) {P : V → V → Prop} (hP : 𝚺₁-Relation P) (ind : ∀ (x y : V), (∀ x' < x, ∀ y' ≤ f x y, P x' y') → P x y) (x y : V) :
                                    P x y
                                    theorem LO.Arith.order_ball_induction_sigma1' {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {f : V → V} (hf : 𝚺₁-Function₁ f) {P : V → V → Prop} (hP : 𝚺₁-Relation P) (ind : ∀ (x y : V), (∀ x' < x, ∀ y' ≤ f y, P x' y') → P x y) (x y : V) :
                                    P x y
                                    theorem LO.Arith.order_ball_induction₂_sigma1 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {fy fz : V → V → V → V} (hfy : 𝚺₁-Function₃ fy) (hfz : 𝚺₁-Function₃ fz) {P : V → V → V → Prop} (hP : 𝚺₁-Relation₃ P) (ind : ∀ (x y z : V), (∀ x' < x, ∀ y' ≤ fy x y z, ∀ z' ≤ fz x y z, P x' y' z') → P x y z) (x y z : V) :
                                    P x y z
                                    theorem LO.Arith.order_ball_induction₃_sigma1 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {fy fz fw : V → V → V → V → V} (hfy : 𝚺₁-Function₄ fy) (hfz : 𝚺₁-Function₄ fz) (hfw : 𝚺₁-Function₄ fw) {P : V → V → V → V → Prop} (hP : 𝚺₁-Relation₄ P) (ind : ∀ (x y z w : V), (∀ x' < x, ∀ y' ≤ fy x y z w, ∀ z' ≤ fz x y z w, ∀ w' ≤ fw x y z w, P x' y' z' w') → P x y z w) (x y z w : V) :
                                    P x y z w