Theorem: LO.FirstOrder.Arith.Model.pair_graph (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 c : M
⊢ c = ⟪a, b⟫ ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b
Tactic:
simp [pair]
State after:
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 c : M
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * 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 ⊧ₘ* 𝐏𝐀⁻
inst✝ : M ⊧ₘ* 𝐈open
a b c : M
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b
Tactic:
by_cases h : a < b
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 c : M
h : a < b
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b

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 c : M
h : ¬a < b
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b

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 c : M
h : a < b
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b
Tactic:
simp [h, show ¬b ≤ a from by simpa using h]
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 c : M
h : a < b
⊢ ¬b ≤ a
Tactic:
simpa using h
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 c : M
h : ¬a < b
⊢ (c = if a < b then b * b + a else a * a + a + b) ↔ a < b ∧ c = b * b + a ∨ b ≤ a ∧ c = a * a + a + b
Tactic:
simp [h, show b ≤ a from by simpa using h]
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 c : M
h : ¬a < b
⊢ b ≤ a
Tactic:
simpa using h
State after:
no goals