Module Base.Commutative_group

A signature for a commutative group (in the group-theory sense).

An implementation of this interface should have the following properties:

  1. associativity: (a + b) + c = a + (b + c)
  2. identity: zero + a = a + zero = a
  3. inverses: given any a there exists a (unique) elt b such that a + b = b + a = zero
  4. commutativity: a + b = b + a
module type S : sig ... end