equal
deleted
inserted
replaced
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) |