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

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

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
⊢ n ≤ m₂
Tactic:
have ⟨d, (_ : n + d ≃ m₁)⟩ := le_defn.mp ‹n ≤ m₁›
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ n ≤ m₂

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ n ≤ m₂
Tactic:
apply le_defn.mpr
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ ∃ k, n + k ≃ m₂

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ ∃ k, n + k ≃ m₂
Tactic:
exists d
State after:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ n + d ≃ m₂

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n m₁ m₂ : ℕ
x✝¹ : m₁ ≃ m₂
x✝ : n ≤ m₁
d : ℕ
h✝ : n + d ≃ m₁
⊢ n + d ≃ m₂
Tactic:
exact Rel.trans ‹n + d ≃ m₁› ‹m₁ ≃ m₂›
State after:
no goals