Theorem: LO.FirstOrder.Arith.Model.lt_of_lt_log (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 ⊧ₘ* 𝐈𝚺₁
a b : M
pos : 0 < b
h : ∀ i ∈ a, i < log b
⊢ a < b
Tactic:
rcases zero_le a with (rfl | apos)
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 ⊧ₘ* 𝐈𝚺₁
b : M
pos : 0 < b
h : ∀ i ∈ 0, i < log b
⊢ 0 < b

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 : M
pos : 0 < b
h : ∀ i ∈ a, i < log b
apos : 0 < a
⊢ a < b

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 : M
pos : 0 < b
h : ∀ i ∈ a, i < log b
apos : 0 < a
⊢ a < b
Tactic:
by_contra A
State after:
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 : M
pos : 0 < b
h : ∀ i ∈ a, i < log b
apos : 0 < a
A : ¬a < b
⊢ False

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 : M
pos : 0 < b
h : ∀ i ∈ a, i < log b
apos : 0 < a
A : ¬a < b
⊢ False
Tactic:
exact not_lt_of_le (log_monotone <| show b ≤ a by simpa using A) (h (log a) (log_mem_of_pos apos))
State after:
no goals

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 ⊧ₘ* 𝐈𝚺₁
b : M
pos : 0 < b
h : ∀ i ∈ 0, i < log b
⊢ 0 < b
Tactic:
exact pos
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
pos : 0 < b
h : ∀ i ∈ a, i < log b
apos : 0 < a
A : ¬a < b
⊢ b ≤ a
Tactic:
simpa using A
State after:
no goals