Theorem: LO.FirstOrder.Arith.Model.PPow2.sq_ne_two (Arithmetization/ISigmaZero/Exponential/PPow2.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
⊢ i ^ 2 ≠ 2
Tactic:
intro e
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
e : i ^ 2 = 2
⊢ False

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
e : i ^ 2 = 2
⊢ False
Tactic:
have : i < 2 := by simpa [←e] using lt_square_of_lt hi.one_lt
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
e : i ^ 2 = 2
this : i < 2
⊢ False

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
e : i ^ 2 = 2
this : i < 2
⊢ False
Tactic:
exact not_le.mpr this hi.two_le
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚫₀
i : M
hi : PPow2 i
e : i ^ 2 = 2
⊢ i < 2
Tactic:
simpa [←e] using lt_square_of_lt hi.one_lt
State after:
no goals