Description
An ordered monoid is a multiplicative monoid together with an ordering of its elements. The ordering is required to be compatible with the multiplication in the sense that if x < y then x z < y z. The class of all ordered monoids is
OrderedMonoid.
The reason for making a separate class for ordered monoids is that monoid rings can be implemented more efficiently for them - an element of the monoid ring can be stored as a sorted list, each element of which is a pair consisting of an element of the monoid and a coefficient. See
PolynomialRing.
A free commutative ordered monoid can be created with
monoid.