Theorem: LO.FirstOrder.Arith.Model.pair_polybound (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
⊢ ⟪a, b⟫ ≤ (a + b + 1) ^ 2
Tactic:
by_cases h : a < b <;> simp [pair, h, sq, add_mul_self_eq, two_mul]
State after:
case pos
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
h : a < b
⊢ b * b + a ≤ a * a + (a + a) * b + b * b + (a + b + (a + b)) + 1

case neg
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
h : ¬a < b
⊢ a * a + a + b ≤ a * a + (a + a) * b + b * b + (a + b + (a + b)) + 1

State before:
case pos
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
h : a < b
⊢ b * b + a ≤ a * a + (a + a) * b + b * b + (a + b + (a + b)) + 1
Tactic:
simp [←add_assoc, add_right_comm _ a]
State after:
case pos
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
h : a < b
⊢ b * b ≤ a * a + (a + a) * b + b * b + b + b + 1 + a

State before:
case pos
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
h : a < b
⊢ b * b ≤ a * a + (a + a) * b + b * b + b + b + 1 + a
Tactic:
simp [add_right_comm _ (b * b)]
State after:
no goals

State before:
case neg
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
h : ¬a < b
⊢ a * a + a + b ≤ a * a + (a + a) * b + b * b + (a + b + (a + b)) + 1
Tactic:
simp [←add_assoc, add_right_comm _ b]
State after:
case neg
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
h : ¬a < b
⊢ a * a + a ≤ a * a + (a + a) * b + b * b + a + a + 1 + b

State before:
case neg
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
h : ¬a < b
⊢ a * a + a ≤ a * a + (a + a) * b + b * b + a + a + 1 + b
Tactic:
simp [add_right_comm _ a]
State after:
case neg
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
h : ¬a < b
⊢ a * a ≤ a * a + (a + a) * b + b * b + 1 + b + a

State before:
case neg
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
h : ¬a < b
⊢ a * a ≤ a * a + (a + a) * b + b * b + 1 + b + a
Tactic:
simp [add_assoc]
State after:
no goals