src/Pure/Isar/element.ML
changeset 19866 d47f32a4964a
parent 19843 67cb97e856ff
child 19897 fe661eb3b0e7
equal deleted inserted replaced
19865:8e1cee9e03dc 19866:d47f32a4964a
   308     Drule.forall_elim_list (map (cert o snd) subst)
   308     Drule.forall_elim_list (map (cert o snd) subst)
   309   end;
   309   end;
   310 
   310 
   311 fun hyps_rule rule th =
   311 fun hyps_rule rule th =
   312   let
   312   let
   313     val cterm_rule = Thm.reflexive #> rule #> Thm.cprop_of #> Drule.dest_equals #> #1;
   313     val cterm_rule = Drule.mk_term #> rule #> Drule.dest_term;
   314     val {hyps, ...} = Thm.crep_thm th;
   314     val {hyps, ...} = Thm.crep_thm th;
   315   in
   315   in
   316     Drule.implies_elim_list
   316     Drule.implies_elim_list
   317       (rule (Drule.implies_intr_list hyps th))
   317       (rule (Drule.implies_intr_list hyps th))
   318       (map (Thm.assume o cterm_rule) hyps)
   318       (map (Thm.assume o cterm_rule) hyps)