disable "definitional CNF";
authorblanchet
Fri, 03 Sep 2010 13:54:04 +0200
changeset 39112 611e41ef07c3
parent 39111 2e9bdc6fbedf
child 39113 91ba394cc525
disable "definitional CNF"; it has a bad impact on "Metis_Examples". Perhaps we should use it more selectively, based on how many clauses we would get using the naive method
src/HOL/Tools/Sledgehammer/clausifier.ML
src/HOL/Tools/Sledgehammer/metis_tactics.ML
--- a/src/HOL/Tools/Sledgehammer/clausifier.ML	Fri Sep 03 13:45:12 2010 +0200
+++ b/src/HOL/Tools/Sledgehammer/clausifier.ML	Fri Sep 03 13:54:04 2010 +0200
@@ -241,7 +241,7 @@
   let
     val ctxt0 = Variable.global_thm_context th
     val (nnf_th, ctxt) = to_nnf th ctxt0
-    val def_th = to_definitional_cnf_with_quantifiers thy nnf_th
+    val def_th = (* FIXME: to_definitional_cnf_with_quantifiers thy *) nnf_th
     val sko_ths = map (skolem_theorem_of_def thy) (assume_skolem_funs def_th)
     val (cnf_ths, ctxt) = Meson.make_cnf sko_ths def_th ctxt
   in
--- a/src/HOL/Tools/Sledgehammer/metis_tactics.ML	Fri Sep 03 13:45:12 2010 +0200
+++ b/src/HOL/Tools/Sledgehammer/metis_tactics.ML	Fri Sep 03 13:54:04 2010 +0200
@@ -798,6 +798,7 @@
     val thy = ProofContext.theory_of ctxt
     val _ = trace_msg (fn () =>
         "Metis called with theorems " ^ cat_lines (map (Display.string_of_thm ctxt) ths))
+val timer = Timer.startRealTimer () (*###*)
   in
     if exists_type type_has_top_sort (prop_of st0) then
       (warning ("Metis: Proof state contains the universal sort {}"); Seq.empty)
@@ -806,6 +807,9 @@
                   (maps neg_clausify)
                   (fn cls => resolve_tac (FOL_SOLVE mode ctxt cls ths) 1)
                   ctxt i st0
+|> tap (fn _ => priority (" METIS " ^
+cat_lines (map (Display.string_of_thm ctxt) ths) ^
+string_of_int (Time.toMilliseconds (Timer.checkRealTimer timer)) ^ " ms")) (*###*)
   end
 
 val metis_tac = generic_metis_tac HO