Splitters via named loopers.
authornipkow
Sat, 28 Feb 1998 15:41:17 +0100
changeset 4669 06f3c56dcba8
parent 4668 131989b78417
child 4670 f309259fa828
Splitters via named loopers.
src/FOL/simpdata.ML
src/HOL/simpdata.ML
--- a/src/FOL/simpdata.ML	Sat Feb 28 15:40:50 1998 +0100
+++ b/src/FOL/simpdata.ML	Sat Feb 28 15:41:17 1998 +0100
@@ -267,7 +267,11 @@
 fun Delcongs congs = (simpset_ref() := simpset() delcongs congs);
 
 infix 4 addsplits;
-fun ss addsplits splits = ss addloop (split_tac splits);
+fun ss addsplits splits =
+  let fun addsplit(ss,split) =
+        let val name = "split " ^ const_of_split_thm split
+        in ss addloop (name,split_tac [split]) end
+  in foldl addsplit (ss,splits) end;
 
 val IFOL_simps =
    [refl RS P_iff_T] @ conj_simps @ disj_simps @ not_simps @ 
--- a/src/HOL/simpdata.ML	Sat Feb 28 15:40:50 1998 +0100
+++ b/src/HOL/simpdata.ML	Sat Feb 28 15:41:17 1998 +0100
@@ -337,8 +337,11 @@
 			(disjE,conjE,exE,contrapos,contrapos2,notnotD);
 
 infix 4 addsplits;
-fun ss addsplits splits = ss addloop (split_tac splits);
-
+fun ss addsplits splits =
+  let fun addsplit(ss,split) =
+        let val name = "split " ^ const_of_split_thm split
+        in ss addloop (name,split_tac [split]) end
+  in foldl addsplit (ss,splits) end;
 
 qed_goal "if_cancel" HOL.thy "(if c then x else x) = x"
   (K [split_tac [expand_if] 1, blast_tac HOL_cs 1]);