Documentation

Arithmetization.ISigmaZero.Exponential.Exp

theorem LO.Arith.ext_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (a b c : V) :
a = ext b c xc, x = c / b a = x % b
Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem LO.Arith.ext_le_add {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (u z : V) :
ext u z z
@[simp]
theorem LO.Arith.ext_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {u : V} (z : V) (pos : 0 < u) :
ext u z < u
theorem LO.Arith.ext_add_of_dvd_sq_right {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {u z₁ z₂ : V} (pos : 0 < u) (h : u ^ 2 z₂) :
ext u (z₁ + z₂) = ext u z₁
theorem LO.Arith.ext_add_of_dvd_sq_left {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {u z₁ z₂ : V} (pos : 0 < u) (h : u ^ 2 z₁) :
ext u (z₁ + z₂) = ext u z₂
theorem LO.Arith.ext_rem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {i j z : V} (ppi : PPow2 i) (ppj : PPow2 j) (hij : i < j) :
ext i (z % j) = ext i z
def LO.Arith.Exponential.Seqₘ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (x y X Y : V) :
Equations
theorem LO.Arith.Exponential.Seqₛ.iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (y X Y : V) :
Seqₛ y X Y uy, u 2PPow2 u((∃ ext_u_XX, ext_u_X = ext u X 2 * ext_u_X = ext (u ^ 2) X) ext_u_YY, ext_u_Y = ext u Y ext_u_Y ^ 2 = ext (u ^ 2) Y) (∃ ext_u_XX, ext_u_X = ext u X 2 * ext_u_X + 1 = ext (u ^ 2) X) ext_u_YY, 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.
theorem LO.Arith.Exponential.graph_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (x y : V) :
Exponential x y x = 0 y = 1 Xy ^ 4, Yy ^ 4, (1 = ext 4 X 2 = ext 4 Y) Seqₛ y X Y uy ^ 2, u 2 PPow2 u x = ext u X y = ext u Y
Equations
  • One or more equations did not get rendered due to their size.
theorem LO.Arith.Exponential.Seq₀.rem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {X Y i : V} (h : Seq₀ X Y) (ppi : PPow2 i) (hi : 4 < i) :
Seq₀ (X % i) (Y % i)
theorem LO.Arith.Exponential.Seqₛ.rem {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y y' X Y i : V} (h : Seqₛ y X Y) (ppi : PPow2 i) (hi : y' ^ 2 < i) (hy : y' y) :
Seqₛ y' (X % i) (Y % i)
def LO.Arith.Exponential.append {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (i X z : V) :
V
Equations
theorem LO.Arith.Exponential.append_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (i X : V) {z : V} (hz : z < i) :
append i X z < i ^ 2
theorem LO.Arith.Exponential.ext_append_last {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (i X : V) {z : V} (hz : z < i) :
ext i (append i X z) = z
theorem LO.Arith.Exponential.ext_append_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {i j : V} (hi : PPow2 i) (hj : PPow2 j) (hij : i < j) (X z : V) :
ext i (append j X z) = ext i X
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) :
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)
theorem LO.Arith.Exponential.pow2_ext_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
Pow2 (ext i Y)
theorem LO.Arith.Exponential.le_sq_ext_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
i ext i Y ^ 2
theorem LO.Arith.Exponential.two_mul_ext_le_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
2 * ext i Y i
theorem LO.Arith.Exponential.bit_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {x y : V} :
Exponential x yExponential (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_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 yExponential (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.two_le_ext_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
2 ext i Y
theorem LO.Arith.Exponential.ext_le_ext_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
ext i X < ext i 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
@[simp]
theorem LO.Arith.Exponential.one_not_even {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] (a : V) :
1 2 * a
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.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 yExponential (x + 1) (2 * y)

Alias of the reverse direction of LO.Arith.Exponential.exponential_succ_mul_two.

theorem LO.Arith.Exponential.one_le_ext_of_seq₀_of_seqₛ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {y X Y : V} (h₀ : Seq₀ X Y) (hₛ : Seqₛ y X Y) {i : V} (ne2 : i 2) (hi : i y ^ 2) (ppi : PPow2 i) :
1 ext i X
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.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₁ yExponential x₂ yx₁ = x₂
theorem LO.Arith.Exponential.exponential_elim {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₀] {x y : V} :
Exponential x y x = 0 y = 1 ∃ (x' : V) (y' : V), x = x' + 1 y = 2 * y' Exponential x' y'
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₂) :
x₁ x₂y₁ 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₂) :
x₁ < x₂ y₁ < 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₂) :
x₁ x₂ y₁ 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
Equations
  • One or more equations did not get rendered due to their size.
theorem LO.Arith.exp_of_exponential {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} (h : Exponential a b) :
exp a = b
@[simp]
theorem LO.Arith.exp_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
exp 0 = 1
@[simp]
theorem LO.Arith.exp_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] :
exp 1 = 2
theorem LO.Arith.exp_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
exp (a + 1) = 2 * exp a
theorem LO.Arith.exp_even {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
exp (2 * a) = exp a ^ 2
@[simp]
theorem LO.Arith.lt_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
a < exp a
@[simp]
theorem LO.Arith.exp_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
0 < exp a
@[simp]
theorem LO.Arith.one_le_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
1 exp a
@[simp]
theorem LO.Arith.exp_pow2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (a : V) :
Pow2 (exp a)
@[simp]
theorem LO.Arith.exp_monotone {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} :
exp a < exp b a < b
@[simp]
theorem LO.Arith.exp_monotone_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] {a b : V} :
exp a exp b a b
theorem LO.Arith.nat_cast_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈𝚺₁] (n : ) :
(exp n) = exp n