src/HOL/simpdata.ML
changeset 4681 a331c1f5a23e
parent 4677 c4b07b8579fd
child 4718 fc2ba9fb2135
--- a/src/HOL/simpdata.ML	Thu Mar 05 10:47:27 1998 +0100
+++ b/src/HOL/simpdata.ML	Fri Mar 06 15:19:29 1998 +0100
@@ -334,13 +334,23 @@
 val split_asm_tac = mk_case_split_asm_tac split_tac 
 			(disjE,conjE,exE,contrapos,contrapos2,notnotD);
 
-infix 4 addsplits;
+infix 4 addsplits delsplits;
+
 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;
 
+fun ss delsplits splits =
+  let fun delsplit(ss,split) =
+        let val name = "split " ^ const_of_split_thm split
+        in ss delloop name end
+  in foldl delsplit (ss,splits) end;
+
+fun Addsplits splits = (simpset_ref() := simpset() addsplits splits);
+fun Delsplits splits = (simpset_ref() := simpset() delsplits splits);
+
 qed_goal "if_cancel" HOL.thy "(if c then x else x) = x"
   (K [split_tac [expand_if] 1, blast_tac HOL_cs 1]);
 
@@ -385,7 +395,8 @@
 			    setSSolver   safe_solver
 			    setSolver  unsafe_solver
 			    setmksimps (mksimps mksimps_pairs)
-			    setmkeqTrue mk_meta_eq_True;
+			    setmkeqTrue mk_meta_eq_True
+                            addsplits [expand_if];
 
 val HOL_ss = 
     HOL_basic_ss addsimps