Theorem: LO.FirstOrder.Arith.Model.insert_le_of_le_of_le (Arithmetization/ISigmaOne/Bit.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 j a b : M
hij : i ≤ j
hab : a ≤ b
⊢ insert i a ≤ b + exp j
Tactic:
simp [insert, bitInsert]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
⊢ (if i ∈ a then a else a + exp i) ≤ b + exp j

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
⊢ (if i ∈ a then a else a + exp i) ≤ b + exp j
Tactic:
by_cases hi : i ∈ a <;> simp [hi]
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 ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
hi : i ∈ a
⊢ a ≤ b + exp j

case neg
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
hi : i ∉ a
⊢ a + exp i ≤ b + exp j

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 ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
hi : i ∈ a
⊢ a ≤ b + exp j
Tactic:
exact le_trans hab (by simp)
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 j a b : M
hij : i ≤ j
hab : a ≤ b
hi : i ∈ a
⊢ b ≤ b + exp j
Tactic:
simp
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 ⊧ₘ* 𝐈𝚺₁
i j a b : M
hij : i ≤ j
hab : a ≤ b
hi : i ∉ a
⊢ a + exp i ≤ b + exp j
Tactic:
exact add_le_add hab (exp_monotone_le.mpr hij)
State after:
no goals