16 lines
311 B
Text
16 lines
311 B
Text
|
import data.nat
|
||
|
open nat
|
||
|
|
||
|
constant f : nat → nat
|
||
|
definition g (a : nat) := a
|
||
|
|
||
|
|
||
|
example (a b : nat) : a + 0 = 0 + g b → f (f b) = f (f a) :=
|
||
|
suppose a + 0 = 0 + g b,
|
||
|
assert a = b, by unfold g at *; simp,
|
||
|
by simp
|
||
|
|
||
|
attribute g [reducible]
|
||
|
example (a b : nat) : a + 0 = 0 + g b → f (f b) = f (f a) :=
|
||
|
by simp
|