Theorem: LO.FirstOrder.Arith.Model.union_polybound (Arithmetization/ISigmaOne/HFS/Basic.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 : M
⊢ 0 < 2 * (a + b) + 1
Tactic:
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 ⊧ₘ* 𝐈𝚺₁
a b : M
⊢ ∀ i ∈ a ∪ b, i < log (2 * (a + b) + 1)
Tactic:
simp
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 : M
⊢ ∀ (i : M), i ∈ a ∨ i ∈ b → i < log (2 * (a + b) + 1)

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 : M
⊢ ∀ (i : M), i ∈ a ∨ i ∈ b → i < log (2 * (a + b) + 1)
Tactic:
rintro i (hi | hi)
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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ a
⊢ i < log (2 * (a + b) + 1)

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 i : M
hi : i ∈ b
⊢ i < log (2 * (a + b) + 1)

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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ a
⊢ i < log (2 * (a + b) + 1)
Tactic:
calc
  i ≤ log (a + b) := le_trans (le_log_of_mem hi) (log_monotone (by simp))
  _ < log (2 * (a + b)) := by simp [log_two_mul_of_pos (show 0 < a + b from by simp [pos_of_nonempty hi])]
  _ ≤ log (2 * (a + b) + 1) := log_monotone (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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ a
⊢ a ≤ a + b
Tactic:
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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ a
⊢ log (a + b) < log (2 * (a + b))
Tactic:
simp [log_two_mul_of_pos (show 0 < a + b from by simp [pos_of_nonempty hi])]
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 b i : M
hi : i ∈ a
⊢ 0 < a + b
Tactic:
simp [pos_of_nonempty hi]
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 b i : M
hi : i ∈ a
⊢ 2 * (a + b) ≤ 2 * (a + b) + 1
Tactic:
simp
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 i : M
hi : i ∈ b
⊢ i < log (2 * (a + b) + 1)
Tactic:
calc
  i ≤ log (a + b) := le_trans (le_log_of_mem hi) (log_monotone (by simp))
  _ < log (2 * (a + b)) := by simp [log_two_mul_of_pos (show 0 < a + b from by simp [pos_of_nonempty hi])]
  _ ≤ log (2 * (a + b) + 1) := log_monotone (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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ b
⊢ b ≤ a + b
Tactic:
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 ⊧ₘ* 𝐈𝚺₁
a b i : M
hi : i ∈ b
⊢ log (a + b) < log (2 * (a + b))
Tactic:
simp [log_two_mul_of_pos (show 0 < a + b from by simp [pos_of_nonempty hi])]
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 b i : M
hi : i ∈ b
⊢ 0 < a + b
Tactic:
simp [pos_of_nonempty hi]
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 b i : M
hi : i ∈ b
⊢ 2 * (a + b) ≤ 2 * (a + b) + 1
Tactic:
simp
State after:
no goals