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

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

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

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

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

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n₁ n₂ : ℕ
x✝ : n₁ ≤ n₂
d : ℕ
h✝ : n₁ + d ≃ n₂
⊢ step n₁ + d ≃ step n₂
Tactic:
calc
  step n₁ + d   ≃ _ := step_add
  step (n₁ + d) ≃ _ := AA.subst₁ ‹n₁ + d ≃ n₂›
  step n₂       ≃ _ := Rel.refl
State after:
no goals