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

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m : ℕ
⊢ n ≥ m → n > m ∨ n ≃ m
Tactic:
intro (_ : n ≥ m)
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m : ℕ
x✝ : n ≥ m
⊢ n > m ∨ n ≃ m

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

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

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

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

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

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

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