34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
import data.list
|
|
open nat
|
|
|
|
set_option blast.strategy "cc"
|
|
|
|
constant f : nat → nat
|
|
|
|
example (a b c d : nat) : f d = f b → succ a = f b → f d = succ c → a = c :=
|
|
by blast
|
|
|
|
example (a b c d e : nat) : f d = f b → f e = f b → succ a = f b → f e = succ c → a = c :=
|
|
by blast
|
|
|
|
example (a b c d e : nat) : f d = f b → f e = f b → succ a = f b → f e = zero → false :=
|
|
by blast
|
|
|
|
example (a b c d e : nat) : f d = f b → f e = f b → succ a = f b → f e = 0 → false :=
|
|
by blast
|
|
|
|
open list
|
|
example (a b c d e f : nat) (l1 l2 l3 l4 : list nat) : l1 = l2 → l2 = l3 → l4 = [a, b, succ c] → l1 = [c, d, succ e] → l3 = l4 → c = e :=
|
|
by blast
|
|
|
|
example (a b c d e f : nat) (l1 l2 l3 l4 : list nat) : l4 = [a, b, succ (succ c)] → l1 = [c, d, succ (succ e)] → l3 = l4 → l1 = l2 → l2 = l3 → c = e :=
|
|
by blast
|
|
|
|
example (a b c d e f : nat) (l1 l2 l3 l4 : list nat) : l4 = [a, b, succ c] → l1 = [c, d, 0] → l3 = l4 → l1 = l2 → l2 = l3 → false :=
|
|
by blast
|
|
|
|
example (a b c d e f : nat) (l1 l2 l3 l4 : list nat) : l4 = [a, b, succ c] → l1 = nil → l3 = l4 → l1 = l2 → l2 = l3 → false :=
|
|
by blast
|
|
|
|
example (a b c d e f : nat) (l1 l2 l3 l4 : list nat) : l1 = l2 → l2 = l3 → l4 = [a, b, succ c] → l1 = nil → l3 = l4 → false :=
|
|
by blast
|