src/ZF/arith_data.ML
changeset 18328 841261f303a1
parent 17956 369e2af8ee45
child 18678 dd0c569fa43d
--- a/src/ZF/arith_data.ML	Thu Dec 01 22:03:06 2005 +0100
+++ b/src/ZF/arith_data.ML	Thu Dec 01 22:04:27 2005 +0100
@@ -128,11 +128,12 @@
                diff_natify1, diff_natify2];
 
 (*Final simplification: cancel + and **)
-fun simplify_meta_eq rules ss =
-    mk_meta_eq o
-    simplify (Simplifier.inherit_context ss FOL_ss addeqcongs[eq_cong2,iff_cong2]
-                     delsimps iff_simps (*these could erase the whole rule!*)
-                     addsimps rules);
+fun simplify_meta_eq rules =
+  let val ss0 =
+    FOL_ss addeqcongs [eq_cong2, iff_cong2]
+      delsimps iff_simps (*these could erase the whole rule!*)
+      addsimps rules
+  in fn ss => mk_meta_eq o simplify (Simplifier.inherit_context ss ss0) end;
 
 val final_rules = add_0s @ mult_1s @ [mult_0, mult_0_right];
 
@@ -143,14 +144,15 @@
   val mk_coeff          = mk_coeff
   val dest_coeff        = dest_coeff
   val find_first_coeff  = find_first_coeff []
-  val norm_tac_ss1      = ZF_ss addsimps add_0s @ add_succs @ mult_1s @ add_ac
-  val norm_tac_ss2      = ZF_ss addsimps add_0s @ mult_1s @ add_ac @ mult_ac @ tc_rules @ natifys
+
+  val norm_ss1 = ZF_ss addsimps add_0s @ add_succs @ mult_1s @ add_ac
+  val norm_ss2 = ZF_ss addsimps add_0s @ mult_1s @ add_ac @ mult_ac @ tc_rules @ natifys
   fun norm_tac ss =
-    ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss norm_tac_ss1))
-    THEN ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss norm_tac_ss2))
-  val numeral_simp_tac_ss = ZF_ss addsimps add_0s @ tc_rules @ natifys
+    ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss norm_ss1))
+    THEN ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss norm_ss2))
+  val numeral_simp_ss = ZF_ss addsimps add_0s @ tc_rules @ natifys
   fun numeral_simp_tac ss =
-    ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss numeral_simp_tac_ss))
+    ALLGOALS (asm_simp_tac (Simplifier.inherit_context ss numeral_simp_ss))
   val simplify_meta_eq  = simplify_meta_eq final_rules
   end;