66 else "\n" ^ Syntax.string_of_term ctxt (Thm.term_of (Thm.cprem_of goal i)))) |
66 else "\n" ^ Syntax.string_of_term ctxt (Thm.term_of (Thm.cprem_of goal i)))) |
67 |
67 |
68 fun launch_prover (params as {debug, verbose, spy, blocking, max_facts, slice, |
68 fun launch_prover (params as {debug, verbose, spy, blocking, max_facts, slice, |
69 timeout, expect, ...}) |
69 timeout, expect, ...}) |
70 mode output_result minimize_command only learn |
70 mode output_result minimize_command only learn |
71 {state, goal, subgoal, subgoal_count, factss as (_, facts) :: _} name = |
71 {comment, state, goal, subgoal, subgoal_count, factss as (_, facts) :: _} name = |
72 let |
72 let |
73 val ctxt = Proof.context_of state |
73 val ctxt = Proof.context_of state |
74 |
74 |
75 val hard_timeout = time_mult 3.0 (timeout |> the_default one_day) |
75 val hard_timeout = time_mult 3.0 (timeout |> the_default one_day) |
76 val _ = spying spy (fn () => (state, subgoal, name, "Launched")); |
76 val _ = spying spy (fn () => (state, subgoal, name, "Launched")); |
80 val num_facts = length facts |> not only ? Integer.min max_facts |
80 val num_facts = length facts |> not only ? Integer.min max_facts |
81 |
81 |
82 fun desc () = prover_description ctxt params name num_facts subgoal subgoal_count goal |
82 fun desc () = prover_description ctxt params name num_facts subgoal subgoal_count goal |
83 |
83 |
84 val problem = |
84 val problem = |
85 {state = state, goal = goal, subgoal = subgoal, |
85 {comment = comment, state = state, goal = goal, subgoal = subgoal, |
86 subgoal_count = subgoal_count, |
86 subgoal_count = subgoal_count, |
87 factss = factss |
87 factss = factss |
88 |> map (apsnd ((not (is_ho_atp ctxt name) |
88 |> map (apsnd ((not (is_ho_atp ctxt name) |
89 ? filter_out (fn ((_, (_, Induction)), _) => true |
89 ? filter_out (fn ((_, (_, Induction)), _) => true |
90 | _ => false)) |
90 | _ => false)) |
280 |
280 |
281 fun launch_provers state label is_appropriate_prop provers = |
281 fun launch_provers state label is_appropriate_prop provers = |
282 let |
282 let |
283 val factss = get_factss label is_appropriate_prop provers |
283 val factss = get_factss label is_appropriate_prop provers |
284 val problem = |
284 val problem = |
285 {state = state, goal = goal, subgoal = i, subgoal_count = n, |
285 {comment = "", state = state, goal = goal, subgoal = i, subgoal_count = n, |
286 factss = factss} |
286 factss = factss} |
287 fun learn prover = |
287 fun learn prover = |
288 mash_learn_proof ctxt params prover (prop_of goal) all_facts |
288 mash_learn_proof ctxt params prover (prop_of goal) all_facts |
289 val launch = |
289 val launch = |
290 launch_prover params mode output_result minimize_command only learn |
290 launch_prover params mode output_result minimize_command only learn |