| def f (x : Nat) (y : Nat) := | |
| 3 + x | |
| def g (x : Nat) := x*x*x | |
| @[simp] theorem eq1 (x y : Nat) : f (x+2) y = x+5 := by | |
| simp [f] | |
| rw [Nat.add_left_comm] | |
| theorem ex1 : g (f (x+3) y) = g (x+6) := by | |
| simp | |
| theorem ex2 : g (f (x.succ.succ) y) = g (x+5) := by | |
| simp | |
| theorem ex3 : g (f 3 y) = g 6 := by | |
| simp | |
| theorem ex4 : g (f 2 y) = g 5 := by | |
| simp | |
| theorem ex5 : g (f (x.succ.succ.succ) y) = g (x+6) := by | |
| simp | |
| def h (x : Nat) : Type := | |
| match x with | |
| | 0 => Nat | |
| | _ => Unit | |
| @[simp] theorem h_zero : h 0 = Nat := | |
| rfl | |
| theorem ex6 : h Nat.zero = Nat := by | |
| simp |