55 |
55 |
56 fun print silent f = if silent then () else Output.urgent_message (f ()) |
56 fun print silent f = if silent then () else Output.urgent_message (f ()) |
57 |
57 |
58 fun test_facts ({debug, verbose, overlord, provers, max_mono_iters, |
58 fun test_facts ({debug, verbose, overlord, provers, max_mono_iters, |
59 max_new_mono_instances, type_enc, strict, lam_trans, |
59 max_new_mono_instances, type_enc, strict, lam_trans, |
60 uncurried_aliases, isar_proofs, isar_compress, |
60 uncurried_aliases, isar_proofs, isar_compress, isar_try0, |
61 isar_try0, isar_minimize, preplay_timeout, ...} : params) |
61 preplay_timeout, ...} : params) |
62 silent (prover : prover) timeout i n state facts = |
62 silent (prover : prover) timeout i n state facts = |
63 let |
63 let |
64 val _ = |
64 val _ = |
65 print silent (fn () => |
65 print silent (fn () => |
66 "Testing " ^ n_facts (map fst facts) ^ |
66 "Testing " ^ n_facts (map fst facts) ^ |
78 lam_trans = lam_trans, uncurried_aliases = uncurried_aliases, |
78 lam_trans = lam_trans, uncurried_aliases = uncurried_aliases, |
79 learn = false, fact_filter = NONE, max_facts = SOME (length facts), |
79 learn = false, fact_filter = NONE, max_facts = SOME (length facts), |
80 fact_thresholds = (1.01, 1.01), max_mono_iters = max_mono_iters, |
80 fact_thresholds = (1.01, 1.01), max_mono_iters = max_mono_iters, |
81 max_new_mono_instances = max_new_mono_instances, |
81 max_new_mono_instances = max_new_mono_instances, |
82 isar_proofs = isar_proofs, isar_compress = isar_compress, |
82 isar_proofs = isar_proofs, isar_compress = isar_compress, |
83 isar_try0 = isar_try0, isar_minimize = isar_minimize, slice = false, |
83 isar_try0 = isar_try0, slice = false, minimize = SOME false, |
84 minimize = SOME false, timeout = timeout, |
84 timeout = timeout, preplay_timeout = preplay_timeout, expect = ""} |
85 preplay_timeout = preplay_timeout, expect = ""} |
|
86 val problem = |
85 val problem = |
87 {state = state, goal = goal, subgoal = i, subgoal_count = n, |
86 {state = state, goal = goal, subgoal = i, subgoal_count = n, |
88 factss = [("", facts)]} |
87 factss = [("", facts)]} |
89 val result as {outcome, used_facts, run_time, ...} = |
88 val result as {outcome, used_facts, run_time, ...} = |
90 prover params (K (K (K ""))) problem |
89 prover params (K (K (K ""))) problem |
250 |
249 |
251 fun adjust_reconstructor_params override_params |
250 fun adjust_reconstructor_params override_params |
252 ({debug, verbose, overlord, blocking, provers, type_enc, strict, |
251 ({debug, verbose, overlord, blocking, provers, type_enc, strict, |
253 lam_trans, uncurried_aliases, learn, fact_filter, max_facts, |
252 lam_trans, uncurried_aliases, learn, fact_filter, max_facts, |
254 fact_thresholds, max_mono_iters, max_new_mono_instances, isar_proofs, |
253 fact_thresholds, max_mono_iters, max_new_mono_instances, isar_proofs, |
255 isar_compress, isar_try0, isar_minimize, slice, minimize, timeout, |
254 isar_compress, isar_try0, slice, minimize, timeout, preplay_timeout, |
256 preplay_timeout, expect} : params) = |
255 expect} : params) = |
257 let |
256 let |
258 fun lookup_override name default_value = |
257 fun lookup_override name default_value = |
259 case AList.lookup (op =) override_params name of |
258 case AList.lookup (op =) override_params name of |
260 SOME [s] => SOME s |
259 SOME [s] => SOME s |
261 | _ => default_value |
260 | _ => default_value |
268 provers = provers, type_enc = type_enc, strict = strict, |
267 provers = provers, type_enc = type_enc, strict = strict, |
269 lam_trans = lam_trans, uncurried_aliases = uncurried_aliases, |
268 lam_trans = lam_trans, uncurried_aliases = uncurried_aliases, |
270 learn = learn, fact_filter = fact_filter, max_facts = max_facts, |
269 learn = learn, fact_filter = fact_filter, max_facts = max_facts, |
271 fact_thresholds = fact_thresholds, max_mono_iters = max_mono_iters, |
270 fact_thresholds = fact_thresholds, max_mono_iters = max_mono_iters, |
272 max_new_mono_instances = max_new_mono_instances, isar_proofs = isar_proofs, |
271 max_new_mono_instances = max_new_mono_instances, isar_proofs = isar_proofs, |
273 isar_compress = isar_compress, isar_try0 = isar_try0, |
272 isar_compress = isar_compress, isar_try0 = isar_try0, slice = slice, |
274 isar_minimize = isar_minimize, slice = slice, minimize = minimize, |
273 minimize = minimize, timeout = timeout, preplay_timeout = preplay_timeout, |
275 timeout = timeout, preplay_timeout = preplay_timeout, expect = expect} |
274 expect = expect} |
276 end |
275 end |
277 |
276 |
278 fun maybe_minimize ctxt mode do_learn name |
277 fun maybe_minimize ctxt mode do_learn name |
279 (params as {verbose, isar_proofs, minimize, ...}) |
278 (params as {verbose, isar_proofs, minimize, ...}) |
280 ({state, subgoal, subgoal_count, ...} : prover_problem) |
279 ({state, subgoal, subgoal_count, ...} : prover_problem) |