190 smt2_filter_loop name params state goal subgoal factss |
190 smt2_filter_loop name params state goal subgoal factss |
191 val used_named_facts = map snd fact_ids |
191 val used_named_facts = map snd fact_ids |
192 val used_facts = map fst used_named_facts |
192 val used_facts = map fst used_named_facts |
193 val outcome = Option.map failure_of_smt2_failure outcome |
193 val outcome = Option.map failure_of_smt2_failure outcome |
194 |
194 |
195 val (preplay, message, message_tail) = |
195 val (preferred_methss, message, message_tail) = |
196 (case outcome of |
196 (case outcome of |
197 NONE => |
197 NONE => |
198 (Lazy.lazy (fn () => |
198 let |
199 play_one_line_proof mode preplay_timeout used_named_facts state subgoal SMT2_Method |
199 val preferred_methss = |
200 (bunch_of_proof_methods (smt_proofs <> SOME false) false liftingN)), |
200 (SMT2_Method, bunches_of_proof_methods (smt_proofs <> SOME false) false liftingN) |
201 fn preplay => |
201 in |
202 let |
202 (preferred_methss, |
203 val _ = if verbose then Output.urgent_message "Generating proof text..." else () |
203 fn preplay => |
204 |
204 let |
205 fun isar_params () = |
205 val _ = if verbose then Output.urgent_message "Generating proof text..." else () |
206 (verbose, (NONE, NONE), preplay_timeout, compress, try0, minimize, atp_proof (), |
206 |
207 goal) |
207 fun isar_params () = |
208 |
208 (verbose, (NONE, NONE), preplay_timeout, compress, try0, minimize, atp_proof (), |
209 val one_line_params = |
209 goal) |
210 (preplay, proof_banner mode name, used_facts, minimize_command [] name, subgoal, |
210 |
211 subgoal_count) |
211 val one_line_params = |
212 val num_chained = length (#facts (Proof.goal state)) |
212 (preplay, proof_banner mode name, used_facts, minimize_command [] name, subgoal, |
213 in |
213 subgoal_count) |
214 proof_text ctxt debug isar_proofs smt_proofs isar_params num_chained one_line_params |
214 val num_chained = length (#facts (Proof.goal state)) |
215 end, |
215 in |
216 if verbose then "\nSMT solver real CPU time: " ^ string_of_time run_time ^ "." else "") |
216 proof_text ctxt debug isar_proofs smt_proofs isar_params num_chained one_line_params |
217 | SOME failure => |
217 end, |
218 (Lazy.value (Metis_Method (NONE, NONE), Play_Failed), |
218 if verbose then "\nSMT solver real CPU time: " ^ string_of_time run_time ^ "." else "") |
219 fn _ => string_of_atp_failure failure, "")) |
219 end |
|
220 | SOME failure => ((Auto_Method (* dummy *), []), fn _ => string_of_atp_failure failure, "")) |
220 in |
221 in |
221 {outcome = outcome, used_facts = used_facts, used_from = used_from, run_time = run_time, |
222 {outcome = outcome, used_facts = used_facts, used_from = used_from, |
222 preplay = preplay, message = message, message_tail = message_tail} |
223 preferred_methss = preferred_methss, run_time = run_time, message = message, |
|
224 message_tail = message_tail} |
223 end |
225 end |
224 |
226 |
225 end; |
227 end; |