equal
deleted
inserted
replaced
1315 if is_mash_enabled () then |
1315 if is_mash_enabled () then |
1316 (maybe_learn (), |
1316 (maybe_learn (), |
1317 if mash_can_suggest_facts ctxt overlord then meshN else mepoN) |
1317 if mash_can_suggest_facts ctxt overlord then meshN else mepoN) |
1318 else |
1318 else |
1319 (false, mepoN) |
1319 (false, mepoN) |
|
1320 |
|
1321 val unique_facts = drop_duplicate_facts facts |
1320 val add_ths = Attrib.eval_thms ctxt add |
1322 val add_ths = Attrib.eval_thms ctxt add |
|
1323 |
1321 fun in_add (_, th) = member Thm.eq_thm_prop add_ths th |
1324 fun in_add (_, th) = member Thm.eq_thm_prop add_ths th |
1322 fun add_and_take accepts = |
1325 fun add_and_take accepts = |
1323 (case add_ths of |
1326 (case add_ths of |
1324 [] => accepts |
1327 [] => accepts |
1325 | _ => (facts |> filter in_add |> map fact_of_raw_fact) @ |
1328 | _ => (unique_facts |> filter in_add |> map fact_of_raw_fact) @ |
1326 (accepts |> filter_out in_add)) |
1329 (accepts |> filter_out in_add)) |
1327 |> take max_facts |
1330 |> take max_facts |
1328 fun mepo () = |
1331 fun mepo () = |
1329 (mepo_suggested_facts ctxt params max_facts NONE hyp_ts concl_t facts |
1332 (mepo_suggested_facts ctxt params max_facts NONE hyp_ts concl_t unique_facts |
1330 |> weight_facts_steeply, []) |
1333 |> weight_facts_steeply, []) |
1331 fun mash () = |
1334 fun mash () = |
1332 mash_suggested_facts ctxt params prover (generous_max_facts max_facts) hyp_ts concl_t facts |
1335 mash_suggested_facts ctxt params prover (generous_max_facts max_facts) hyp_ts concl_t facts |
1333 |>> weight_facts_steeply |
1336 |>> weight_facts_steeply |
1334 val mess = |
1337 val mess = |