Theorem: ONote.NFBelow.repr_lt
File: Mathlib/SetTheory/Ordinal/Notation.lean

tactic: induction' h with _ e n a eb b h₁ h₂ h₃ _ IH
state_before: o : ONote
b : Ordinal.{0}
h : o.NFBelow b
⊢ o.repr < ω ^ b
state_after: case zero
o : ONote
b b✝ : Ordinal.{0}
⊢ repr 0 < ω ^ b✝

case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ (e.oadd n a).repr < ω ^ b

tactic: exact opow_pos _ omega_pos
state_before: case zero
o : ONote
b b✝ : Ordinal.{0}
⊢ repr 0 < ω ^ b✝
state_after: no goals

tactic: rw [repr]
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ (e.oadd n a).repr < ω ^ b
state_after: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ↑↑n + a.repr < ω ^ b

tactic: apply ((add_lt_add_iff_left _).2 IH).trans_le
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ↑↑n + a.repr < ω ^ b
state_after: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ↑↑n + ω ^ e.repr ≤ ω ^ b

tactic: rw [← mul_succ]
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ↑↑n + ω ^ e.repr ≤ ω ^ b
state_after: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * succ ↑↑n ≤ ω ^ b

tactic: apply (mul_le_mul_left' (succ_le_of_lt (nat_lt_omega _)) _).trans
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * succ ↑↑n ≤ ω ^ b
state_after: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ω ≤ ω ^ b

tactic: rw [← opow_succ]
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ e.repr * ω ≤ ω ^ b
state_after: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ succ e.repr ≤ ω ^ b

tactic: exact opow_le_opow_right omega_pos (succ_le_of_lt h₃)
state_before: case oadd'
o : ONote
b✝ : Ordinal.{0}
e : ONote
n : ℕ+
a : ONote
eb b : Ordinal.{0}
h₁ : e.NFBelow eb
h₂ : a.NFBelow e.repr
h₃ : e.repr < b
a_ih✝ : e.repr < ω ^ eb
IH : a.repr < ω ^ e.repr
⊢ ω ^ succ e.repr ≤ ω ^ b
state_after: no goals