nLab
monoid

Definition

Classical

Classically, a monoid is a set M equipped with a binary operation μ:M×MM and special element 1M such that 1 and xy=μ(x,y) satisfy the usual axioms of an associative product with unit, namely the associative law:

(xy)z=x(yz)(x \cdot y) \cdot z = x \cdot (y \cdot z)

and the left and right unit laws:

1x=x=x1.1 \cdot x = x = x \cdot 1 .

In a monoidal category

More generally, we can define a monoid (sometimes called monoid object) in any monoidal category (C,,I). Namely, a monoid in C is an object M equipped with a multiplication μ:MMM and a unit η:IM satisfying the associative law:

A pic

and the left and right unit laws:

A pic

Here α is the associator? in C, while λ and ρ are the left and right unitors?.

Classical monoids are of course just monoids in (Set,×,1).

In string diagrams

The data of a monoid may be written in string diagrams as:

String diagrams of the monoid data (for "Monoid")

Thanks to the distinctive shapes, one can usually omit the labels:

String diagrams of the monoid data, unlabeled (for "Monoid")

The axioms μ(ηM)=1 M=μ(Mη) and μ(Mμ)=μ(μM) then appear as:

String diagrams of the monoid axioms (for "Monoid")

As a one-object category

Equivalently, and more efficiently, we may say that a (classical) monoid is the hom-set of a category with a single object, equipped with the structure of its unit element and composition.

More tersely, one may say that a monoid is a category with a single object, or more precisely (to get the proper morphisms and 2-morphisms) a pointed category with a single object. But taking this too literally may create conflicts in notation. To avoid this, for a given monoid M, we write BM for the corresponding category with single object and with M as its hom-set: the delooping of M, so that M=Hom BM(,). This realizes every monoid as a monoid of endomorphisms.

Similarly, a monoid in (C,,I) may be defined as the hom-object of a C-enriched category with a single object, equipped with its composition and identity-assigning morphisms; and so on, as in the classical (i.e. Set-enriched) case.

For more on this see also group.

Examples

  • A monoid in which every element has an inverse is a group. For that reason monoids are often known (especially outside category theory) as semi-groups. (But this term is often extended to monoids without identities, that is to sets equipped with any associative operation.)
  • A monoid object in Ab (with the usual tensor product of -modules as the tensor product) is a ring. A monoid object in the category of vector spaces over a field k (with the usual tensor product of vector spaces) is an algebra over k.
  • For a commutative ring R, a monoid object in the category of R-modules (with its usual tensor product) is an R-algebra.
  • A monoid object in Top (with cartesian product as the tensor product) is a topological monoid.
  • A monoid object in the category of monoids (with cartesian product as the tensor product) is a commutative monoid. This is a version of the Eckmann-Hilton argument.
  • A monoid object in the category of complete join-semilattices (with its tensor product that represents maps preserving joins in each variable separately) is a unital quantale.
  • Given any monoidal category C, a monoid in the monoidal category C op is called a comonoid in C.
  • For any category C, the endofunctor category C C has a monoidal structure induced by composition of endofunctors, and a monoid object in C C is a monad on C.

These are examples of monoids internal to monoidal categories. More generally, given any bicategory B and a chosen object a, the hom-category B(a,a) has the structure of a monoidal category. So, the concept of monoid makes sense in any bicategory B: we define a monoid in B to be a monoid in B(a,a) for some object aB. This often called a monad in B. The reason is that a monad in Cat is the same as monad on a category.

A monoid in a bicategory B may also be described as the hom-object of a B-enriched category with a single object.

Remarks on notation

(originally from category algebra)

It can be important to distinguish between a k-tuply monoidal structure and the corresponding k-tuply degenerate category, even though there is a map identifying them. The issue appears here for instance when discussing the universal G-bundle in its groupoid incarnation. This is

GEGBGG \to \mathbf{E}G \to \mathbf{B}G

(where EG=G//G is the action groupoid of G acting on itself). On the left we crucially have G as a monoidal 0-category, on the right as a once-degenerate 1-category. Without this notation we cannot even write down the universal G-bundle!

Or take the important difference between group representations and group 2-algebras, the former being functors BGVect, the latter functors GVect. Both these are very important.

Or take an abelian group A and a codomain like 2Vect. Then there are 3 different things we can sensibly consider, namely 2-functors

A2VectA \to 2Vect
BA2Vect\mathbf{B}A \to 2Vect

and

B 2A2Vect.\mathbf{B}^2A \to 2Vect \,.

All of these concepts are different, and useful. The first one is an object in the group 3-algebra of A. The second is a pseudo-representation of the group A. The third is a representations of the 2-group BA. We have notation to distinguish this, and we should use it.

Finally, writing BG for the 1-object n-groupoid version of an n-monoid G makes notation behave nicely with respect to nerves, because then realization bars simply commute with the Bs in the game: BG=BG.

This behavior under nerves shows also that, generally, writing BG gives the right intuition for what an expression means. For instance, what’s the “geometric” reason that a group representation is an arrow ρ:BGVect? It’s because this is, literally, equivalently thought of as the corresponding classifying map of the vector bundle on BG which is ρ-associated to the universal G-bundle:

the ρ-associated vector bundle to the universal G-bundle is, in its groupoid incarnations,

V V//G BG,\array{ V \\ \downarrow \\ V//G \\ \downarrow \\ \mathbf{B}G } \,,

where V is the vector space that ρ is representing on, and this is classified by the representation ρ:BGVect in that this is the pullback of the universal Vect-bundle

V//G Vect * BG ρ Vect,\array{ V//G &\to& Vect_* \\ \downarrow && \downarrow \\ \mathbf{B}G &\stackrel{\rho}{\to}& Vect } \,,

In summary, it is important to make people understand that groups can be identified with one-object groupoids. But next it is important to make clear that not everything that can be identified should be, for instance concerning the crucial difference between the category in which G lives and the 2-category in which BG lives.