Documentation

Arithmetization.ISigmaOne.Bit

def LO.Arith.Bit {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
Equations
Equations
  • One or more equations did not get rendered due to their size.
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.
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.
@[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.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
@[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
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
noncomputable def LO.Arith.bitRemove {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (i a : V) :
V
Equations
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.
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.
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.
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