Theorem: LO.FirstOrder.Arith.Model.PPow2.sqrt_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
ne2 : i ≠ 2
ne4 : i ≠ 4
⊢ √i ≠ 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
ne2 : i ≠ 2
ne4 : i ≠ 4
e : √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
ne2 : i ≠ 2
ne4 : i ≠ 4
e : √i = 2
⊢ False
Tactic:
have : i = 4 := by simpa [e, two_pow_two_eq_four] using Eq.symm <| hi.sq_sqrt_eq ne2
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
ne2 : i ≠ 2
ne4 : i ≠ 4
e : √i = 2
this : i = 4
⊢ 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
ne2 : i ≠ 2
ne4 : i ≠ 4
e : √i = 2
this : i = 4
⊢ False
Tactic:
contradiction
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
ne2 : i ≠ 2
ne4 : i ≠ 4
e : √i = 2
⊢ i = 4
Tactic:
simpa [e, two_pow_two_eq_four] using Eq.symm <| hi.sq_sqrt_eq ne2
State after:
no goals