src/HOL/Tools/inductive.ML
changeset 33317 b4534348b8fd
parent 33278 ba9f52f56356
child 33338 de76079f973a
child 33577 ea36b70a6c1c
equal deleted inserted replaced
33316:6a72af4e84b8 33317:b4534348b8fd
   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