src/HOL/Tools/Sledgehammer/sledgehammer_prover_smt.ML
changeset 55285 e88ad20035f4
parent 55212 5832470d956e
child 55287 ffa306239316
equal deleted inserted replaced
55284:bd27ac6ad1c3 55285:e88ad20035f4
   231 
   231 
   232     val (preplay, message, message_tail) =
   232     val (preplay, message, message_tail) =
   233       (case outcome of
   233       (case outcome of
   234         NONE =>
   234         NONE =>
   235         (Lazy.lazy (fn () =>
   235         (Lazy.lazy (fn () =>
   236            play_one_line_proof mode debug verbose preplay_timeout used_pairs state subgoal SMT
   236            play_one_line_proof mode debug verbose preplay_timeout used_pairs state subgoal
   237              (bunch_of_reconstructors false (fn desperate =>
   237              SMT_Method (bunch_of_proof_methods false liftingN)),
   238                 if desperate then liftingN else default_metis_lam_trans))),
       
   239          fn preplay =>
   238          fn preplay =>
   240             let
   239             let
   241               val one_line_params =
   240               val one_line_params =
   242                 (preplay, proof_banner mode name, used_facts,
   241                 (preplay, proof_banner mode name, used_facts,
   243                  choose_minimize_command thy params minimize_command name preplay, subgoal,
   242                  choose_minimize_command thy params minimize_command name preplay, subgoal,
   246             in
   245             in
   247               one_line_proof_text num_chained one_line_params
   246               one_line_proof_text num_chained one_line_params
   248             end,
   247             end,
   249          if verbose then "\nSMT solver real CPU time: " ^ string_of_time run_time ^ "." else "")
   248          if verbose then "\nSMT solver real CPU time: " ^ string_of_time run_time ^ "." else "")
   250       | SOME failure =>
   249       | SOME failure =>
   251         (Lazy.value (plain_metis, Play_Failed), fn _ => string_of_atp_failure failure, ""))
   250         (Lazy.value (Metis_Method (NONE, NONE), Play_Failed),
       
   251          fn _ => string_of_atp_failure failure, ""))
   252   in
   252   in
   253     {outcome = outcome, used_facts = used_facts, used_from = used_from, run_time = run_time,
   253     {outcome = outcome, used_facts = used_facts, used_from = used_from, run_time = run_time,
   254      preplay = preplay, message = message, message_tail = message_tail}
   254      preplay = preplay, message = message, message_tail = message_tail}
   255   end
   255   end
   256 
   256