Theorem: LO.FirstOrder.Arith.Model.lt_mul_div (Arithmetization/Basic/IOpen.lean)

State before:
M : Type u_1
inst✝⁶ : Zero M
inst✝⁵ : One M
inst✝⁴ : Add M
inst✝³ : Mul M
inst✝² : LT M
inst✝¹ : M ⊧ₘ* 𝐏𝐀⁻
inst✝ : M ⊧ₘ* 𝐈open
a b : M
pos : 0 < b
⊢ a < b * (a / b + 1)
Tactic:
rcases eq_mul_div_add_of_pos a pos with ⟨v, hv, e⟩
State after:
case intro.intro
M : Type u_1
inst✝⁶ : Zero M
inst✝⁵ : One M
inst✝⁴ : Add M
inst✝³ : Mul M
inst✝² : LT M
inst✝¹ : M ⊧ₘ* 𝐏𝐀⁻
inst✝ : M ⊧ₘ* 𝐈open
a b : M
pos : 0 < b
v : M
hv : v < b
e : a = b * (a / b) + v
⊢ a < b * (a / b + 1)

State before:
case intro.intro
M : Type u_1
inst✝⁶ : Zero M
inst✝⁵ : One M
inst✝⁴ : Add M
inst✝³ : Mul M
inst✝² : LT M
inst✝¹ : M ⊧ₘ* 𝐏𝐀⁻
inst✝ : M ⊧ₘ* 𝐈open
a b : M
pos : 0 < b
v : M
hv : v < b
e : a = b * (a / b) + v
⊢ a < b * (a / b + 1)
Tactic:
calc a = b * (a / b) + v := e
     _ < b * (a / b + 1) := by simp [mul_add, hv]
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 ⊧ₘ* 𝐏𝐀⁻
inst✝ : M ⊧ₘ* 𝐈open
a b : M
pos : 0 < b
v : M
hv : v < b
e : a = b * (a / b) + v
⊢ b * (a / b) + v < b * (a / b + 1)
Tactic:
simp [mul_add, hv]
State after:
no goals