Theorem: LO.FirstOrder.Arith.Model.dvd_antisymm (Arithmetization/Basic/PeanoMinus.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
⊢ a ∣ b → b ∣ a → a = b
Tactic:
intro hx hy
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
⊢ a = b

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
⊢ a = b
Tactic:
rcases show a = 0 ∨ 0 < a from eq_zero_or_pos a with (rfl | ltx)
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
b c : M
hx : 0 ∣ b
hy : b ∣ 0
⊢ 0 = b

case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
ltx : 0 < a
⊢ a = b

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
b c : M
hx : 0 ∣ b
hy : b ∣ 0
⊢ 0 = b
Tactic:
simp [show b = 0 from by simpa using hx]
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 ⊧ₘ* 𝐏𝐀⁻
b c : M
hx : 0 ∣ b
hy : b ∣ 0
⊢ b = 0
Tactic:
simpa using hx
State after:
no goals

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
ltx : 0 < a
⊢ a = b
Tactic:
rcases show b = 0 ∨ 0 < b from eq_zero_or_pos b with (rfl | lty)
State after:
case inr.inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a c : M
ltx : 0 < a
hx : a ∣ 0
hy : 0 ∣ a
⊢ a = 0

case inr.inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
ltx : 0 < a
lty : 0 < b
⊢ a = b

State before:
case inr.inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a c : M
ltx : 0 < a
hx : a ∣ 0
hy : 0 ∣ a
⊢ a = 0
Tactic:
simp [show a = 0 from by simpa using hy]
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 ⊧ₘ* 𝐏𝐀⁻
a c : M
ltx : 0 < a
hx : a ∣ 0
hy : 0 ∣ a
⊢ a = 0
Tactic:
simpa using hy
State after:
no goals

State before:
case inr.inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐏𝐀⁻
a b c : M
hx : a ∣ b
hy : b ∣ a
ltx : 0 < a
lty : 0 < b
⊢ a = b
Tactic:
exact le_antisymm (le_of_dvd lty hx) (le_of_dvd ltx hy)
State after:
no goals