--- a/src/Pure/General/integer.ML Mon Oct 19 16:47:21 2009 +0200
+++ b/src/Pure/General/integer.ML Mon Oct 19 21:54:57 2009 +0200
@@ -1,13 +1,16 @@
(* Title: Pure/General/integer.ML
Author: Florian Haftmann, TU Muenchen
-Unbounded integers.
+Auxiliary operations on (unbounded) integers.
*)
signature INTEGER =
sig
+ val add: int -> int -> int
+ val mult: int -> int -> int
+ val sum: int list -> int
+ val prod: int list -> int
val sign: int -> order
- val sum: int list -> int
val div_mod: int -> int -> int * int
val square: int -> int
val pow: int -> int -> int (* exponent -> base -> result *)
@@ -20,9 +23,13 @@
structure Integer : INTEGER =
struct
-fun sign x = int_ord (x, 0);
+fun add x y = x + y;
+fun mult x y = x * y;
-fun sum xs = fold (curry op +) xs 0;
+fun sum xs = fold add xs 0;
+fun prod xs = fold mult xs 1;
+
+fun sign x = int_ord (x, 0);
fun div_mod x y = IntInf.divMod (x, y);