internlm/Lean-Github huggingface dataset:
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
⊢ y = ext (√i) Y ^ 2
Tactic:
simpa [ppi.sq_sqrt_eq ne2, hYy] using hYi
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
⊢ X' ≤ ext (√i) Y ^ 4
Tactic:
simp [pow_four_eq_sq_sq, ←hYy]
Proof state after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
⊢ X' ≤ y ^ 2
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
⊢ X' ≤ y ^ 2
Tactic:
exact le_trans (le_of_lt $ by simp [X', ppi.pos]) hi
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
⊢ X' < i
Tactic:
simp [X', ppi.pos]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
⊢ Y' ≤ ext (√i) Y ^ 4
Tactic:
simp [pow_four_eq_sq_sq, ←hYy]
Proof state after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
⊢ Y' ≤ y ^ 2
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
⊢ Y' ≤ y ^ 2
Tactic:
exact le_trans (le_of_lt $ by simp [Y', ppi.pos]) hi
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
⊢ Y' < i
Tactic:
simp [Y', ppi.pos]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
bY' : Y' ≤ ext (√i) Y ^ 4
⊢ ext (√i) Y ≤ y
Tactic:
simp [hYy]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
bY' : Y' ≤ ext (√i) Y ^ 4
hseqₛ' : Seqₛ (ext (√i) Y) X' Y'
⊢ i ≤ (ext (√i) Y ^ 2) ^ 2
Tactic:
simp [←hYy, hi]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
bY' : Y' ≤ ext (√i) Y ^ 4
hseqₛ' : Seqₛ (ext (√i) Y) X' Y'
⊢ ext (√i) X' = x ∧ ext (√i) Y' = ext (√i) Y
Tactic:
have : √i < i := sqrt_lt_self_of_one_lt ppi.one_lt
Proof state after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
bY' : Y' ≤ ext (√i) Y ^ 4
hseqₛ' : Seqₛ (ext (√i) Y) X' Y'
this : √i < i
⊢ ext (√i) X' = x ∧ ext (√i) Y' = ext (√i) Y
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx✝ : ext i X = 2 * x
hYy✝ : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X
hYi : ext ((√i) ^ 2) Y = ext (√i) Y ^ 2
hXx : x = ext (√i) X
hYy : y = ext (√i) Y ^ 2
X' : M := X % i
Y' : M := Y % i
bX' : X' ≤ ext (√i) Y ^ 4
bY' : Y' ≤ ext (√i) Y ^ 4
hseqₛ' : Seqₛ (ext (√i) Y) X' Y'
this : √i < i
⊢ ext (√i) X' = x ∧ ext (√i) Y' = ext (√i) Y
Tactic:
simp [X', Y', this, ext_rem, ppi, ppi.sqrt ne2, hXx]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
case neg.inr.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
⊢ ∃ y', y = y' ^ 2 ∧ Exponential x y'
Tactic:
have : 2 ∣ ext i X := by simp [hXx]
Proof state after:
case neg.inr.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this : 2 ∣ ext i X
⊢ ∃ y', y = y' ^ 2 ∧ Exponential x y'
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
case neg.inr.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this : 2 ∣ ext i X
⊢ ∃ y', y = y' ^ 2 ∧ Exponential x y'
Tactic:
have : ¬2 ∣ ext i X := by
  simp [show ext i X = 2 * ext (√i) X + 1 from by simpa [ppi.sq_sqrt_eq ne2] using hXi,
    ←mod_eq_zero_iff_dvd, one_lt_two]
Proof state after:
case neg.inr.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this✝ : 2 ∣ ext i X
this : ¬2 ∣ ext i X
⊢ ∃ y', y = y' ^ 2 ∧ Exponential x y'
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
case neg.inr.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this✝ : 2 ∣ ext i X
this : ¬2 ∣ ext i X
⊢ ∃ y', y = y' ^ 2 ∧ Exponential x y'
Tactic:
contradiction
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
⊢ 2 ∣ ext i X
Tactic:
simp [hXx]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this : 2 ∣ ext i X
⊢ ¬2 ∣ ext i X
Tactic:
simp [show ext i X = 2 * ext (√i) X + 1 from by simpa [ppi.sq_sqrt_eq ne2] using hXi,
  ←mod_eq_zero_iff_dvd, one_lt_two]
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.exponential_exists_sq_of_exponential_even
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = 2 * x
hYy : ext i Y = y
ne4 : ¬i = 4
hXi : ext ((√i) ^ 2) X = 2 * ext (√i) X + 1
right✝ : ext ((√i) ^ 2) Y = 2 * ext (√i) Y ^ 2
this : 2 ∣ ext i X
⊢ ext i X = 2 * ext (√i) X + 1
Tactic:
simpa [ppi.sq_sqrt_eq ne2] using hXi
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y : M
⊢ Exponential x y → Exponential (2 * x) (y ^ 2)
Tactic:
rintro (⟨hx, rfl⟩ | ⟨X, _, Y, _, hseq₀, hseqₛ, i, hi, ne2, ppi, hXx, hYy⟩)
Proof state after:
case inl.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x : M
hx : x = 0
⊢ Exponential (2 * x) (1 ^ 2)

case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have hxsqi : 2 * x < i ^ 2 := lt_of_lt_of_le (by simp [←hXx, ppi.pos]) (two_mul_le_sq ppi.two_le)
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have hysqi : y ^ 2 < i ^ 2 := sq_lt_sq.mpr $ by simp [←hYy, ppi.pos]
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have hiisq : i < i^2 := lt_square_of_lt ppi.one_lt
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
let X' := append (i^2) X (2 * x)
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
let Y' := append (i^2) Y (y ^ 2)
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have bX' : X' ≤ (y^2)^4 := by
  have : X' < i^4 := by simpa [pow_four_eq_sq_sq] using append_lt (i^2) X hxsqi
  exact le_trans (le_of_lt this) (pow_le_pow_left (by simp) hi 4)
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
bX' : X' ≤ (y ^ 2) ^ 4
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
bX' : X' ≤ (y ^ 2) ^ 4
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have bY' : Y' ≤ (y^2)^4 := by
  have : Y' < i^4 := by simpa [pow_four_eq_sq_sq] using append_lt (i^2) Y hysqi
  exact le_trans (le_of_lt this) (pow_le_pow_left (by simp) hi 4)
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
bX' : X' ≤ (y ^ 2) ^ 4
bY' : Y' ≤ (y ^ 2) ^ 4
⊢ Exponential (2 * x) (y ^ 2)
Theorem: LO.FirstOrder.Arith.Model.Exponential.bit_zero
Proof state before:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
bX' : X' ≤ (y ^ 2) ^ 4
bY' : Y' ≤ (y ^ 2) ^ 4
⊢ Exponential (2 * x) (y ^ 2)
Tactic:
have hseq₀' : Seq₀ X' Y' := hseq₀.append ppi.sq (ppi.sq.four_lt ppi.sq_ne_two (ppi.sq_ne_four ne2))
Proof state after:
case inr.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
x y X : M
left✝¹ : X ≤ y ^ 4
Y : M
left✝ : Y ≤ y ^ 4
hseq₀ : Seq₀ X Y
hseqₛ : Seqₛ y X Y
i : M
hi : i ≤ y ^ 2
ne2 : i ≠ 2
ppi : PPow2 i
hXx : ext i X = x
hYy : ext i Y = y
hxsqi : 2 * x < i ^ 2
hysqi : y ^ 2 < i ^ 2
hiisq : i < i ^ 2
X' : M := append (i ^ 2) X (2 * x)
Y' : M := append (i ^ 2) Y (y ^ 2)
bX' : X' ≤ (y ^ 2) ^ 4
bY' : Y' ≤ (y ^ 2) ^ 4
hseq₀' : Seq₀ X' Y'
⊢ Exponential (2 * x) (y ^ 2)