A **monoid** is a pair (M,*), where M is a set and * is a binary operation on M, obeying the following rules:

- closure: for all
*a*,*b*in M,*a***b*is in M. - identity: there exists an element
*e*in M, such that for all*a*in M,*a***e*=*e***a*=*a*. - associativity: * is an associative operation; that is, for all
*a*,*b*,*c*in M, (*a***b*)**c*=*a**(*b***c*)

In other words, a monoid is a semigroup with an identity element.

Some examples of monoids:

- Any group.
- The integers or natural numbers or complex numbers, with multiplication as the operation.
- The natural numbers, with addition as the operation.
- The set of all finite strings (including the empty string) over some fixed alphabet Σ, with string concatenation as the operation. This is denoted by Σ
^{*}by theoretical computer scientists and called the "free monoid over Σ" by mathematicians. - The elements of every unitary ring, with multiplication as the operation. An example of this is the set of all
*n*by*n*matrices with matrix multiplication. - Pick an object of a category and consider the set of all morphisms from this object to itself, with composition as the operation. (See category theory.) Some examples from well-known categories include:
- The set of all continuous selfmaps of a topological space, with composition as the operation.
- The set of all endomorphisms of a fixed group, with composition as the operation.
- The set of all functions from a set to itself, with composition as the operation.

Directly from the definition, one can show that the identity element *e* is unique. Then it is possible to define *invertible elements*:
an element *x* is called invertible if there exists an element *y* such *x***y* = *e* and *y***x* = *e*.
It turns out that the set of all invertible elements, together with the operation *, forms a group. In that sense, every monoid contains a group.

However, not every monoid sits inside a group. For instance, it is perfectly possible to have a monoid in which exist two elements *a* and *b* and such that
*a***b* = *a* holds even though *b* is not the identity element. Such a monoid cannot be embedded in a group,
because in the group we could multiply both sides with the inverse of *a* and would get that *b* = *e*, which isn't true. A monoid (M,*) has the *cancellation property* (or is *cancellative*) if for all *a*, *b* and *c* in *M*, *a***b* = *a***c* always implies *b* = *c* and *b***a* = *c***a* always implies *b* = *c*. A commutative monoid with the cancellation property can always be embedded in a group. That's how the integers (a group with operation +) are constructed from the natural numbers (a commutative monoid with operation + 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.

It it possible to view categories as generalizations of monoids: the composition of morphism in a category shares all properties of a monoid operation except that not all pairs of morphisms may be composed. Many definitions and theorems about monoids may also be proved for categories.