| theorem foo (n : Nat) : n + n = 2*n := by | |
| rw [Nat.mul_comm, Nat.mul_succ, Nat.mul_succ, Nat.mul_zero, Nat.zero_add] | |
| attribute [-simp] foo -- Error | |
| theorem ex1 {a b : Nat} (h₁ : a = b) : 0 + a = b := by | |
| simp | |
| assumption | |
| section | |
| attribute [-simp] Nat.zero_add | |
| theorem ex2 {a b : Nat} (h₁ : a = b) : 0 + a = b := by | |
| fail_if_success simp -- did not apply `Nat.zero_add` | |
| rw [Nat.zero_add] | |
| assumption | |
| end | |
| -- Effect of the attribute command above is gone | |
| theorem ex3 {a b : Nat} (h₁ : a = b) : 0 + a = b := by | |
| simp | |
| assumption | |
| theorem ex4 {a b : Nat} (h₁ : a = b) : 0 + a = b := by | |
| fail_if_success simp [-Nat.zero_add] | |
| rw [Nat.zero_add] | |
| assumption |