0
|
1 |
(* Title: HOL/ex/unsolved
|
|
2 |
ID: $Id$
|
|
3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory
|
|
4 |
Copyright 1992 University of Cambridge
|
|
5 |
|
|
6 |
Problems that currently defeat the MESON procedure as well as best_tac
|
|
7 |
*)
|
|
8 |
|
|
9 |
(*from Vladimir Lifschitz, What Is the Inverse Method?, JAR 5 (1989), 1--23*)
|
|
10 |
goal HOL.thy "? x x'. ! y. ? z z'. (~P(y,y) | P(x,x) | ~S(z,x)) & \
|
|
11 |
\ (S(x,y) | ~S(y,z) | Q(z',z')) & \
|
|
12 |
\ (Q(x',y) | ~Q(y,z') | S(x',x'))";
|
|
13 |
|
|
14 |
|
|
15 |
writeln"Problem 47 Schubert's Steamroller";
|
|
16 |
goal HOL.thy
|
|
17 |
"(! x. P1(x) --> P0(x)) & (? x.P1(x)) & \
|
|
18 |
\ (! x. P2(x) --> P0(x)) & (? x.P2(x)) & \
|
|
19 |
\ (! x. P3(x) --> P0(x)) & (? x.P3(x)) & \
|
|
20 |
\ (! x. P4(x) --> P0(x)) & (? x.P4(x)) & \
|
|
21 |
\ (! x. P5(x) --> P0(x)) & (? x.P5(x)) & \
|
|
22 |
\ (! x. Q1(x) --> Q0(x)) & (? x.Q1(x)) & \
|
|
23 |
\ (! x. P0(x) --> ((! y.Q0(y)-->R(x,y)) | \
|
|
24 |
\ (! y.P0(y) & S(y,x) & \
|
|
25 |
\ (? z.Q0(z)&R(y,z)) --> R(x,y)))) & \
|
|
26 |
\ (! x y. P3(y) & (P5(x)|P4(x)) --> S(x,y)) & \
|
|
27 |
\ (! x y. P3(x) & P2(y) --> S(x,y)) & \
|
|
28 |
\ (! x y. P2(x) & P1(y) --> S(x,y)) & \
|
|
29 |
\ (! x y. P1(x) & (P2(y)|Q1(y)) --> ~R(x,y)) & \
|
|
30 |
\ (! x y. P3(x) & P4(y) --> R(x,y)) & \
|
|
31 |
\ (! x y. P3(x) & P5(y) --> ~R(x,y)) & \
|
|
32 |
\ (! x. (P4(x)|P5(x)) --> (? y.Q0(y) & R(x,y))) \
|
|
33 |
\ --> (? x y. P0(x) & P0(y) & (? z. Q1(z) & R(y,z) & R(x,y)))";
|
|
34 |
|
|
35 |
|
|
36 |
writeln"Problem 55";
|
|
37 |
|
|
38 |
(*Original, equational version by Len Schubert, via Pelletier *)
|
|
39 |
goal HOL.thy
|
|
40 |
"(? x. lives(x) & killed(x,agatha)) & \
|
|
41 |
\ lives(agatha) & lives(butler) & lives(charles) & \
|
|
42 |
\ (! x. lives(x) --> x=agatha | x=butler | x=charles) & \
|
|
43 |
\ (! x y. killed(x,y) --> hates(x,y)) & \
|
|
44 |
\ (! x y. killed(x,y) --> ~richer(x,y)) & \
|
|
45 |
\ (! x. hates(agatha,x) --> ~hates(charles,x)) & \
|
|
46 |
\ (! x. ~ x=butler --> hates(agatha,x)) & \
|
|
47 |
\ (! x. ~richer(x,agatha) --> hates(butler,x)) & \
|
|
48 |
\ (! x. hates(agatha,x) --> hates(butler,x)) & \
|
|
49 |
\ (! x. ? y. ~hates(x,y)) & \
|
|
50 |
\ ~ agatha=butler --> \
|
|
51 |
\ killed(agatha,agatha)";
|
|
52 |
|
|
53 |
(** Charles Morgan's problems **)
|
|
54 |
|
|
55 |
val axa = "! x y. T(i(x, i(y,x)))";
|
|
56 |
val axb = "! x y z. T(i(i(x, i(y,z)), i(i(x,y), i(x,z))))";
|
|
57 |
val axc = "! x y. T(i(i(n(x), n(y)), i(y,x)))";
|
|
58 |
val axd = "! x y. T(i(x,y)) & T(x) --> T(y)";
|
|
59 |
|
|
60 |
fun axjoin ([], q) = q
|
|
61 |
| axjoin(p::ps, q) = "(" ^ p ^ ") --> (" ^ axjoin(ps,q) ^ ")";
|
|
62 |
|
|
63 |
goal HOL.thy (axjoin([axa,axb,axd], "! x. T(i(x,x))"));
|
|
64 |
|
|
65 |
writeln"Problem 66";
|
|
66 |
goal HOL.thy (axjoin([axa,axb,axc,axd], "! x. T(i(x, n(n(x))))"));
|
|
67 |
|
|
68 |
writeln"Problem 67";
|
|
69 |
goal HOL.thy (axjoin([axa,axb,axc,axd], "! x. T(i(n(n(x)), x))"));
|
|
70 |
|