Theorem: Lean4Axiomatic.Natural.trans_lt_le_lt (Lean4Axiomatic/Natural/Order.lean)

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
⊢ n < m → m ≤ k → n < k
Tactic:
intro (_ : n < m) (_ : m ≤ k)
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
⊢ n < k

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
⊢ n < k
Tactic:
have : m < k ∨ m ≃ k := le_split ‹m ≤ k›
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this : m < k ∨ m ≃ k
⊢ n < k

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this : m < k ∨ m ≃ k
⊢ n < k
Tactic:
match this with
| Or.inl (_ : m < k) =>
  have : n < k := lt_trans ‹n < m› ‹m < k›
  exact this
| Or.inr (_ : m ≃ k) =>
  have : n < k := trans_lt_eqv_lt ‹n < m› ‹m ≃ k›
  exact this
State after:
no goals

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this : m < k ∨ m ≃ k
h✝ : m < k
⊢ n < k
Tactic:
have : n < k := lt_trans ‹n < m› ‹m < k›
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this✝ : m < k ∨ m ≃ k
h✝ : m < k
this : n < k
⊢ n < k

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this✝ : m < k ∨ m ≃ k
h✝ : m < k
this : n < k
⊢ n < k
Tactic:
exact this
State after:
no goals

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this : m < k ∨ m ≃ k
h✝ : m ≃ k
⊢ n < k
Tactic:
have : n < k := trans_lt_eqv_lt ‹n < m› ‹m ≃ k›
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this✝ : m < k ∨ m ≃ k
h✝ : m ≃ k
this : n < k
⊢ n < k

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m k : ℕ
x✝¹ : n < m
x✝ : m ≤ k
this✝ : m < k ∨ m ≃ k
h✝ : m ≃ k
this : n < k
⊢ n < k
Tactic:
exact this
State after:
no goals