Added delspilts, Addsplits, Delsplits.
authornipkow
Fri, 06 Mar 1998 15:20:29 +0100
changeset 4682 ff081854fc86
parent 4681 a331c1f5a23e
child 4683 de426efe87d3
Added delspilts, Addsplits, Delsplits.
src/Provers/simplifier.ML
--- a/src/Provers/simplifier.ML	Fri Mar 06 15:19:29 1998 +0100
+++ b/src/Provers/simplifier.ML	Fri Mar 06 15:20:29 1998 +0100
@@ -7,7 +7,7 @@
 *)
 
 infix 4
-  setsubgoaler setloop addloop setSSolver addSSolver setSolver
+  setsubgoaler setloop addloop delloop setSSolver addSSolver setSolver
   addSolver addsimps delsimps addeqcongs deleqcongs
   setmksimps setmkeqTrue setmksym settermless addsimprocs delsimprocs;
 
@@ -30,6 +30,7 @@
   val setsubgoaler: simpset *  (simpset -> int -> tactic) -> simpset
   val setloop:      simpset *             (int -> tactic) -> simpset
   val addloop:      simpset *  (string * (int -> tactic)) -> simpset
+  val delloop:      simpset *   string                    -> simpset
   val setSSolver:   simpset * (thm list -> int -> tactic) -> simpset
   val addSSolver:   simpset * (thm list -> int -> tactic) -> simpset
   val setSolver:    simpset * (thm list -> int -> tactic) -> simpset
@@ -152,6 +153,13 @@
   make_ss (mss, subgoal_tac, overwrite(loop_tacs,atac),
            finish_tac, unsafe_finish_tac);
 
+fun (ss as Simpset {mss,subgoal_tac,loop_tacs,finish_tac,unsafe_finish_tac})
+    delloop name =
+  let val (del,rest) = partition (fn (n,_) => n=name) loop_tacs
+  in if null del then (warning ("No such looper in simpset: " ^ name); ss)
+     else make_ss (mss, subgoal_tac, rest, finish_tac, unsafe_finish_tac)
+  end;
+
 fun (Simpset {mss, subgoal_tac, loop_tacs, finish_tac = _, unsafe_finish_tac})
     setSSolver finish_tac =
   make_ss (mss, subgoal_tac, loop_tacs, finish_tac, unsafe_finish_tac);