added satisfy_hyps;
authorwenzelm
Thu, 18 Jul 2002 12:05:51 +0200
changeset 13389 0cbda884a7e5
parent 13388 eff0ede61da1
child 13390 c48c634605f1
added satisfy_hyps;
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;