assumption / finish: handle non-atomic assumptions from context as well;
authorwenzelm
Fri, 03 Nov 2000 21:26:11 +0100
changeset 10378 98c95ebf804f
parent 10377 6b595f9ae37e
child 10379 93630e0c5ae9
assumption / finish: handle non-atomic assumptions from context as well;
src/Pure/Isar/method.ML
--- a/src/Pure/Isar/method.ML	Fri Nov 03 21:25:30 2000 +0100
+++ b/src/Pure/Isar/method.ML	Fri Nov 03 21:26:11 2000 +0100
@@ -356,11 +356,13 @@
 
 (* assumption *)
 
-fun assm_tac ctxt =
-  assume_tac APPEND' resolve_tac (filter Thm.no_prems (ProofContext.prems_of ctxt));
+fun asm_tac ths =
+  foldr (op APPEND') (map (fn th => Tactic.rtac th THEN_ALL_NEW assume_tac) ths, K no_tac);
+
+fun assm_tac ctxt = assume_tac APPEND' asm_tac (ProofContext.prems_of ctxt);
 
 fun assumption_tac ctxt [] = assm_tac ctxt
-  | assumption_tac _ [fact] = resolve_tac [fact]
+  | assumption_tac _ [fact] = asm_tac [fact]
   | assumption_tac _ _ = K no_tac;
 
 fun assumption ctxt = METHOD (HEADGOAL o assumption_tac ctxt);