# HG changeset patch # User wenzelm # Date 1026986751 -7200 # Node ID 0cbda884a7e5e75b7c4e41a22f35473032585d56 # Parent eff0ede61da157795b1fd917c4e78f74e0355f60 added satisfy_hyps; diff -r eff0ede61da1 -r 0cbda884a7e5 src/Pure/drule.ML --- a/src/Pure/drule.ML Thu Jul 18 12:05:29 2002 +0200 +++ b/src/Pure/drule.ML Thu Jul 18 12:05:51 2002 +0200 @@ -101,6 +101,7 @@ val kind_internal: 'a attribute val has_internal: tag list -> bool val impose_hyps: cterm list -> thm -> thm + val satisfy_hyps: thm list -> thm -> thm val close_derivation: thm -> thm val local_standard: thm -> thm val compose_single: thm * int * thm -> thm @@ -350,6 +351,10 @@ let val chyps' = gen_rems (op aconv o apfst Thm.term_of) (chyps, #hyps (Thm.rep_thm th)) in implies_elim_list (implies_intr_list chyps' th) (map Thm.assume chyps') end; +(* maps A1,...,An and A1,...,An |- B to |- B *) +fun satisfy_hyps ths th = + implies_elim_list (implies_intr_list (map (#prop o Thm.crep_thm) ths) th) ths; + (*Reset Var indexes to zero, renaming to preserve distinctness*) fun zero_var_indexes th = let val {prop,sign,...} = rep_thm th;