2015-11-20 20:18:52 +00:00
|
|
|
import data.list
|
|
|
|
|
|
|
|
constant f {A : Type} : A → A → A
|
|
|
|
constant g : nat → nat
|
2015-12-06 22:33:21 +00:00
|
|
|
set_option blast.strategy "cc"
|
2015-11-20 20:18:52 +00:00
|
|
|
|
|
|
|
example (a b c : nat) : a = b → g a == g b :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
example (a b c : nat) : a = b → c = b → f (f a b) (g c) = f (f c a) (g b) :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
example (a b c d e x y : nat) : a = b → a = x → b = y → c = d → c = e → c = b → a = e :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
open perm
|
|
|
|
|
|
|
|
example (a b c d : list nat) : a ~ b → c ~ b → d ~ c → a ~ d :=
|
|
|
|
by blast
|
2015-11-20 21:46:29 +00:00
|
|
|
|
|
|
|
example (a b c d : list nat) : a ~ b → c ~ b → d = c → a ~ d :=
|
|
|
|
by blast
|