semigroup1 http://www.openmath.org/cd/semigroup1.ocd 2006-06-01 2004-06-01 3 1 experimental Basic functions for semigroup theory Initiated by Arjeh M. Cohen 2003-05-17 Edited AMC 2004-0304 semigroup This symbol is a constructor for semigroups. It takes two arguments in the following order: a set to specify the elements in the semigroup, and a binary operation to specify the semigroup operation. The binary operation should act on elements of the set and return an element of the set. A semigroup is closed under its operation. A semigroup operation is associative. This example represents the semigroup of all functions f: R -> R with function composition as the operation. carrier This symbol represents a unary function, whose argument should be a semigroup S (for instance constructed by semigroup). When applied to S, its value should be the set of elements of S. The carrier of semigroup(S,*) is S. multiplication This symbol represents a unary function, whose argument should be a semigroup S. It returns the multiplication map on S. We allow for the map to be n-ary. The multiplication of semigroup(S,*) is *. is_commutative The unary boolean function whose value is true iff the argument is a commutative semigroup. If is_commutative(S) then for all a,b in carrier(S) a*b = b*a is_subsemigroup The binary boolean function whose value is true iff the second argument is a subsemigroup of the second. If is_subsemigroup(S,T) then T is a set of elements of S and T is closed under multiplication. magma This symbol is a unary function. Its argument should be a semigroup S. When applied to S, it denotes the magma with the same element set and binary operation as S. subsemigroup This symbol is a constructor symbol with two arguments. The first argument is a semigroup S, the second a list or set, D, of elements of S. When applied to S and D, it denotes the subsemigroup of S generated by D. This example represents the subsemigroup of the multiplicative semigroup of the nonzero reals generated by the constants Pi and E: factor_of This symbol is a ternary function. Its first argument should be a semigroup S and the second and third arguments should be elements of S. When applied to S, a, and b, it denotes the fact that a is a divisor of b in S. This means that there are u,v in carrier(S) such that uav=b. expression This symbol is a function with two arguments. Its first argument should be a semigroup G. 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 positive. 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 of the CD arith1 appearing in A. 23 5