ex/mesontest.ML
changeset 90 5c7a69cef18b
parent 0 7949f97df77a
equal deleted inserted replaced
89:5f462dfaf130 90:5c7a69cef18b
    73 by (depth_prolog_tac horns26);	(*6 secs*)
    73 by (depth_prolog_tac horns26);	(*6 secs*)
    74 
    74 
    75 
    75 
    76 
    76 
    77 writeln"Problem 43  NOW PROVED AUTOMATICALLY!!";
    77 writeln"Problem 43  NOW PROVED AUTOMATICALLY!!";
    78 goal HOL.thy "(! x. ! y. q(x,y) = (! z. p(z,x) = p(z,y)::bool))	\
    78 goal HOL.thy "(! x. ! y. q(x,y) = (! z. p(z,x) = (p(z,y)::bool)))	\
    79 \         --> (! x. (! y. q(x,y) = q(y,x)::bool))";
    79 \         --> (! x. (! y. q(x,y) = (q(y,x)::bool)))";
    80 by (rtac ccontr 1);
    80 by (rtac ccontr 1);
    81 val [prem43] = gethyps 1;
    81 val [prem43] = gethyps 1;
    82 val nnf43 = make_nnf prem43;
    82 val nnf43 = make_nnf prem43;
    83 val xsko43 = skolemize nnf43;
    83 val xsko43 = skolemize nnf43;
    84 by (cut_facts_tac [xsko43] 1 THEN REPEAT (etac exE 1));
    84 by (cut_facts_tac [xsko43] 1 THEN REPEAT (etac exE 1));
   159 goal HOL.thy "(Q-->R) & (R-->P&Q) & (P-->Q|R) --> (P=Q)";
   159 goal HOL.thy "(Q-->R) & (R-->P&Q) & (P-->Q|R) --> (P=Q)";
   160 by (safe_meson_tac 1);
   160 by (safe_meson_tac 1);
   161 result();
   161 result();
   162 
   162 
   163 (*11.  Proved in each direction (incorrectly, says Pelletier!!)  *)
   163 (*11.  Proved in each direction (incorrectly, says Pelletier!!)  *)
   164 goal HOL.thy "P=P::bool";
   164 goal HOL.thy "P=(P::bool)";
   165 by (safe_meson_tac 1);
   165 by (safe_meson_tac 1);
   166 result();
   166 result();
   167 
   167 
   168 (*12.  "Dijkstra's law"*)
   168 (*12.  "Dijkstra's law"*)
   169 goal HOL.thy "((P = Q) = R) = (P = (Q = R))";
   169 goal HOL.thy "((P = Q) = R) = (P = (Q = R))";
   402 goal HOL.thy "~ (? y. ! x. p(x,y) = (~ (? z. p(x,z) & p(z,x))))";
   402 goal HOL.thy "~ (? y. ! x. p(x,y) = (~ (? z. p(x,z) & p(z,x))))";
   403 by (safe_meson_tac 1);
   403 by (safe_meson_tac 1);
   404 result();
   404 result();
   405 
   405 
   406 writeln"Problem 43  NOW PROVED AUTOMATICALLY!!";
   406 writeln"Problem 43  NOW PROVED AUTOMATICALLY!!";
   407 goal HOL.thy "(! x. ! y. q(x,y) = (! z. p(z,x) = p(z,y)::bool))	\
   407 goal HOL.thy "(! x. ! y. q(x,y) = (! z. p(z,x) = (p(z,y)::bool)))	\
   408 \         --> (! x. (! y. q(x,y) = q(y,x)::bool))";
   408 \         --> (! x. (! y. q(x,y) = (q(y,x)::bool)))";
   409 by (safe_meson_tac 1);
   409 by (safe_meson_tac 1);
   410 result();
   410 result();
   411 
   411 
   412 writeln"Problem 44";
   412 writeln"Problem 44";
   413 goal HOL.thy "(! x. f(x) -->					\
   413 goal HOL.thy "(! x. f(x) -->					\