separate lists of simprocs;
authorwenzelm
Wed, 26 Nov 1997 17:52:53 +0100
changeset 4309 c98f44948d86
parent 4308 9abce31cc764
child 4310 cad4f24be60b
separate lists of simprocs;
src/HOL/arith_data.ML
--- a/src/HOL/arith_data.ML	Wed Nov 26 17:35:46 1997 +0100
+++ b/src/HOL/arith_data.ML	Wed Nov 26 17:52:53 1997 +0100
@@ -7,10 +7,12 @@
 
 signature ARITH_DATA =
 sig
+  val nat_cancel_sums: simproc list
+  val nat_cancel_factor: simproc list
   val nat_cancel: simproc list
 end;
 
-structure ArithData (* FIXME :ARITH_DATA *) =
+structure ArithData: ARITH_DATA =
 struct
 
 
@@ -182,13 +184,17 @@
 val less_pats = prep_pats ["(l::nat) + m < n", "(l::nat) < m + n", "Suc m < n", "m < Suc n"];
 val le_pats = prep_pats ["(l::nat) + m <= n", "(l::nat) <= m + n", "Suc m <= n", "m <= Suc n"];
 
-val nat_cancel = map prep_simproc
-  [("nateq_cancel_factor", eq_pats, EqCancelFactor.proc),
-   ("natless_cancel_factor", less_pats, LessCancelFactor.proc),
-   ("natle_cancel_factor", le_pats, LeCancelFactor.proc),
-   ("nateq_cancel_sums", eq_pats, EqCancelSums.proc),
+val nat_cancel_sums = map prep_simproc
+  [("nateq_cancel_sums", eq_pats, EqCancelSums.proc),
    ("natless_cancel_sums", less_pats, LessCancelSums.proc),
    ("natle_cancel_sums", le_pats, LeCancelSums.proc)];
 
+val nat_cancel_factor = map prep_simproc
+  [("nateq_cancel_factor", eq_pats, EqCancelFactor.proc),
+   ("natless_cancel_factor", less_pats, LessCancelFactor.proc),
+   ("natle_cancel_factor", le_pats, LeCancelFactor.proc)];
+
+val nat_cancel = nat_cancel_factor @ nat_cancel_sums;
+
 
 end;