Theorem: LO.FirstOrder.Arith.Model.domain_bound (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 ⊧ₘ* 𝐈𝚺₁
s : M
⊢ 0 < 2 * s + 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 ⊧ₘ* 𝐈𝚺₁
s : M
⊢ ∀ i ∈ domain s, i < log (2 * s + 1)
Tactic:
simp [mem_domain_iff]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
⊢ ∀ (i x : M), ⟪i, x⟫ ∈ s → i < log (2 * s + 1)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s : M
⊢ ∀ (i x : M), ⟪i, x⟫ ∈ s → i < log (2 * s + 1)
Tactic:
intro i x hix
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s i x : M
hix : ⟪i, x⟫ ∈ s
⊢ i < log (2 * s + 1)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
s i x : M
hix : ⟪i, x⟫ ∈ s
⊢ i < log (2 * s + 1)
Tactic:
exact lt_of_le_of_lt (le_trans (le_pair_left i x) (le_log_of_mem hix))
  (by simp [log_two_mul_add_one_of_pos (pos_of_nonempty hix)])
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 ⊧ₘ* 𝐈𝚺₁
s i x : M
hix : ⟪i, x⟫ ∈ s
⊢ log s < log (2 * s + 1)
Tactic:
simp [log_two_mul_add_one_of_pos (pos_of_nonempty hix)]
State after:
no goals