# Monoidal category

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Monoidal_category
> Markdown URL: https://mediated.wiki/source/Monoidal_category.md
> Source: https://en.wikipedia.org/wiki/Monoidal_category
> Source revision: 1346793535
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{redirect-distinguish|Internal product|Inner product}}
{{Short description|Category admitting tensor products}}
{{More footnotes needed|date=January 2025}}

In mathematics, a '''monoidal category''' (or '''tensor category''') is a [category](/source/category_(mathematics)) <math>\mathbf C</math> equipped with a [bifunctor](/source/bifunctor)
:<math>\otimes : \mathbf{C} \times \mathbf{C} \to \mathbf{C}</math>
that is [associative](/source/associative) [up to](/source/up_to) a [natural isomorphism](/source/natural_isomorphism), and an [object](/source/Object_(category_theory)) ''I'' that is both a [left](/source/left_identity) and [right identity](/source/right_identity) for ⊗, again up to a natural isomorphism. The associated natural isomorphisms are subject to certain [coherence condition](/source/coherence_condition)s, which ensure that all the relevant [diagram](/source/diagram_(category_theory))s [commute](/source/commutative_diagram).

The ordinary [tensor product](/source/tensor_product) makes [vector space](/source/vector_space)s, [abelian group](/source/abelian_group)s, [''R''-modules](/source/module_(mathematics)), or [''R''-algebras](/source/algebra_(ring_theory)) into monoidal categories. Monoidal categories can be seen as a generalization of these and other examples. Every ([small](/source/small_category)) monoidal category may also be viewed as a "[categorification](/source/categorification)" of an underlying [monoid](/source/monoid), namely the monoid whose elements are the isomorphism classes of the category's objects and whose binary operation is given by the category's tensor product.

A rather different application, for which monoidal categories can be considered an abstraction, is a system of [data type](/source/data_type)s closed under a [type constructor](/source/type_constructor) that takes two types and builds an aggregate type. The types serve as the objects, and ⊗ is the aggregate constructor. The associativity up to isomorphism is then a way of expressing that different ways of aggregating the same data—such as <math>((a,b),c)</math> and <math>(a,(b,c))</math>—store the same information even though the aggregate values need not be the same. The aggregate type may be analogous to the operation of addition ([type sum](/source/sum_type)) or of multiplication ([type product](/source/product_type)). For type product, the identity object is the unit <math>()</math>, so there is only one inhabitant of the type, and that is why a product with it is always isomorphic to the other operand. For type sum, the identity object is the [void type](/source/void_type), which stores no information, and it is impossible to address an inhabitant. The concept of monoidal category does not presume that values of such aggregate types can be taken apart; on the contrary, it provides a framework that unifies classical and [quantum information](/source/quantum_information) theory.<ref>{{cite book |last1=Baez |first1=John |last2=Stay |first2=Mike |authorlink1=John C. Baez |chapter=Physics, topology, logic and computation: a Rosetta Stone |editor1-last=Coecke |editor1-first=Bob |title=New Structures for Physics |series=Lecture Notes in Physics |volume=813 |date=2011 |publisher=Springer |pages=95–172 |isbn=978-3-642-12821-9 |issn=0075-8450 |arxiv=0903.0340 |chapter-url=http://math.ucr.edu/home/baez/rosetta/rose3.pdf |doi=10.1007/978-3-642-12821-9_2 |citeseerx=10.1.1.296.1044 |s2cid=115169297 |zbl=1218.81008 }}</ref>

In [category theory](/source/category_theory), monoidal categories can be used to define the concept of a [monoid object](/source/monoid_object) and an associated action on the objects of the category. They are also used in the definition of an [enriched category](/source/enriched_category).

Monoidal categories have numerous applications outside category theory proper. They are used to define models for the multiplicative fragment of [intuitionistic](/source/intuitionistic_logic) [linear logic](/source/linear_logic). They also form the mathematical foundation for the [topological order](/source/topological_order) in [condensed matter physics](/source/condensed_matter_physics). [Braided monoidal categories](/source/Braided_monoidal_category) have applications in [quantum information](/source/quantum_information), [quantum field theory](/source/quantum_field_theory), and [string theory](/source/string_theory).

==Formal definition==

A  '''monoidal category''' is a category <math>\mathbf C</math> equipped with a monoidal structure. A monoidal structure consists of the following:
*a [bifunctor](/source/bifunctor) <math>\otimes \colon \mathbf C\times\mathbf C\to\mathbf C</math> called the ''monoidal product'',<ref name="seven-sketches">{{Cite arXiv |last1=Fong |first1=Brendan |last2=Spivak |first2=David I. |date=2018-10-12 |title=Seven Sketches in Compositionality: An Invitation to Applied Category Theory |class=math.CT |eprint=1803.05316 }}</ref> or ''[tensor product](/source/tensor_product)'',
*an object <math>I</math> called the ''monoidal unit'',<ref name="seven-sketches"/> ''unit object'', or ''identity object'',
*three [natural isomorphism](/source/natural_isomorphism)s subject to certain [coherence condition](/source/coherence_condition)s expressing the fact that the tensor operation:
**is associative: there is a natural (in each of three arguments <math>A</math>, <math>B</math>, <math>C</math>) isomorphism <math>\alpha</math>, called the ''associator'', with components <math>\alpha_{A,B,C} \colon A\otimes (B\otimes C) \cong (A\otimes B)\otimes C</math>,
**has <math>I</math> as left and right identity: there are two natural isomorphisms <math>\lambda</math> and <math>\rho</math>, respectively called the ''left unitor'' and ''right unitor'', with components <math>\lambda_A \colon I\otimes A\cong A</math> and <math>\rho_A \colon A\otimes I\cong A</math>.

Note that a good way to remember how <math> \lambda </math> and <math>\rho</math> act is by alliteration; ''Lambda'', <math>\lambda</math>, cancels the identity on the ''left'', while ''Rho'', <math>\rho</math>, cancels the identity on the ''right''.

The coherence conditions for these natural transformations are: 
* for all <math>A</math>, <math>B</math>, <math>C</math> and <math>D</math> in <math>\mathbf C</math>, the pentagon [diagram](/source/diagram_(category_theory))

::center|This is one of the main diagrams used to define a monoidal category; it is perhaps the most important one.
: [commutes](/source/Commutative_diagram);
* for all <math>A</math> and <math>B</math> in <math>\mathbf C</math>, the triangle diagram
center|This is one of the diagrams used in the definition of a monoidal cateogory. It takes care of the case for when there is an instance of an identity between two objects.
: commutes.

A '''strict monoidal category''' is one for which the natural isomorphisms ''α'', ''λ'' and ''ρ'' are identities. Every monoidal category is monoidally [equivalent](/source/equivalence_of_categories) to a strict monoidal category.

==Examples==

*Any category with finite [product](/source/product_(category_theory))s can be regarded as monoidal with the product as the monoidal product and the [terminal object](/source/terminal_object) as the unit. Such a category is sometimes called a [cartesian monoidal category](/source/cartesian_monoidal_category). For example:
**'''Set''', the [category of sets](/source/category_of_sets) with the Cartesian product, any particular one-element set serving as the unit.
**'''Cat''', the [category of small categories](/source/category_of_small_categories) with the [product category](/source/product_category), where the category with one object and only its identity map is the unit.
*Dually, any category with finite [coproduct](/source/coproduct)s is monoidal with the coproduct as the monoidal product and the [initial object](/source/initial_object) as the unit. Such a monoidal category is called '''cocartesian monoidal'''
*'''''R''-Mod''', the [category of modules](/source/category_of_modules) over a [commutative ring](/source/commutative_ring) ''R'', is a monoidal category with the [tensor product of modules](/source/tensor_product_of_modules) ⊗<sub>''R''</sub> serving as the monoidal product and the ring ''R'' (thought of as a module over itself) serving as the unit. As special cases one has: 
**'''''K''-Vect''', the [category of vector spaces](/source/category_of_vector_spaces) over a [field](/source/field_(mathematics)) ''K'', with the one-dimensional vector space ''K'' serving as the unit. '''''K''-FdVect''' (the [category of finite-dimensional vector spaces](/source/FinVect)) by extension fits under this.
**'''Ab''', the [category of abelian groups](/source/category_of_abelian_groups), with the group of [integer](/source/integer)s '''Z''' serving as the unit.
*For any commutative ring ''R'', the category of [''R''-algebras](/source/R-algebra) is monoidal with the [tensor product of algebras](/source/tensor_product_of_algebras) as the product and ''R'' as the unit. 
*The [category of pointed spaces](/source/category_of_pointed_spaces) (restricted to [compactly generated space](/source/compactly_generated_space)s for example) is monoidal with the [smash product](/source/smash_product) serving as the product and the pointed [0-sphere](/source/0-sphere) (a two-point discrete space) serving as the unit.
*The category of all [endofunctor](/source/endofunctor)s on a category '''C''' is a ''strict'' monoidal category with the composition of functors as the product and the identity functor as the unit.
*Just like for any category '''E''', the [full subcategory](/source/Subcategory) spanned by any given object is a monoid, it is the case that for any [2-category](/source/2-category) '''E''', and any object '''C''' in Ob('''E'''), the full 2-subcategory of '''E''' spanned by {'''C'''} is a monoidal category. In the case '''E''' = '''Cat''', we get the [endofunctor](/source/endofunctor)s example above. 
* [Bounded-above meet semilattices](/source/Semilattice) are strict [symmetric monoidal categories](/source/symmetric_monoidal_category): the product is meet and the identity is the top element.
* Any ordinary monoid <math>(M,\cdot,1)</math> is a small monoidal category with object set <math>M</math>, only identities for [morphism](/source/morphism)s, <math>\cdot</math> as tensor product and <math>1</math> as its identity object. Conversely, the set of isomorphism classes (if such a thing makes sense) of a monoidal category is a monoid w.r.t. the tensor product.
* Any commutative monoid <math>(M, \cdot, 1)</math> can be realized as a monoidal category with a single object. Recall that a category with a single object is the same thing as an ordinary monoid. By an [Eckmann-Hilton argument](/source/Eckmann-Hilton_argument), adding another monoidal product on <math>M</math> requires the product to be commutative.

== Properties and associated notions ==
It follows from the three defining coherence conditions that ''a large class'' of diagrams (i.e. diagrams whose morphisms are built using <math>\alpha</math>, <math>\lambda</math>, <math>\rho</math>, identities and tensor product) commute: this is [Mac Lane's](/source/Saunders_Mac_Lane) "[coherence theorem](/source/coherence_theorem)". It is sometimes inaccurately stated that ''all'' such diagrams commute.{{cn|date=January 2025}}

There is a general notion of [monoid object](/source/monoid_object) in a monoidal category, which generalizes the ordinary notion of [monoid](/source/monoid)  from [abstract algebra](/source/abstract_algebra). Ordinary monoids are precisely the monoid objects in the cartesian monoidal category '''Set'''. Further, any (small) strict monoidal category can be seen as a monoid object in the category of categories '''Cat''' (equipped with the monoidal structure induced by the cartesian product).

[Monoidal functor](/source/Monoidal_functor)s are the functors between monoidal categories that preserve the tensor product and [monoidal natural transformation](/source/monoidal_natural_transformation)s are the natural transformations, between those functors, which are "compatible" with the tensor product.

Every monoidal category can be seen as the category '''B'''(∗, ∗) of a [bicategory](/source/bicategory) '''B''' with only one object, denoted ∗.

The concept of a category '''C''' [enriched](/source/Enriched_category) in a monoidal category '''M''' replaces the notion of a set of morphisms between pairs of objects in '''C''' with the notion of an '''M'''-object of morphisms between every two objects in '''C'''.

=== Free strict monoidal category ===

For every category '''C''', the [free](/source/free_category) strict monoidal category Σ('''C''') can be constructed as follows:
* its objects are lists (finite sequences) ''A''<sub>1</sub>, ..., ''A''<sub>''n''</sub> of objects of '''C''';
* there are arrows between two objects ''A''<sub>1</sub>, ..., ''A''<sub>''m''</sub> and ''B''<sub>1</sub>, ..., ''B''<sub>''n''</sub> only if ''m'' = ''n'', and then the arrows are lists (finite sequences) of arrows ''f''<sub>1</sub>: ''A''<sub>1</sub> → ''B''<sub>1</sub>, ..., ''f''<sub>''n''</sub>: ''A''<sub>''n''</sub> → ''B''<sub>''n''</sub> of '''C''';
* the tensor product of two objects  ''A''<sub>1</sub>, ..., ''A''<sub>''n''</sub> and ''B''<sub>1</sub>, ..., ''B''<sub>''m''</sub> is the concatenation ''A''<sub>1</sub>, ..., ''A''<sub>''n''</sub>, ''B''<sub>1</sub>, ..., ''B''<sub>''m''</sub> of the two lists, and, similarly, the tensor product of two morphisms is given by the concatenation of lists. The identity object is the empty list.
This operation Σ mapping category '''C''' to Σ('''C''') can be extended to a strict 2-[monad](/source/Monad_(category_theory)) on '''Cat'''.

== Specializations ==
* If, in a monoidal category, <math>A\otimes B</math> and <math>B\otimes A</math> are naturally isomorphic in a manner compatible with the coherence conditions, we speak of a [braided monoidal category](/source/braided_monoidal_category). If, moreover, this natural isomorphism is its own inverse, we have a [symmetric monoidal category](/source/symmetric_monoidal_category).
* A [closed monoidal category](/source/closed_monoidal_category) is a monoidal category where the functor <math>X \mapsto X \otimes A</math> has a [right adjoint](/source/Adjoint_functors), which is called the "internal Hom-functor" <math>X \mapsto \mathrm{Hom}_{\mathbf C}(A , X)</math>.  Examples include [cartesian closed categories](/source/cartesian_closed_category) such as '''Set''', the category of sets, and [compact closed categories](/source/compact_closed_category) such as '''FdVect''', the category of finite-dimensional vector spaces.
* [Autonomous categories](/source/Autonomous_category) (or [compact closed categories](/source/Compact_closed_category) or [rigid categories](/source/Rigid_category)) are monoidal categories in which duals with nice properties exist; they abstract the idea of '''FdVect'''.
* [Dagger symmetric monoidal categories](/source/Dagger_symmetric_monoidal_category), equipped with an extra dagger functor, abstracting the idea of '''FdHilb''', finite-dimensional Hilbert spaces.  These include the [dagger compact categories](/source/Dagger_compact_category).
* [Tannakian categories](/source/Tannakian_category) are monoidal categories enriched over a field, which are very similar to representation categories of [linear algebraic group](/source/linear_algebraic_group)s.

===Preordered monoids===
A [preorder](/source/preorder)ed monoid is a monoidal category in which for every two objects <math>c, c'\in\mathrm{Ob}(\mathbf{C})</math>, there exists ''at most one'' morphism <math>c\to c'</math> in '''C'''. In the context of preorders, a morphism <math>c\to c'</math> is sometimes notated <math>c \leq c'</math>. The [reflexivity](/source/Reflexive_relation) and [transitivity](/source/transitive_relation) properties of an order, defined in the traditional sense, are incorporated into the categorical structure by the identity morphism and the composition formula in '''C''', respectively. If <math>c\leq c'</math> and <math>c'\leq c</math>, then the objects <math>c, c'</math> are isomorphic which is notated <math>c\cong c'</math>.

Introducing a monoidal structure to the preorder '''C''' involves constructing
* an object <math>I\in\mathbf{C}</math>, called the ''monoidal unit'', and  
* a [functor](/source/functor) <math>\mathbf{C}\times\mathbf{C}\to\mathbf{C}</math>, denoted by "<math>\;\cdot\;</math>", called the ''monoidal multiplication''.
<math>I</math> and <math>\cdot</math> must be unital and associative, up to isomorphism, meaning: 
: <math>(c_1\cdot c_2)\cdot c_3 \cong c_1\cdot (c_2\cdot c_3)</math> and <math>I\cdot c \cong c\cong c\cdot I</math>.
As · is a functor, 
:if <math>c_1\to c_1'</math> and <math>c_2\to c_2'</math> then <math>(c_1\cdot c_2)\to (c_1'\cdot c_2')</math>.
The other coherence conditions of monoidal categories are fulfilled through the preorder structure as every diagram commutes in a preorder.

The [natural numbers](/source/natural_numbers) are an example of a monoidal preorder: having both a [monoid structure](/source/Monoid) (using + and 0) and a [preorder structure](/source/Preorder) (using ≤) forms a monoidal preorder as <math>m\leq n</math> and <math>m'\leq n'</math> implies <math>m+m'\leq n+n'</math>. 

The free monoid on some generating set produces a monoidal preorder, producing the [semi-Thue system](/source/semi-Thue_system).

== See also ==
{{Portal|Mathematics}}
* [Skeleton (category theory)](/source/Skeleton_(category_theory))
* [Spherical category](/source/Spherical_category)
* [Monoidal category action](/source/Monoidal_category_action)

==References==
{{Reflist}}
{{refbegin}}
*{{cite journal |author1-link=André Joyal |author2-link=Ross Street |last1=Joyal |first1=André |last2=Street |first2=Ross |title=Braided Tensor Categories |journal=[Advances in Mathematics](/source/Advances_in_Mathematics) |volume=102 |issue=1 |pages=20–78 |date=1993 |doi=10.1006/aima.1993.1055 |doi-access=free |url=https://core.ac.uk/download/pdf/82681130.pdf}}
*{{cite web |last1=Joyal |first1=André |last2=Street |first2=Ross |title=Planar diagrams and tensor algebra |date=1988 |url=http://maths.mq.edu.au/~street/PlanarDiags.pdf}}
*{{cite journal |first=G. Max |last=Kelly |title=On MacLane's Conditions for Coherence of Natural Associativities, Commutativities, etc |journal=Journal of Algebra |volume=1 |issue=4 |pages=397–402 |date=1964 |doi=10.1016/0021-8693(64)90018-3 |url=|doi-access=free }}
*{{cite book |author-link=Max Kelly |first=G.M. |last=Kelly |title=Basic Concepts of Enriched Category Theory |publisher=Cambridge University Press |series=London Mathematical Society Lecture Note Series |volume=64  |date=1982 |isbn=978-0-521-28702-9 |url=http://www.tac.mta.ca/tac/reprints/articles/10/tr10.pdf |oclc=1015056596  |zbl=0478.18005}}
*{{cite journal |first=Saunders |last=Mac Lane |title=Natural Associativity and Commutativity |journal=Rice University Studies |volume=49 |issue=4 |pages=28–46 |date=1963 |hdl=1911/62865 |citeseerx=10.1.1.953.2731 }}
*{{cite book |author-link=Saunders Mac Lane |first=Saunders |last=Mac Lane |title=Categories for the Working Mathematician |title-link=Categories for the Working Mathematician |publisher=Springer |edition=2nd |date=1998 |series=Graduate Texts in Mathematics |volume=5 |isbn=0-387-98403-8 |zbl=0906.18001 }}
* {{cite book 
|last = Perrone |first = Paolo |title = Starting Category Theory|chapter = Chapter 6. Monoidal categories|date = 2024 |publisher = World Scientific|doi = 10.1142/9789811286018_0005 |isbn =  978-981-12-8600-1|chapter-url = https://www.worldscientific.com/doi/10.1142/9789811286018_0005}}
* {{cite book |doi=10.1007/978-3-642-12821-9_4 |chapter=A Survey of Graphical Languages for Monoidal Categories |title=New Structures for Physics |series=Lecture Notes in Physics |date=2010 |last1=Selinger |first1=P. |volume=813 |pages=289–355 |publisher=Springer |location=Berlin, Heidelberg |isbn=978-3-642-12820-2|	arxiv=0908.3347  }}
*{{nlab|id=monoidal+category|title=Monoidal category}}
{{refend}}

==External links==
*{{Commonscatinline}}

{{Category theory}}

Category:Monoidal categories

---
Adapted from the Wikipedia article [Monoidal category](https://en.wikipedia.org/wiki/Monoidal_category) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Monoidal_category?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
