284 timeout : Time.time option, |
285 timeout : Time.time option, |
285 preplay_timeout : Time.time option, |
286 preplay_timeout : Time.time option, |
286 expect : string} |
287 expect : string} |
287 |
288 |
288 type prover_problem = |
289 type prover_problem = |
289 {state : Proof.state, |
290 {comment : string, |
|
291 state : Proof.state, |
290 goal : thm, |
292 goal : thm, |
291 subgoal : int, |
293 subgoal : int, |
292 subgoal_count : int, |
294 subgoal_count : int, |
293 factss : (string * fact list) list} |
295 factss : (string * fact list) list} |
294 |
296 |
561 (params as {debug, verbose, overlord, type_enc, strict, lam_trans, |
563 (params as {debug, verbose, overlord, type_enc, strict, lam_trans, |
562 uncurried_aliases, fact_filter, max_facts, max_mono_iters, |
564 uncurried_aliases, fact_filter, max_facts, max_mono_iters, |
563 max_new_mono_instances, isar_proofs, isar_compress, |
565 max_new_mono_instances, isar_proofs, isar_compress, |
564 isar_try0, slice, timeout, preplay_timeout, ...}) |
566 isar_try0, slice, timeout, preplay_timeout, ...}) |
565 minimize_command |
567 minimize_command |
566 ({state, goal, subgoal, subgoal_count, factss, ...} : prover_problem) = |
568 ({comment, state, goal, subgoal, subgoal_count, factss, ...} : prover_problem) = |
567 let |
569 let |
568 val thy = Proof.theory_of state |
570 val thy = Proof.theory_of state |
569 val ctxt = Proof.context_of state |
571 val ctxt = Proof.context_of state |
570 val atp_mode = |
572 val atp_mode = |
571 if Config.get ctxt completish then Sledgehammer_Completish |
573 if Config.get ctxt completish then Sledgehammer_Completish |
725 "(exec 2>&1; " ^ File.shell_path command0 ^ " " ^ args ^ " " ^ ")" |
727 "(exec 2>&1; " ^ File.shell_path command0 ^ " " ^ args ^ " " ^ ")" |
726 |> enclose "TIMEFORMAT='%3R'; { time " " ; }" |
728 |> enclose "TIMEFORMAT='%3R'; { time " " ; }" |
727 val _ = |
729 val _ = |
728 atp_problem |
730 atp_problem |
729 |> lines_of_atp_problem format ord ord_info |
731 |> lines_of_atp_problem format ord ord_info |
730 |> cons ("% " ^ command ^ "\n") |
732 |> cons ("% " ^ command ^ "\n" ^ |
|
733 (if comment = "" then "" else "% " ^ comment ^ "\n")) |
731 |> File.write_list prob_path |
734 |> File.write_list prob_path |
732 val ((output, run_time), (atp_proof, outcome)) = |
735 val ((output, run_time), (atp_proof, outcome)) = |
733 time_limit generous_slice_timeout Isabelle_System.bash_output |
736 time_limit generous_slice_timeout Isabelle_System.bash_output |
734 command |
737 command |
735 |>> (if overlord then |
738 |>> (if overlord then |