Monoid
Template:Short description Template:For Template:Distinguish Template:Algebraic structures
In abstract algebra, a monoid is a set equipped with an associative binary operation and an identity element. For example, the nonnegative integers with addition form a monoid, the identity element being Template:Math.
Monoids are semigroups with identity. Such algebraic structures occur in several branches of mathematics.
The functions from a set into itself form a monoid with respect to function composition. More generally, in category theory, the morphisms of an object to itself form a monoid, and, conversely, a monoid may be viewed as a category with a single object.
In computer science and computer programming, the set of strings built from a given set of characters is a free monoid. Transition monoids and syntactic monoids are used in describing finite-state machines. Trace monoids and history monoids provide a foundation for process calculi and concurrent computing.
In theoretical computer science, the study of monoids is fundamental for automata theory (Krohn–Rhodes theory), and formal language theory (star height problem).
See semigroup for the history of the subject, and some other general properties of monoids.
DefinitionEdit
A set Template:Math equipped with a binary operation Template:Math, which we will denote Template:Math, is a monoid if it satisfies the following two axioms:
- Associativity
- For all Template:Math, Template:Math and Template:Math in Template:Math, the equation Template:Math holds.
- Identity element
- There exists an element Template:Math in Template:Math such that for every element Template:Math in Template:Math, the equalities Template:Math and Template:Math hold.
In other words, a monoid is a semigroup with an identity element. It can also be thought of as a magma with associativity and identity. The identity element of a monoid is unique.Template:Efn For this reason the identity is regarded as a constant, i. e. Template:Math-ary (or nullary) operation. The monoid therefore is characterized by specification of the triple Template:Math.
Depending on the context, the symbol for the binary operation may be omitted, so that the operation is denoted by juxtaposition; for example, the monoid axioms may be written Template:Math and Template:Math. This notation does not imply that it is numbers being multiplied.
A monoid in which each element has an inverse is a group.
Monoid structuresEdit
SubmonoidsEdit
A submonoid of a monoid Template:Math is a subset Template:Math of Template:Math that is closed under the monoid operation and contains the identity element Template:Math of Template:Math.Template:SfnTemplate:Efn Symbolically, Template:Math is a submonoid of Template:Math if Template:Math, and Template:Math whenever Template:Math. In this case, Template:Math is a monoid under the binary operation inherited from Template:Math.
On the other hand, if Template:Math is a subset of a monoid that is closed under the monoid operation, and is a monoid for this inherited operation, then Template:Math is not always a submonoid, since the identity elements may differ. For example, the singleton set Template:Math is closed under multiplication, and is not a submonoid of the (multiplicative) monoid of the nonnegative integers.
GeneratorsEdit
A subset Template:Math of Template:Math is said to generate Template:Math if the smallest submonoid of Template:Math containing Template:Math is Template:Math. If there is a finite set that generates Template:Math, then Template:Math is said to be a finitely generated monoid.
Commutative monoidEdit
A monoid whose operation is commutative is called a commutative monoid (or, less commonly, an abelian monoid). Commutative monoids are often written additively. Any commutative monoid is endowed with its algebraic preordering Template:Math, defined by Template:Math if there exists Template:Math such that Template:Math.Template:Sfn An order-unit of a commutative monoid Template:Math is an element Template:Math of Template:Math such that for any element Template:Math of Template:Math, there exists Template:Math in the set generated by Template:Math such that Template:Math. This is often used in case Template:Math is the positive cone of a partially ordered abelian group Template:Math, in which case we say that Template:Math is an order-unit of Template:Math.
Partially commutative monoidEdit
A monoid for which the operation is commutative for some, but not all elements is a trace monoid; trace monoids commonly occur in the theory of concurrent computation.
ExamplesEdit
- Out of the 16 possible binary Boolean operators, four have a two-sided identity that is also commutative and associative. These four each make the set Template:Math a commutative monoid. Under the standard definitions, AND and XNOR have the identity Template:Math while XOR and OR have the identity Template:Math. The monoids from AND and OR are also idempotent while those from XOR and XNOR are not.
- The set of natural numbers Template:Math is a commutative monoid under addition (identity element [[0 (number)|Template:Math]]) or multiplication (identity element [[1 (number)|Template:Math]]). A submonoid of Template:Math under addition is called a numerical monoid.
- The set of positive integers Template:Math is a commutative monoid under multiplication (identity element Template:Math).
- Given a set Template:Math, the set of subsets of Template:Math is a commutative monoid under intersection (identity element is Template:Math itself).
- Given a set Template:Math, the set of subsets of Template:Math is a commutative monoid under union (identity element is the empty set).
- Generalizing the previous example, every bounded semilattice is an idempotent commutative monoid.
- In particular, any bounded lattice can be endowed with both a meet- and a join- monoid structure. The identity elements are the lattice's top and its bottom, respectively. Being lattices, Heyting algebras and Boolean algebras are endowed with these monoid structures.
- Every singleton set Template:Math closed under a binary operation Template:Math forms the trivial (one-element) monoid, which is also the trivial group.
- Every group is a monoid and every abelian group a commutative monoid.
- Any semigroup Template:Math may be turned into a monoid simply by adjoining an element Template:Math not in Template:Math and defining Template:Math for all Template:Math. This conversion of any semigroup to the monoid is done by the free functor between the category of semigroups and the category of monoids.Template:Sfn
- Thus, an idempotent monoid (sometimes known as find-first) may be formed by adjoining an identity element Template:Math to the left zero semigroup over a set Template:Math. The opposite monoid (sometimes called find-last) is formed from the right zero semigroup over Template:Math.
- Adjoin an identity Template:Math to the left-zero semigroup with two elements Template:Math. Then the resulting idempotent monoid Template:Math models the lexicographical order of a sequence given the orders of its elements, with e representing equality.
- Thus, an idempotent monoid (sometimes known as find-first) may be formed by adjoining an identity element Template:Math to the left zero semigroup over a set Template:Math. The opposite monoid (sometimes called find-last) is formed from the right zero semigroup over Template:Math.
- The underlying set of any ring, with addition or multiplication as the operation. (By definition, a ring has a multiplicative identity Template:Math.)
- The integers, rational numbers, real numbers or complex numbers, with addition or multiplication as operation.Template:Sfn
- The set of all Template:Math by Template:Math matrices over a given ring, with matrix addition or matrix multiplication as the operation.
- The set of all finite strings over some fixed alphabet Template:Math forms a monoid with string concatenation as the operation. The empty string serves as the identity element. This monoid is denoted Template:Math and is called the free monoid over Template:Math. It is not commutative if Template:Math has at least two elements.
- Given any monoid Template:Math, the opposite monoid Template:Math has the same carrier set and identity element as Template:Math, and its operation is defined by Template:Math. Any commutative monoid is the opposite monoid of itself.
- Given two sets Template:Math and Template:Math endowed with monoid structure (or, in general, any finite number of monoids, Template:Math), their Cartesian product Template:Math, with the binary operation and identity element defined on corresponding coordinates, called the direct product, is also a monoid (respectively, Template:Math).Template:Sfn
- Fix a monoid Template:Math. The set of all functions from a given set to Template:Math is also a monoid. The identity element is a constant function mapping any value to the identity of Template:Math; the associative operation is defined pointwise.
- Fix a monoid Template:Math with the operation Template:Math and identity element Template:Math, and consider its power set Template:Math consisting of all subsets of Template:Math. A binary operation for such subsets can be defined by Template:Math. This turns Template:Math into a monoid with identity element Template:Math. In the same way the power set of a group Template:Math is a monoid under the product of group subsets.
- Let Template:Math be a set. The set of all functions Template:Math forms a monoid under function composition. The identity is just the identity function. It is also called the full transformation monoid of Template:Math. If Template:Math is finite with Template:Math elements, the monoid of functions on Template:Math is finite with Template:Math elements.
- Generalizing the previous example, let Template:Math be a category and Template:Math an object of Template:Math. The set of all endomorphisms of Template:Math, denoted Template:Math, forms a monoid under composition of morphisms. For more on the relationship between category theory and monoids see below.
- The set of homeomorphism classes of compact surfaces with the connected sum. Its unit element is the class of the ordinary 2-sphere. Furthermore, if Template:Math denotes the class of the torus, and Template:Math denotes the class of the projective plane, then every element Template:Math of the monoid has a unique expression in the form Template:Math where Template:Math is a positive integer and Template:Math, or Template:Math. We have Template:Math.
- Let Template:Math be a cyclic monoid of order Template:Math, that is, Template:Math. Then Template:Math for some Template:Math. Each such Template:Math gives a distinct monoid of order Template:Math, and every cyclic monoid is isomorphic to one of these.
Moreover, Template:Math can be considered as a function on the points Template:Math given by
<math display="block">\begin{bmatrix}
0 & 1 & 2 & \cdots & n-2 & n-1 \\ 1 & 2 & 3 & \cdots & n-1 & k\end{bmatrix}</math> or, equivalently <math display="block">f(i) := \begin{cases} i+1, & \text{if } 0 \le i < n-1 \\ k, & \text{if } i = n-1. \end{cases} </math>
Multiplication of elements in Template:Math is then given by function composition. Template:Pb When Template:Math then the function Template:Math is a permutation of Template:Math, and gives the unique cyclic group of order Template:Math.
PropertiesEdit
The monoid axioms imply that the identity element Template:Math is unique: If Template:Math and Template:Math are identity elements of a monoid, then Template:Math.
Products and powersEdit
For each nonnegative integer Template:Math, one can define the product <math>p_n = \textstyle \prod_{i=1}^n a_i</math> of any sequence Template:Math of Template:Math elements of a monoid recursively: let Template:Math and let Template:Math for Template:Math.
As a special case, one can define nonnegative integer powers of an element Template:Math of a monoid: Template:Math and Template:Math for Template:Math. Then Template:Math for all Template:Math.
Invertible elementsEdit
An element Template:Math is called invertible if there exists an element Template:Math such that Template:Math and Template:Math. The element Template:Math is called the inverse of Template:Math. Inverses, if they exist, are unique: if Template:Math and Template:Math are inverses of Template:Math, then by associativity Template:Math.Template:Sfn
If Template:Math is invertible, say with inverse Template:Math, then one can define negative powers of Template:Math by setting Template:Math for each Template:Math; this makes the equation Template:Math hold for all Template:Math.
The set of all invertible elements in a monoid, together with the operation •, forms a group.
Grothendieck groupEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} Not every monoid sits inside a group. For instance, it is perfectly possible to have a monoid in which two elements Template:Math and Template:Math exist such that Template:Math holds even though Template:Math is not the identity element. Such a monoid cannot be embedded in a group, because in the group multiplying both sides with the inverse of Template:Math would get that Template:Math, which is not true.
A monoid Template:Math has the cancellation property (or is cancellative) if for all Template:Math, Template:Math and Template:Math in Template:Math, the equality Template:Math implies Template:Math, and the equality Template:Math implies Template:Math.
A commutative monoid with the cancellation property can always be embedded in a group via the Grothendieck group construction. That is how the additive group of the integers (a group with operation Template:Math) is constructed from the additive monoid of natural numbers (a commutative monoid with operation Template:Math and cancellation property). However, a non-commutative cancellative monoid need not be embeddable in a group.
If a monoid has the cancellation property and is finite, then it is in fact a group.Template:Efn
The right- and left-cancellative elements of a monoid each in turn form a submonoid (i.e. are closed under the operation and obviously include the identity). This means that the cancellative elements of any commutative monoid can be extended to a group.
The cancellative property in a monoid is not necessary to perform the Grothendieck construction – commutativity is sufficient. However, if a commutative monoid does not have the cancellation property, the homomorphism of the monoid into its Grothendieck group is not injective. More precisely, if Template:Math, then Template:Math and Template:Math have the same image in the Grothendieck group, even if Template:Math. In particular, if the monoid has an absorbing element, then its Grothendieck group is the trivial group.
Types of monoidsEdit
An inverse monoid is a monoid where for every Template:Math in Template:Math, there exists a unique Template:Math in Template:Math such that Template:Math and Template:Math. If an inverse monoid is cancellative, then it is a group.
In the opposite direction, a zerosumfree monoid is an additively written monoid in which Template:Math implies that Template:Math and Template:Math:Template:Sfn equivalently, that no element other than zero has an additive inverse.
Acts and operator monoidsEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} Let Template:Math be a monoid, with the binary operation denoted by Template:Math and the identity element denoted by Template:Math. Then a (left) Template:Math-act (or left act over Template:Math) is a set Template:Math together with an operation Template:Math which is compatible with the monoid structure as follows:
- for all Template:Math in Template:Math: Template:Math;
- for all Template:Math, Template:Math in Template:Math and Template:Math in Template:Math: Template:Math.
This is the analogue in monoid theory of a (left) group action. Right Template:Math-acts are defined in a similar way. A monoid with an act is also known as an operator monoid. Important examples include transition systems of semiautomata. A transformation semigroup can be made into an operator monoid by adjoining the identity transformation.
Monoid homomorphismsEdit
A homomorphism between two monoids Template:Math and Template:Math is a function Template:Math such that
- Template:Math for all Template:Math, Template:Math in Template:Math
- Template:Math,
where Template:Math and Template:Math are the identities on Template:Math and Template:Math respectively. Monoid homomorphisms are sometimes simply called monoid morphisms.
Not every semigroup homomorphism between monoids is a monoid homomorphism, since it may not map the identity to the identity of the target monoid, even though the identity is the identity of the image of the homomorphism.Template:Efn For example, consider Template:Math, the set of residue classes modulo Template:Math equipped with multiplication. In particular, Template:Math is the identity element. Function Template:Math given by Template:Math is a semigroup homomorphism, since Template:Math. However, Template:Math, so a monoid homomorphism is a semigroup homomorphism between monoids that maps the identity of the first monoid to the identity of the second monoid and the latter condition cannot be omitted.
In contrast, a semigroup homomorphism between groups is always a group homomorphism, as it necessarily preserves the identity (because, in the target group of the homomorphism, the identity element is the only element Template:Math such that Template:Math).
A bijective monoid homomorphism is called a monoid isomorphism. Two monoids are said to be isomorphic if there is a monoid isomorphism between them.
Equational presentationEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}
Monoids may be given a presentation, much in the same way that groups can be specified by means of a group presentation. One does this by specifying a set of generators Template:Math, and a set of relations on the free monoid Template:Math. One does this by extending (finite) binary relations on Template:Math to monoid congruences, and then constructing the quotient monoid, as above.
Given a binary relation Template:Math, one defines its symmetric closure as Template:Math. This can be extended to a symmetric relation Template:Math by defining Template:Math if and only if Template:Math and Template:Math for some strings Template:Math with Template:Math. Finally, one takes the reflexive and transitive closure of Template:Math, which is then a monoid congruence.
In the typical situation, the relation Template:Math is simply given as a set of equations, so that Template:Math. Thus, for example,
- <math>\langle p,q\,\vert\; pq=1\rangle</math>
is the equational presentation for the bicyclic monoid, and
- <math>\langle a,b \,\vert\; aba=baa, bba=bab\rangle</math>
is the plactic monoid of degree Template:Math (it has infinite order). Elements of this plactic monoid may be written as <math>a^ib^j(ba)^k</math> for integers Template:Math, Template:Math, Template:Math, as the relations show that Template:Math commutes with both Template:Math and Template:Math.
Relation to category theoryEdit
Template:Group-like structures Monoids can be viewed as a special class of categories. Indeed, the axioms required of a monoid operation are exactly those required of morphism composition when restricted to the set of all morphisms whose source and target is a given object.Template:Sfn That is,
- A monoid is, essentially, the same thing as a category with a single object.
More precisely, given a monoid Template:Math, one can construct a small category with only one object and whose morphisms are the elements of Template:Math. The composition of morphisms is given by the monoid operation Template:Math.
Likewise, monoid homomorphisms are just functors between single object categories.Template:Sfn So this construction gives an equivalence between the category of (small) monoids Mon and a full subcategory of the category of (small) categories Cat. Similarly, the category of groups is equivalent to another full subcategory of Cat.
In this sense, category theory can be thought of as an extension of the concept of a monoid. Many definitions and theorems about monoids can be generalised to small categories with more than one object. For example, a quotient of a category with one object is just a quotient monoid.
Monoids, just like other algebraic structures, also form their own category, Mon, whose objects are monoids and whose morphisms are monoid homomorphisms.Template:Sfn
There is also a notion of monoid object which is an abstract definition of what is a monoid in a category. A monoid object in Set is just a monoid.
Monoids in computer scienceEdit
In computer science, many abstract data types can be endowed with a monoid structure. In a common pattern, a sequence of elements of a monoid is "folded" or "accumulated" to produce a final value. For instance, many iterative algorithms need to update some kind of "running total" at each iteration; this pattern may be elegantly expressed by a monoid operation. Alternatively, the associativity of monoid operations ensures that the operation can be parallelized by employing a prefix sum or similar algorithm, in order to utilize multiple cores or processors efficiently.
Given a sequence of values of type Template:Math with identity element Template:Math and associative operation Template:Math, the fold operation is defined as follows:
- <math>\mathrm{fold}: M^{*} \rarr M = \ell \mapsto \begin{cases} \varepsilon & \mbox{if } \ell = \mathrm{nil} \\ m \bullet \mathrm{fold} \, \ell' & \mbox{if } \ell = \mathrm{cons} \, m \, \ell' \end{cases}</math>
In addition, any data structure can be 'folded' in a similar way, given a serialization of its elements. For instance, the result of "folding" a binary tree might differ depending on pre-order vs. post-order tree traversal.
MapReduceEdit
An application of monoids in computer science is the so-called MapReduce programming model (see Encoding Map-Reduce As A Monoid With Left Folding). MapReduce, in computing, consists of two or three operations. Given a dataset, "Map" consists of mapping arbitrary data to elements of a specific monoid. "Reduce" consists of folding those elements, so that in the end we produce just one element.
For example, if we have a multiset, in a program it is represented as a map from elements to their numbers. Elements are called keys in this case. The number of distinct keys may be too big, and in this case, the multiset is being sharded. To finalize reduction properly, the "Shuffling" stage regroups the data among the nodes. If we do not need this step, the whole Map/Reduce consists of mapping and reducing; both operations are parallelizable, the former due to its element-wise nature, the latter due to associativity of the monoid.
Complete monoidsEdit
A complete monoid is a commutative monoid equipped with an infinitary sum operation <math>\Sigma_I</math> for any index set Template:Math such thatTemplate:SfnTemplate:SfnTemplate:SfnTemplate:Sfn
- <math>\sum_{i \in \emptyset}{m_i} =0;\quad \sum_{i \in \{j\}}{m_i} = m_j;\quad \sum_{i \in \{j, k\}}{m_i} = m_j+m_k \quad \text{ for } j\neq k</math>
and
- <math>\sum_{j \in J}{\sum_{i \in I_j}{m_i}} = \sum_{i \in I} m_i \quad \text{ if } \bigcup_{j\in J} I_j=I \text{ and } I_j \cap I_{j'} = \emptyset \quad \text{ for } j\neq j'</math>.
An ordered commutative monoid is a commutative monoid Template:Math together with a partial ordering Template:Math such that Template:Math for every Template:Math, and Template:Math implies Template:Math for all Template:Math.
A continuous monoid is an ordered commutative monoid Template:Math in which every directed subset has a least upper bound, and these least upper bounds are compatible with the monoid operation:
- <math>a + \sup S = \sup(a + S)</math>
for every Template:Math and directed subset Template:Math of Template:Math.
If Template:Math is a continuous monoid, then for any index set Template:Math and collection of elements Template:Math, one can define
- <math> \sum_I a_i = \sup_{\text{finite } E \subset I} \; \sum_E a_i, </math>
and Template:Math together with this infinitary sum operation is a complete monoid.Template:Sfn
See alsoEdit
- Cartesian monoid
- Green's relations
- Monad (functional programming)
- Semiring and Kleene algebra
- Star height problem
- Vedic square
- Frobenioid
NotesEdit
CitationsEdit
ReferencesEdit
- Template:Cite book
- Template:Citation
- Template:Cite book
- Template:Cite journal
- Template:Citation
- Template:Citation
- Template:Citation
- Template:Citation
- Template:Cite book
- Template:Cite book
- Template:Citation
- Template:Citation
- Template:Cite journal
External linksEdit
- Template:Springer
- {{#invoke:Template wrapper|{{#if:|list|wrap}}|_template=cite web
|_exclude=urlname, _debug, id |url = https://mathworld.wolfram.com/{{#if:Monoid%7CMonoid.html}} |title = Monoid |author = Weisstein, Eric W. |website = MathWorld |access-date = |ref = Template:SfnRef }}