added global simpset
authorclasohm
Fri, 01 Sep 1995 13:32:13 +0200
changeset 1243 fa09705a5890
parent 1242 b3f68a644380
child 1244 3d408455d69f
added global simpset
src/Provers/simplifier.ML
--- a/src/Provers/simplifier.ML	Fri Sep 01 13:28:54 1995 +0200
+++ b/src/Provers/simplifier.ML	Fri Sep 01 13:32:13 1995 +0200
@@ -1,4 +1,4 @@
-(*  Title:      Provers/simplifier
+(*  Title:      Provers/simplifier.ML
     ID:         $Id$
     Author:     Tobias Nipkow
     Copyright   1993  TU Munich
@@ -26,6 +26,13 @@
   val setmksimps: simpset * (thm -> thm list) -> simpset
   val setsubgoaler: simpset * (simpset -> int -> tactic) -> simpset
   val simp_tac: simpset -> int -> tactic
+
+  val simpset: simpset ref
+  val Addsimps: thm list -> unit
+  val Delsimps: thm list -> unit
+  val Simp_tac: int -> tactic
+  val Asm_simp_tac: int -> tactic
+  val Asm_full_simp_tac: int -> tactic
 end;
 
 functor SimplifierFUN():SIMPLIFIER =
@@ -47,6 +54,7 @@
      finish_tac= K(K no_tac),
      loop_tac= K no_tac};
 
+val simpset = ref empty_ss;
 
 fun (SS{mss,simps,congs,subgoal_tac,finish_tac,...}) setloop loop_tac =
   SS{mss=mss,
@@ -90,6 +98,8 @@
      loop_tac=loop_tac}
   end;
 
+fun Addsimps rews = (simpset := !simpset addsimps rews);
+
 fun (SS{mss,simps,congs,subgoal_tac,finish_tac,loop_tac}) delsimps rews =
   let val rews' = flat(map (Thm.mk_rews_of_mss mss) rews) in
   SS{mss= Thm.del_simps(mss,rews'),
@@ -100,6 +110,8 @@
      loop_tac=loop_tac}
   end;
 
+fun Delsimps rews = (simpset := !simpset delsimps rews);
+
 fun (SS{mss,simps,congs,subgoal_tac,finish_tac,loop_tac}) addeqcongs newcongs =
   SS{mss= Thm.add_congs(mss,newcongs),
      simps= simps,
@@ -156,6 +168,8 @@
 val asm_simp_tac = gen_simp_tac (false,true);
 val simp_tac = gen_simp_tac (false,false);
 
-end;
+fun Asm_full_simp_tac i = asm_full_simp_tac (!simpset) i;
+fun Asm_simp_tac i = asm_simp_tac (!simpset) i;
+fun Simp_tac i = simp_tac (!simpset) i;
 
-structure Simplifier = SimplifierFUN();
+end;