2015-12-06 14:33:21 -08:00
|
|
|
set_option blast.strategy "simple"
|
2015-11-22 15:39:44 -08:00
|
|
|
|
|
|
|
definition foo1 (a b : nat) (p : Prop) : a = b → (b = a → p) → p :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
print foo1
|
|
|
|
|
|
|
|
definition foo2 (a b c : nat) (p : Prop) : a = b → b = c → (c = a → p) → p :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
print foo2
|
2015-11-22 15:49:17 -08:00
|
|
|
|
|
|
|
definition foo3 (a b c d : nat) (p : Prop) : a ≠ d → (d ≠ a → p) → p :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
print foo3
|
2015-12-04 16:49:21 -08:00
|
|
|
|
|
|
|
attribute not [reducible]
|
|
|
|
|
|
|
|
definition foo4 (a b c d : nat) (p : Prop) : a ≠ d → (d ≠ a → p) → p :=
|
|
|
|
by blast
|
|
|
|
|
2015-12-04 17:58:39 -08:00
|
|
|
attribute ne [semireducible]
|
|
|
|
|
|
|
|
definition foo5 (a b c d : nat) (p : Prop) : a ≠ d → (d ≠ a → p) → p :=
|
|
|
|
by blast
|
|
|
|
|
|
|
|
print foo5
|