Theorem: Misc.Nat.add_left_eq_self (LeanSAT/Util/Misc.lean)

State before:
a b : Nat
⊢ a + b = b ↔ a = 0
Tactic:
constructor
State after:
case mp
a b : Nat
⊢ a + b = b → a = 0

case mpr
a b : Nat
⊢ a = 0 → a + b = b

State before:
case mp
a b : Nat
⊢ a + b = b → a = 0

case mpr
a b : Nat
⊢ a = 0 → a + b = b
Tactic:
. intro h
  conv at h =>
    rhs
    rw [← Nat.zero_add b]
  exact Nat.add_right_cancel h
State after:
case mpr
a b : Nat
⊢ a = 0 → a + b = b

State before:
case mpr
a b : Nat
⊢ a = 0 → a + b = b
Tactic:
. intro h
  rw [h, Nat.zero_add]
State after:
no goals

State before:
case mp
a b : Nat
⊢ a + b = b → a = 0
Tactic:
intro h
State after:
case mp
a b : Nat
h : a + b = b
⊢ a = 0

State before:
case mp
a b : Nat
h : a + b = b
⊢ a = 0
Tactic:
conv at h =>
  rhs
  rw [← Nat.zero_add b]
State after:
case mp
a b : Nat
h : a + b = 0 + b
⊢ a = 0

State before:
case mp
a b : Nat
h : a + b = 0 + b
⊢ a = 0
Tactic:
exact Nat.add_right_cancel h
State after:
no goals

State before:
case mpr
a b : Nat
⊢ a = 0 → a + b = b
Tactic:
intro h
State after:
case mpr
a b : Nat
h : a = 0
⊢ a + b = b

State before:
case mpr
a b : Nat
h : a = 0
⊢ a + b = b
Tactic:
rw [h, Nat.zero_add]
State after:
no goals