Equations
- LO.Arith.ext u z = z / u % u
Instances For
Equations
- One or more equations did not get rendered due to their size.
theorem
LO.Arith.ext_defined
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
:
𝚺₀-Function₂ fun (a b : V) => ext a b via FirstOrder.Arith.extDef
@[simp]
@[simp]
Equations
- LO.Arith.Exponential.Seq₀ X Y = (LO.Arith.ext 4 X = 1 ∧ LO.Arith.ext 4 Y = 2)
Equations
- LO.Arith.Exponential.Seqₛ.Even X Y u = (LO.Arith.ext (u ^ 2) X = 2 * LO.Arith.ext u X ∧ LO.Arith.ext (u ^ 2) Y = LO.Arith.ext u Y ^ 2)
Equations
- LO.Arith.Exponential.Seqₛ.Odd X Y u = (LO.Arith.ext (u ^ 2) X = 2 * LO.Arith.ext u X + 1 ∧ LO.Arith.ext (u ^ 2) Y = 2 * LO.Arith.ext u Y ^ 2)
Equations
- LO.Arith.Exponential.Seqₛ y X Y = ∀ u ≤ y, u ≠ 2 → LO.Arith.PPow2 u → LO.Arith.Exponential.Seqₛ.Even X Y u ∨ LO.Arith.Exponential.Seqₛ.Odd X Y u
Equations
- LO.Arith.Exponential.Seqₘ x y X Y = ∃ u ≤ y ^ 2, u ≠ 2 ∧ LO.Arith.PPow2 u ∧ LO.Arith.ext u X = x ∧ LO.Arith.ext u Y = y
Equations
- LO.Arith.Exponential x y = (x = 0 ∧ y = 1 ∨ ∃ X ≤ y ^ 4, ∃ Y ≤ y ^ 4, LO.Arith.Exponential.Seq₀ X Y ∧ LO.Arith.Exponential.Seqₛ y X Y ∧ LO.Arith.Exponential.Seqₘ x y X Y)
theorem
LO.Arith.Exponential.Seqₛ.iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
(y X Y : V)
:
Seqₛ y X Y ↔ ∀ u ≤ y,
u ≠ 2 →
PPow2 u →
((∃ ext_u_X ≤ X, ext_u_X = ext u X ∧ 2 * ext_u_X = ext (u ^ 2) X) ∧ ∃ ext_u_Y ≤ Y, ext_u_Y = ext u Y ∧ ext_u_Y ^ 2 = ext (u ^ 2) Y) ∨ (∃ ext_u_X ≤ X, ext_u_X = ext u X ∧ 2 * ext_u_X + 1 = ext (u ^ 2) X) ∧ ∃ ext_u_Y ≤ Y, ext_u_Y = ext u Y ∧ 2 * ext_u_Y ^ 2 = ext (u ^ 2) Y
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.Arith.exponential_defined_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
(v : Fin 2 → V)
:
@[simp]
instance
LO.Arith.exponential_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
(Γ : FirstOrder.Arith.HierarchySymbol)
:
Equations
Equations
Equations
- LO.Arith.Exponential.append i X z = X % i + z * i
theorem
LO.Arith.Exponential.append_lt
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
(i X : V)
{z : V}
(hz : z < i)
:
theorem
LO.Arith.Exponential.ext_append_last
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
(i X : V)
{z : V}
(hz : z < i)
:
theorem
LO.Arith.Exponential.Seq₀.append
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{X Y i x y : V}
(H : Seq₀ X Y)
(ppi : PPow2 i)
(hi : 4 < i)
:
Seq₀ (Exponential.append i X x) (Exponential.append i Y y)
theorem
LO.Arith.Exponential.Seqₛ.append
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{z x y X Y i : V}
(h : Seqₛ z X Y)
(ppi : PPow2 i)
(hz : z < i)
:
Seqₛ z (Exponential.append (i ^ 2) X x) (Exponential.append (i ^ 2) Y y)
@[simp]
theorem
LO.Arith.Exponential.exponential_zero_one
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
:
Exponential 0 1
@[simp]
theorem
LO.Arith.Exponential.exponential_one_two
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
:
Exponential 1 2
theorem
LO.Arith.Exponential.range_pow2
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
(h : Exponential x y)
:
Pow2 y
theorem
LO.Arith.Exponential.exponential_exists_sq_of_exponential_even
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x) y → ∃ (y' : V), y = y' ^ 2 ∧ Exponential x y'
theorem
LO.Arith.Exponential.bit_zero
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential x y → Exponential (2 * x) (y ^ 2)
theorem
LO.Arith.Exponential.exponential_even
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x) y ↔ ∃ (y' : V), y = y' ^ 2 ∧ Exponential x y'
theorem
LO.Arith.Exponential.exponential_even_sq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x) (y ^ 2) ↔ Exponential x y
theorem
LO.Arith.Exponential.exponential_exists_sq_of_exponential_odd
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x + 1) y → ∃ (y' : V), y = 2 * y' ^ 2 ∧ Exponential x y'
theorem
LO.Arith.Exponential.bit_one
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential x y → Exponential (2 * x + 1) (2 * y ^ 2)
theorem
LO.Arith.Exponential.exponential_odd
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x + 1) y ↔ ∃ (y' : V), y = 2 * y' ^ 2 ∧ Exponential x y'
theorem
LO.Arith.Exponential.exponential_odd_two_mul_sq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (2 * x + 1) (2 * y ^ 2) ↔ Exponential x y
theorem
LO.Arith.Exponential.range_pos
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
(h : Exponential x y)
:
0 < y
theorem
LO.Arith.Exponential.lt
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
(h : Exponential x y)
:
x < y
theorem
LO.Arith.Exponential.not_exponential_of_le
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
(h : x ≤ y)
:
¬Exponential y x
@[simp]
@[simp]
theorem
LO.Arith.Exponential.exponential_two_four
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
:
Exponential 2 4
theorem
LO.Arith.Exponential.exponential_succ
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (x + 1) y ↔ ∃ (z : V), y = 2 * z ∧ Exponential x z
theorem
LO.Arith.Exponential.exponential_succ_mul_two
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (x + 1) (2 * y) ↔ Exponential x y
theorem
LO.Arith.Exponential.of_succ_two_mul
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential (x + 1) (2 * y) → Exponential x y
Alias of the forward direction of LO.Arith.Exponential.exponential_succ_mul_two
.
theorem
LO.Arith.Exponential.succ
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
:
Exponential x y → Exponential (x + 1) (2 * y)
Alias of the reverse direction of LO.Arith.Exponential.exponential_succ_mul_two
.
theorem
LO.Arith.Exponential.zero_uniq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{y : V}
(h : Exponential 0 y)
:
y = 1
@[simp]
theorem
LO.Arith.Exponential.zero_uniq_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{y : V}
:
Exponential 0 y ↔ y = 1
theorem
LO.Arith.Exponential.succ_lt_s
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y : V}
(h : Exponential (x + 1) y)
:
2 ≤ y
theorem
LO.Arith.Exponential.uniq
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x y₁ y₂ : V}
:
Exponential x y₁ → Exponential x y₂ → y₁ = y₂
theorem
LO.Arith.Exponential.inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y : V}
:
Exponential x₁ y → Exponential x₂ y → x₁ = x₂
theorem
LO.Arith.Exponential.monotone
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y₁ y₂ : V}
:
Exponential x₁ y₁ → Exponential x₂ y₂ → x₁ < x₂ → y₁ < y₂
theorem
LO.Arith.Exponential.monotone_le
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y₁ y₂ : V}
(h₁ : Exponential x₁ y₁)
(h₂ : Exponential x₂ y₂)
:
theorem
LO.Arith.Exponential.monotone_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y₁ y₂ : V}
(h₁ : Exponential x₁ y₁)
(h₂ : Exponential x₂ y₂)
:
theorem
LO.Arith.Exponential.monotone_le_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y₁ y₂ : V}
(h₁ : Exponential x₁ y₁)
(h₂ : Exponential x₂ y₂)
:
theorem
LO.Arith.Exponential.add_mul
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₀]
{x₁ x₂ y₁ y₂ : V}
(h₁ : Exponential x₁ y₁)
(h₂ : Exponential x₂ y₂)
:
Exponential (x₁ + x₂) (y₁ * y₂)
theorem
LO.Arith.Exponential.range_exists
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(x : V)
:
∃ (y : V), Exponential x y
theorem
LO.Arith.Exponential.range_exists_unique
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(x : V)
:
∃! y : V, Exponential x y
Equations
- LO.Arith.instExp_arithmetization = { «exp» := fun (a : V) => Classical.choose! ⋯ }
theorem
LO.Arith.exponential_exp
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(a : V)
:
Exponential a (exp a)
theorem
LO.Arith.exponential_graph
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{a b : V}
:
a = exp b ↔ Exponential b a
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
LO.Arith.exp_of_exponential
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{a b : V}
(h : Exponential a b)
:
@[simp]
@[simp]