Theorem: Lean4Axiomatic.Natural.add_comm (Lean4Axiomatic/Natural/Addition.lean)

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ n + m ≃ m + n
Tactic:
apply ind_on (motive := λ n => n + m ≃ m + n) n
State after:
case zero
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ 0 + m ≃ m + 0

case step
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ ∀ (m_1 : ℕ), m_1 + m ≃ m + m_1 → step m_1 + m ≃ m + step m_1

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ 0 + m ≃ m + 0
Tactic:
case zero =>
  show 0 + m ≃ m + 0
  calc
    0 + m ≃ _ := Addition.zero_add
    m     ≃ _ := Rel.symm add_zero
    m + 0 ≃ _ := Rel.refl
State after:
no goals

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ ∀ (m_1 : ℕ), m_1 + m ≃ m + m_1 → step m_1 + m ≃ m + step m_1
Tactic:
case step =>
  intro n (ih : n + m ≃ m + n)
  show step n + m ≃ m + step n
  calc
    step n + m   ≃ _ := Addition.step_add
    step (n + m) ≃ _ := AA.subst₁ ih
    step (m + n) ≃ _ := Rel.symm add_step
    m + step n   ≃ _ := Rel.refl
State after:
no goals

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ 0 + m ≃ m + 0
Tactic:
calc
  0 + m ≃ _ := Addition.zero_add
  m     ≃ _ := Rel.symm add_zero
  m + 0 ≃ _ := Rel.refl
State after:
no goals

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n m : ℕ
⊢ ∀ (m_1 : ℕ), m_1 + m ≃ m + m_1 → step m_1 + m ≃ m + step m_1
Tactic:
intro n (ih : n + m ≃ m + n)
State after:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n✝ m n : ℕ
ih : n + m ≃ m + n
⊢ step n + m ≃ m + step n

State before:
ℕ : Type
inst✝² : Core ℕ
inst✝¹ : Induction ℕ
inst✝ : Addition ℕ
n✝ m n : ℕ
ih : n + m ≃ m + n
⊢ step n + m ≃ m + step n
Tactic:
calc
  step n + m   ≃ _ := Addition.step_add
  step (n + m) ≃ _ := AA.subst₁ ih
  step (m + n) ≃ _ := Rel.symm add_step
  m + step n   ≃ _ := Rel.refl
State after:
no goals