added CONJUNCTS: treat conjunction as separate sub-goals;
authorwenzelm
Sat, 19 Nov 2005 14:21:06 +0100
changeset 18209 6bcd9b2ca49b
parent 18208 dbdcf366db53
child 18210 ad4b8567f6eb
added CONJUNCTS: treat conjunction as separate sub-goals;
src/Pure/tactic.ML
--- a/src/Pure/tactic.ML	Sat Nov 19 14:21:05 2005 +0100
+++ b/src/Pure/tactic.ML	Sat Nov 19 14:21:06 2005 +0100
@@ -98,6 +98,7 @@
   val instantiate_tac   : (string * string) list -> tactic
   val thin_tac          : string -> int -> tactic
   val trace_goalno_tac  : (int -> tactic) -> int -> tactic
+  val CONJUNCTS: tactic -> int -> tactic
 end;
 
 signature TACTIC =
@@ -644,6 +645,12 @@
 fun smart_conjunction_tac 0 = assume_tac 1
   | smart_conjunction_tac _ = TRY conjunction_tac;
 
+(*treat conjunction as separate sub-goals*)
+fun CONJUNCTS tac =
+  SELECT_GOAL (TRY conjunction_tac
+    THEN tac
+    THEN PRIMITIVE Drule.conj_curry);
+
 end;
 
 structure BasicTactic: BASIC_TACTIC = Tactic;