src/HOL/Tools/Sledgehammer/sledgehammer_run.ML
changeset 43261 a4aeb26a6362
parent 43233 2749c357f865
child 43290 07eb0ad9bb93
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_run.ML	Wed Jun 08 08:47:43 2011 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_run.ML	Wed Jun 08 08:47:43 2011 +0200
@@ -76,7 +76,7 @@
 fun minimize ctxt mode name (params as {debug, verbose, isar_proof, ...})
              ({state, subgoal, subgoal_count, facts, ...} : prover_problem)
              (result as {outcome, used_facts, run_time_in_msecs, preplay,
-                         message} : prover_result) =
+                         message, message_tail} : prover_result) =
   if is_some outcome then
     result
   else
@@ -112,7 +112,7 @@
             end
         else
           ((false, name), preplay)
-      val (used_facts, (preplay, message)) =
+      val (used_facts, (preplay, message, _)) =
         if minimize then
           minimize_facts minimize_name params (not verbose) subgoal
                          subgoal_count state
@@ -120,7 +120,7 @@
                               (map (apsnd single o untranslated_fact) facts))
           |>> Option.map (map fst)
         else
-          (SOME used_facts, (preplay, message))
+          (SOME used_facts, (preplay, message, ""))
     in
       case used_facts of
         SOME used_facts =>
@@ -137,7 +137,7 @@
            ();
          {outcome = NONE, used_facts = used_facts,
           run_time_in_msecs = run_time_in_msecs, preplay = preplay,
-          message = message})
+          message = message, message_tail = message_tail})
       | NONE => result
     end
 
@@ -167,10 +167,10 @@
     fun really_go () =
       problem
       |> get_minimizing_prover ctxt mode name params minimize_command
-      |> (fn {outcome, preplay, message, ...} =>
+      |> (fn {outcome, preplay, message, message_tail, ...} =>
              (if outcome = SOME ATP_Proof.TimedOut then timeoutN
               else if is_some outcome then noneN
-              else someN, message o preplay))
+              else someN, fn () => message (preplay ()) ^ message_tail))
     fun go () =
       let
         val (outcome_code, message) =