equal
deleted
inserted
replaced
390 |
390 |
391 fun mk_elim_prem ((_, _, us, _), ts, params') = |
391 fun mk_elim_prem ((_, _, us, _), ts, params') = |
392 list_all (params', |
392 list_all (params', |
393 Logic.list_implies (map (HOLogic.mk_Trueprop o HOLogic.mk_eq) |
393 Logic.list_implies (map (HOLogic.mk_Trueprop o HOLogic.mk_eq) |
394 (frees ~~ us) @ ts, P)); |
394 (frees ~~ us) @ ts, P)); |
395 val c_intrs = (List.filter (equal c o #1 o #1 o #1) intrs); |
395 val c_intrs = filter (equal c o #1 o #1 o #1) intrs; |
396 val prems = HOLogic.mk_Trueprop (list_comb (c, params @ frees)) :: |
396 val prems = HOLogic.mk_Trueprop (list_comb (c, params @ frees)) :: |
397 map mk_elim_prem (map #1 c_intrs) |
397 map mk_elim_prem (map #1 c_intrs) |
398 in |
398 in |
399 (Skip_Proof.prove ctxt'' [] prems P |
399 (Skip_Proof.prove ctxt'' [] prems P |
400 (fn {prems, ...} => EVERY |
400 (fn {prems, ...} => EVERY |