Documentation

Arithmetization.ISigmaOne.Bit

def LO.Arith.Bit {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
Equations
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      instance LO.Arith.mem_definable {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
      𝚺₀-Relation fun (x1 x2 : V) => x1 x2
      instance LO.Arith.mem_definable' {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (ℌ : FirstOrder.Arith.HierarchySymbol) :
      -Relation fun (x1 x2 : V) => x1 x2
      theorem LO.Arith.mem_absolute {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : ) :
      i a i a
      theorem LO.Arith.mem_iff_bit {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
      i a Bit i a
      theorem LO.Arith.exp_le_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
      exp i a
      theorem LO.Arith.lt_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
      i < a
      theorem LO.Arith.not_mem_of_lt_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : a < exp i) :
      ia
      theorem LO.Arith.HierarchySymbol.Boldface.ball_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (Γ : SigmaPiDelta) (m : ) {P : (Fin kV)VProp} {f : (Fin kV)V} (hf : { Γ := 𝚺, rank := m + 1 }.BoldfaceFunction f) (h : { Γ := Γ, rank := m + 1 }.Boldface fun (w : Fin (k + 1)V) => P (fun (x : Fin k) => w x.succ) (w 0)) :
      { Γ := Γ, rank := m + 1 }.Boldface fun (v : Fin kV) => xf v, P v x
      theorem LO.Arith.HierarchySymbol.Boldface.bex_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {k : } (Γ : SigmaPiDelta) (m : ) {P : (Fin kV)VProp} {f : (Fin kV)V} (hf : { Γ := 𝚺, rank := m + 1 }.BoldfaceFunction f) (h : { Γ := Γ, rank := m + 1 }.Boldface fun (w : Fin (k + 1)V) => P (fun (x : Fin k) => w x.succ) (w 0)) :
      { Γ := Γ, rank := m + 1 }.Boldface fun (v : Fin kV) => xf v, P v x
      def LO.FirstOrder.Arith.ballIn {ξ : Type u_1} {n : } (t : Semiterm ℒₒᵣ ξ n) (p : Semiformula ℒₒᵣ ξ (n + 1)) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def LO.FirstOrder.Arith.bexIn {ξ : Type u_1} {n : } (t : Semiterm ℒₒᵣ ξ n) (p : Semiformula ℒₒᵣ ξ (n + 1)) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem LO.FirstOrder.Arith.Hierarchy.bit {n : } {μ : Type u_2} {Γ : Polarity} {s : } {t u : Semiterm ℒₒᵣ μ n} :
          Hierarchy Γ s (“!!t ∈ !!u”)
          @[simp]
          theorem LO.FirstOrder.Arith.Hieralchy.ballIn {ξ : Type u_1} {n : } {Γ : Polarity} {m : } (t : Semiterm ℒₒᵣ ξ n) (p : Semiformula ℒₒᵣ ξ (n + 1)) :
          @[simp]
          theorem LO.FirstOrder.Arith.Hieralchy.bexIn {ξ : Type u_1} {n : } {Γ : Polarity} {m : } (t : Semiterm ℒₒᵣ ξ n) (p : Semiformula ℒₒᵣ ξ (n + 1)) :
          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
                    • 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
                          @[simp]
                          theorem LO.FirstOrder.Arith.Hierarchy.memRel {n : } {μ : Type u_2} {Γ : Polarity} {s : } {t₁ t₂ u : Semiterm ℒₒᵣ μ n} :
                          Hierarchy Γ s (memRelOpr.operator ![u, t₁, t₂])
                          @[simp]
                          theorem LO.FirstOrder.Arith.Hierarchy.memRel₃ {n : } {μ : Type u_2} {Γ : Polarity} {s : } {t₁ t₂ t₃ u : Semiterm ℒₒᵣ μ n} :
                          Hierarchy Γ s (memRel₃Opr.operator ![u, t₁, t₂, t₃])
                          @[simp]
                          theorem LO.FirstOrder.Arith.eval_ballIn {ξ : Type u_1} {n : } {V : Type u_2} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {t : Semiterm ℒₒᵣ ξ n} {p : Semiformula ℒₒᵣ ξ (n + 1)} {e : Fin nV} {ε : ξV} :
                          (Semiformula.Evalm V e ε) (ballIn t p) xSemiterm.valm V e ε t, (Semiformula.Evalm V (x :> e) ε) p
                          @[simp]
                          theorem LO.FirstOrder.Arith.eval_bexIn {ξ : Type u_1} {n : } {V : Type u_2} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {t : Semiterm ℒₒᵣ ξ n} {p : Semiformula ℒₒᵣ ξ (n + 1)} {e : Fin nV} {ε : ξV} :
                          (Semiformula.Evalm V e ε) (bexIn t p) xSemiterm.valm V e ε t, (Semiformula.Evalm V (x :> e) ε) p
                          theorem LO.FirstOrder.Arith.memRel₃_defined {V : Type u_2} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
                          𝚺₀-Relation₄ fun (r x y z : V) => x, y, z r via memRel₃
                          @[simp]
                          theorem LO.FirstOrder.Arith.eval_memRel {V : Type u_2} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {x y r : V} :
                          memRelOpr.val ![r, x, y] x, y r
                          @[simp]
                          theorem LO.FirstOrder.Arith.eval_memRel₃ {V : Type u_2} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {x y z r : V} :
                          memRel₃Opr.val ![r, x, y, z] x, y, z r
                          theorem LO.Arith.mem_iff_mul_exp_add_exp_add {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                          i a ∃ (k : V), r < exp i, a = k * exp (i + 1) + exp i + r
                          theorem LO.Arith.not_mem_iff_mul_exp_add {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                          ia ∃ (k : V), r < exp i, a = k * exp (i + 1) + r
                          @[simp]
                          theorem LO.Arith.not_mem_empty {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i : V) :
                          i
                          @[simp]
                          theorem LO.Arith.not_mem_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i : V) :
                          i0
                          Equations
                          Instances For
                            theorem LO.Arith.singleton_def {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                            {a} = exp a
                            noncomputable def LO.Arith.bitInsert {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
                            V
                            Equations
                            Instances For
                              noncomputable def LO.Arith.bitRemove {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
                              V
                              Equations
                              Instances For
                                theorem LO.Arith.insert_eq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                                @[simp]
                                theorem LO.Arith.mem_bitInsert_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j a : V} :
                                i insert j a i = j i a
                                @[simp]
                                theorem LO.Arith.mem_bitRemove_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j a : V} :
                                i bitRemove j a i j i a
                                @[simp]
                                theorem LO.Arith.not_mem_bitRemove_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
                                ibitRemove i a
                                theorem LO.Arith.insert_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (b i a : V) :
                                b = insert i a i a b = a ia eb, e = exp i b = a + e
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem LO.Arith.insert_le_of_le_of_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j a b : V} (hij : i j) (hab : a b) :
                                  insert i a b + exp j
                                  @[simp]
                                  theorem LO.Arith.mem_singleton_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j : V} :
                                  i {j} i = j
                                  theorem LO.Arith.bitRemove_lt_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                  bitRemove i a < a
                                  theorem LO.Arith.pos_of_nonempty {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                  0 < a
                                  @[simp]
                                  theorem LO.Arith.mem_insert {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
                                  i insert i a
                                  theorem LO.Arith.insert_eq_self_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                  insert i a = a
                                  theorem LO.Arith.log_mem_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a : V} (h : 0 < a) :
                                  log a a
                                  theorem LO.Arith.le_log_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                  i log a
                                  theorem LO.Arith.succ_mem_iff_mem_div_two {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                                  i + 1 a i a / 2
                                  theorem LO.Arith.lt_length_of_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                  theorem LO.Arith.lt_exp_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a i : V} :
                                  a < exp i ja, j < i
                                  Equations
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    instance LO.Arith.bitSubset_definable {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
                                    𝚺₀-Relation fun (x1 x2 : V) => x1 x2
                                    @[simp]
                                    instance LO.Arith.bitSubset_definable' {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (ℌ : FirstOrder.Arith.HierarchySymbol) :
                                    -Relation fun (x1 x2 : V) => x1 x2
                                    theorem LO.Arith.subset_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} :
                                    a b xa, x b
                                    @[simp]
                                    theorem LO.Arith.subset_refl {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                    a a
                                    theorem LO.Arith.subset_trans {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b c : V} (hab : a b) (hbc : b c) :
                                    a c
                                    theorem LO.Arith.mem_exp_add_succ_sub_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i j : V) :
                                    i exp (i + j + 1) - 1
                                    def LO.Arith.under {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                    V

                                    under a = {0, 1, 2, ..., a - 1}

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem LO.Arith.le_under {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                      @[simp]
                                      theorem LO.Arith.mem_under_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j : V} :
                                      i under j i < j
                                      @[simp]
                                      theorem LO.Arith.not_mem_under_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i : V) :
                                      iunder i
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        theorem LO.Arith.eq_zero_of_subset_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a : V} :
                                        a 0a = 0
                                        theorem LO.Arith.subset_div_two {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} :
                                        a ba / 2 b / 2
                                        theorem LO.Arith.zero_mem_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a : V} :
                                        0a 2 a
                                        @[simp]
                                        theorem LO.Arith.zero_not_mem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                        02 * a
                                        @[simp]
                                        theorem LO.Arith.zero_mem_double_add_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                        0 2 * a + 1
                                        @[simp]
                                        theorem LO.Arith.succ_mem_two_mul_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                                        i + 1 2 * a i a
                                        @[simp]
                                        theorem LO.Arith.succ_mem_two_mul_succ_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} :
                                        i + 1 2 * a + 1 i a
                                        theorem LO.Arith.le_of_subset {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} (h : a b) :
                                        a b
                                        theorem LO.Arith.mem_ext {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} (h : ∀ (i : V), i a i b) :
                                        a = b
                                        theorem LO.Arith.pos_iff_nonempty {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} :
                                        0 < s s
                                        theorem LO.Arith.nonempty_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a : V} (h : 0 < a) :
                                        ∃ (i : V), i a
                                        theorem LO.Arith.eq_empty_or_nonempty {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
                                        a = ∃ (i : V), i a
                                        theorem LO.Arith.nonempty_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} :
                                        s ∃ (x : V), x s
                                        theorem LO.Arith.isempty_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {s : V} :
                                        s = ∀ (x : V), xs
                                        @[simp]
                                        theorem LO.Arith.empty_subset {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (s : V) :
                                        theorem LO.Arith.lt_of_lt_log {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} (pos : 0 < b) (h : ia, i < log b) :
                                        a < b
                                        @[simp]
                                        theorem LO.Arith.under_inj {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i j : V} :
                                        under i = under j i = j
                                        @[simp]
                                        @[simp]
                                        theorem LO.Arith.under_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i : V) :
                                        under (i + 1) = insert i (under i)
                                        theorem LO.Arith.insert_remove {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {i a : V} (h : i a) :
                                        insert i (bitRemove i a) = a
                                        theorem LO.Arith.finset_comprehension {V : Type u_1} [ORingStruc V] {m : } [Fact (1 m)] [V ⊧ₘ* 𝐈𝐍𝐃𝚺 m] {Γ : SigmaPiDelta} {P : VProp} (hP : { Γ := Γ, rank := m }-Predicate P) (a : V) :
                                        s < exp a, i < a, i s P i
                                        theorem LO.Arith.finset_comprehension_exists_unique {V : Type u_1} [ORingStruc V] {m : } [Fact (1 m)] [V ⊧ₘ* 𝐈𝐍𝐃𝚺 m] {Γ : SigmaPiDelta} {P : VProp} (hP : { Γ := Γ, rank := m }-Predicate P) (a : V) :
                                        ∃! s : V, s < exp a i < a, i s P i
                                        theorem LO.Arith.finset_comprehension₁ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {Γ : SigmaPiDelta} {P : VProp} (hP : { Γ := Γ, rank := 1 }-Predicate P) (a : V) :
                                        s < exp a, i < a, i s P i
                                        theorem LO.Arith.finset_comprehension₁! {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {Γ : SigmaPiDelta} {P : VProp} (hP : { Γ := Γ, rank := 1 }-Predicate P) (a : V) :
                                        ∃! s : V, s < exp a i < a, i s P i
                                        theorem LO.Arith.finite_comprehension₁! {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {Γ : SigmaPiDelta} {P : VProp} (hP : { Γ := Γ, rank := 1 }-Predicate P) (fin : ∃ (m : V), ∀ (i : V), P ii < m) :
                                        ∃! s : V, ∀ (i : V), i s P i