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

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

State before:
ℕ : Type
inst✝³ : Core ℕ
inst✝² : Induction ℕ
inst✝¹ : Addition ℕ
inst✝ : Sign ℕ
order_inst : Order ℕ
n₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
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₁ n₂ m : ℕ
x✝¹ : n₁ ≃ n₂
x✝ : n₁ ≤ m
d : ℕ
h✝ : n₁ + d ≃ m
⊢ n₂ + d ≃ m
Tactic:
calc
  n₂ + d ≃ _ := Rel.symm (AA.substL ‹n₁ ≃ n₂›)
  n₁ + d ≃ _ := ‹n₁ + d ≃ m›
  m      ≃ _ := Rel.refl
State after:
no goals