monoid1 http://www.openmath.org/cd/monoid1.ocd 2006-06-01 2004-06-01 3 2 experimental Basic functions for monoid theory Initiated by Arjeh M. Cohen 2003-05-17 Edited by AMC 2004-03-02 monoid This symbol is a constructor for monoids. It takes three arguments in the following order: a set to specify the elements in the monoid, a binary operation to specify the monoid operation, and an element to specify the identity. The binary operation should act on elements of the set and return an element of the set. A monoid is closed under its operation. A monoid operation is associative. A monoid has an identity element. This example represents the monoid which has as elements all positive and negative even numbers, the monoid operation is binary addition, inverses are the negative of the element and the identity is the zero element. 2 0 carrier This symbol represents a unary function, whose argument should be a monoid M (for instance constructed by monoid). When applied to M, its value should be the set of elements of a monoid. The carrier of monoid(M,*,e) is M. multiplication This symbol represents a unary function, whose argument should be a monoid M. It returns the multiplication map on M. We allow for the map to be n-ary. The multiplication of monoid(M,*,e) is *. The product a_1 * ... * a_n of elements a_1, ..., a_n of M can be expressed as follows. identity This symbols represents a unary function, whose argument should be a monoid. It returns the identity element of the monoid. The identity of monoid(M,*,e) is e. is_commutative The unary boolean function whose value is true iff the argument is a commutative monoid. If is_commutative(M) then for all a,b in carrier(M) a*b = b*a is_invertible This symbol represents a binary function, whose first argument is a monoid M and whose second argument is an element x of M. Its value is true iff the argument if x is invertible (that is, has a left and a right inverse) in M. x is invertible in M if and only if there is a in carrier(M) with a*x = x*a = 1. is_submonoid The binary boolean function whose value is true iff the second argument is a submonoid of the second. If is_submonoid(M,N) then N is a nonempty set of elements of M and N is closed under multiplication and taking inverses. semigroup This symbol is a unary function, whose argument should be a monoid M. When applied to M its value is the semigroup underlying M. submonoid This symbol is a constructor symbol with two arguments. The first argument is a monoid M, the second a list or set, D, of elements of M. When applied to M and D, it denotes the submonoid of M generated by D. This example represents the submonoid of the multiplicative monoid of the nonzero reals generated by the constants Pi and E: invertibles This symbol is a unary function. Its argument should be a monoid M. When applied to M, it denotes the submonoid of M consisting of all invertible elements in M. This is a group. divisor_of This symbol is a ternary function. Its first argument should be a monoid M and the second and third arguments should be elements of M. When applied to M, a, and b, it denotes the fact that a is a divisor of b in M. This means that there are u,v in carrier(M) such that uav=b. expression This symbol is a function with two arguments. Its first argument should be a monoid. The second should be an arithmetic expression A, whose operators are times and power, and whose leaves are members of the carrier of G. The second argument of power should be nonnegative. When applied to G and A, it denotes the element (of G) that is obtained from the leaves of A by applying the multiplication and the power map of G instead of the times and power from the CD arith1 appearing in A. The symbol alg1.one occurring in A will be interpreted as the identity of G. 0 43 7