334 (case AList.lookup (op =) args proverK of |
334 (case AList.lookup (op =) args proverK of |
335 SOME name => get_prover name |
335 SOME name => get_prover name |
336 | NONE => get_prover (default_prover_name ())) |
336 | NONE => get_prover (default_prover_name ())) |
337 end |
337 end |
338 |
338 |
339 type locality = ATP_Translate.locality |
339 type locality = ATP_Problem_Generate.locality |
340 |
340 |
341 (* hack *) |
341 (* hack *) |
342 fun reconstructor_from_msg args msg = |
342 fun reconstructor_from_msg args msg = |
343 (case AList.lookup (op =) args reconstructorK of |
343 (case AList.lookup (op =) args reconstructorK of |
344 SOME name => name |
344 SOME name => name |
408 NONE => I |
408 NONE => I |
409 | SOME secs => TimeLimit.timeLimit (Time.fromSeconds secs)) |
409 | SOME secs => TimeLimit.timeLimit (Time.fromSeconds secs)) |
410 fun failed failure = |
410 fun failed failure = |
411 ({outcome = SOME failure, used_facts = [], run_time = Time.zeroTime, |
411 ({outcome = SOME failure, used_facts = [], run_time = Time.zeroTime, |
412 preplay = |
412 preplay = |
413 K (ATP_Reconstruct.Failed_to_Play Sledgehammer_Provers.plain_metis), |
413 K (ATP_Proof_Reconstruct.Failed_to_Play Sledgehammer_Provers.plain_metis), |
414 message = K "", message_tail = ""}, ~1) |
414 message = K "", message_tail = ""}, ~1) |
415 val ({outcome, used_facts, run_time, preplay, message, message_tail} |
415 val ({outcome, used_facts, run_time, preplay, message, message_tail} |
416 : Sledgehammer_Provers.prover_result, |
416 : Sledgehammer_Provers.prover_result, |
417 time_isa) = time_limit (Mirabelle.cpu_time (fn () => |
417 time_isa) = time_limit (Mirabelle.cpu_time (fn () => |
418 let |
418 let |
579 if !reconstructor = "sledgehammer_tac" then |
579 if !reconstructor = "sledgehammer_tac" then |
580 sledge_tac 0.2 ATP_Systems.z3_tptpN "mono_simple" |
580 sledge_tac 0.2 ATP_Systems.z3_tptpN "mono_simple" |
581 ORELSE' sledge_tac 0.2 ATP_Systems.eN "mono_guards??" |
581 ORELSE' sledge_tac 0.2 ATP_Systems.eN "mono_guards??" |
582 ORELSE' sledge_tac 0.2 ATP_Systems.vampireN "mono_guards??" |
582 ORELSE' sledge_tac 0.2 ATP_Systems.vampireN "mono_guards??" |
583 ORELSE' sledge_tac 0.2 ATP_Systems.spassN "poly_tags" |
583 ORELSE' sledge_tac 0.2 ATP_Systems.spassN "poly_tags" |
584 ORELSE' Metis_Tactic.metis_tac [] ATP_Translate.combinatorsN ctxt thms |
584 ORELSE' Metis_Tactic.metis_tac [] ATP_Problem_Generate.combinatorsN |
|
585 ctxt thms |
585 else if !reconstructor = "smt" then |
586 else if !reconstructor = "smt" then |
586 SMT_Solver.smt_tac ctxt thms |
587 SMT_Solver.smt_tac ctxt thms |
587 else if full then |
588 else if full then |
588 Metis_Tactic.metis_tac [ATP_Reconstruct.full_typesN] |
589 Metis_Tactic.metis_tac [ATP_Proof_Reconstruct.full_typesN] |
589 ATP_Reconstruct.metis_default_lam_trans ctxt thms |
590 ATP_Proof_Reconstruct.metis_default_lam_trans ctxt thms |
590 else if String.isPrefix "metis (" (!reconstructor) then |
591 else if String.isPrefix "metis (" (!reconstructor) then |
591 let |
592 let |
592 val (type_encs, lam_trans) = |
593 val (type_encs, lam_trans) = |
593 !reconstructor |
594 !reconstructor |
594 |> Outer_Syntax.scan Position.start |
595 |> Outer_Syntax.scan Position.start |
595 |> filter Token.is_proper |> tl |
596 |> filter Token.is_proper |> tl |
596 |> Metis_Tactic.parse_metis_options |> fst |
597 |> Metis_Tactic.parse_metis_options |> fst |
597 |>> the_default [ATP_Reconstruct.partial_typesN] |
598 |>> the_default [ATP_Proof_Reconstruct.partial_typesN] |
598 ||> the_default ATP_Reconstruct.metis_default_lam_trans |
599 ||> the_default ATP_Proof_Reconstruct.metis_default_lam_trans |
599 in Metis_Tactic.metis_tac type_encs lam_trans ctxt thms end |
600 in Metis_Tactic.metis_tac type_encs lam_trans ctxt thms end |
600 else if !reconstructor = "metis" then |
601 else if !reconstructor = "metis" then |
601 Metis_Tactic.metis_tac [] ATP_Reconstruct.metis_default_lam_trans ctxt |
602 Metis_Tactic.metis_tac [] ATP_Proof_Reconstruct.metis_default_lam_trans ctxt |
602 thms |
603 thms |
603 else |
604 else |
604 K all_tac |
605 K all_tac |
605 end |
606 end |
606 fun apply_reconstructor named_thms = |
607 fun apply_reconstructor named_thms = |