src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML
changeset 54143 18def1c73c79
parent 54141 f57f8e7a879f
child 54432 68f8bd1641da
equal deleted inserted replaced
54142:5f3c1b445253 54143:18def1c73c79
  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 =