A monoidal category is a category where morphisms can be composed in parallel.

# 1 Monoidal category

A monoidal category is a category $$\cC$$ equipped with

• monoidal product: a bifunctor $$\otimes: \cC \times \cC \to \cC$$
• monoidal unit: a $$\cC$$-object $$I$$
• associator: a natural isomorphism $$\alpha_{A, B, C}: (A \otimes B) \otimes C \to A \otimes (B \otimes C)$$
• left unitor: a natural isomorphism $$\lambda_A: I \otimes A \to A$$
• right unitor: a natural isomorphism $$\rho_A: A \otimes I \to A$$

such that the triangle and pentagon diagrams commute.

A monoidal category is strict if $$\alpha$$, $$\lambda$$, and $$\rho$$ are all identity morphisms.

## 1.1 Braided monoidal category

A braided monoidal category is a monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho)$$ equipped with

• braiding: a natural isomorphism $$\beta_{A, B}: A \otimes B \to B \otimes A$$

such that the hexagon diagram commutes.

## 1.2 Symmetric monoidal category

A symmetric monoidal category is a braided monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho, \beta)$$ whose braiding $$\beta$$ is symmetric: $$\beta_{B, A} \compL \beta_{A, B} = \id_{A \otimes B}$$.

# 2 Monoidal functor

For monoidal categories $$\cC$$ and $$\cD$$, a lax monoidal functor is a functor $$F: \cC \to \cD$$ equipped with

• a natural transformation $$\mu_{A, B}: FA \otimes_\cD FB \to F(A \otimes_\cC B)$$
• a $$\cD$$-morphism $$\eta: I_\cD \to FI_\cC$$

subject to

• associativity: $$(F\alpha_\cC) \compL \mu \compL (\mu \otimes \id) = \mu \compL (\id \otimes \mu) \compL \alpha_\cD$$
• identity: $$(F \lambda_\cC) \compL \mu \compL (\eta \otimes \id) = \lambda_\cD$$ and $$(F \rho_\cC) \compL \mu \compL (\id \otimes \eta) = \rho_\cD$$
-- applicative function application
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(<*)  :: Applicative f => f a -> f b -> f a
(*>) :: Applicative f => f a -> f b -> f b

## 2.1 Properties

• Lax: morphisms
• Strong: isomorphisms
• Strict: identity morphisms

## 2.2 Braided monoidal functor

A braided monoidal functor is a monoidal functor that is compatible with

• braiding: $$(F\beta_\cC) \compL \mu = \mu \compL \beta_\cD$$

## 2.3 Symmetric monoidal functor

A symmetric monoidal functor is a braided monoidal functor between symmetric monoidal categories.

# 3 Monoidal natural transformation

A monoidal natural transformation $$\alpha: F \to G$$ between two monoidal functors is a natural transformation that is compatible with

• monoidal product: $$\alpha \compL \mu_F = \mu_G \compL (\alpha \otimes \alpha)$$
• monoidal unit: $$\alpha \compL \eta_F = \eta_G$$

$$\cMon\cCat$$: 2-category of monoidal categories, monoidal functors, and monoidal natural transformations

# 4 Universal construction

## 4.1 Internal hom

Left internal hom:

$A \otimes (-) \adj [A, -]$

$\Hom(A \otimes C, B) \iso \Hom(C, [A, B])$

$A \otimes [A, B] \xto{\epsilon_A} B \toot [A, B] \xto{\id_{[A, B]}} [A, B]$

Right internal hom:

$(-) \otimes A \adj [A, -]$

$\Hom(C \otimes A, B) \iso \Hom(C, [A, B])$

$[A, B] \otimes A \xto{\epsilon_A} B \toot [A, B] \xto{\id_{[A, B]}} [A, B]$

A (left/right/bi) closed monoidal category has all (left/right/both side) internal homs.

Every right closed braided monoidal category becomes left closed in a canonical way, and vice versa.

## 4.2 Distributivity

Left distributive monoidal category:

$A \otimes \coprod_i B_i \iso \coprod_i (A \otimes B_i)$

Right distributive monoidal category:

$\coprod_i A_i \otimes B \iso \coprod_i (A_i \otimes B)$

Cocartesian and (left/right) closed monoidal category is (left/right) distributive.

# 5 Examples

## 5.1 Monoidal preorder

• $$(\N, \leq, +, 0)$$
• $$(\N, \mid, \times, 1)$$
• $$\cBool = (\set{\lfal, \ltru}, \lfal \lproves \ltru, \lcon, \ltru)$$
• $$\cCost = ([0, \infty], \geq, +, 0)$$

$$\exp(-x): ([0, \infty], \geq, +, 0) \iso ([0, 1], \leq, \times, 1): -\log(x)$$

## 5.2 Quantale

A (unital) quantale is a closed monoidal suplattice:

• preorder $$\leq$$ (category)
• join $$\join$$, bottom $$\bot$$ (suplattice, cocartesian category)
• monoidal product $$\otimes$$, monoidal unit $$I$$ (monoidal category)
• internal hom $$\ihom$$ (closed monoidal category)

By the adjoint functor theorem, a quantale is automatically a complete lattice (bicartesian category):

• meet $$\meet$$, top $$\top$$ (inflattice, cartesian category)

Because a quantale is cocartesian and (left/right) closed, it is (left/right) distributive:

$A \otimes \bigjoin_i B_i = \bigjoin_i (A \otimes B_i)$

$\bigjoin_i A_i \otimes B = \bigjoin_i (A_i \otimes B)$

• commutative $$A \otimes B \iso B \otimes A$$ (symmetric monoidal category)
• affineness $$I = \top$$(semicartesian category)

A quantale homomorphism is a cocontinuous monoidal functor.

# 6 Monoid object

A monoid object in a monoidal category $$(\cC, \otimes, I, \alpha, \lambda, \rho)$$ is an object $$M$$ equipped with two morphisms:

• product $$\mu: M \otimes M \to M$$
• unit $$\eta: I \to M$$

subject to

• associativity: $$\mu \compL (\mu \otimes \id) = \mu \compL (\id \otimes \mu) \compL \alpha$$
• identity: $$\mu \compL (\eta \otimes \id) = \lambda$$ and $$\mu \compL (\id \otimes \eta) = \rho$$
-- mappend
(<>)   :: Monoid m => m -> m -> m
-- unit
mempty :: Monoid a => a
-- associativity
x <> (y <> z) = (x <> y) <> z
-- left identity
mempty <> x = x
-- right identity
x <> mempty = x

## 6.1 Homomorphism

A monoid homomorphism between two monoid objects $$M$$ and $$N$$ is a morphism $$f: M \to N$$ that preserves

• monoidal product: $$f \compL \mu_M = \mu_N \compL (f \otimes f)$$
• monoidal unit: $$f \compL \eta_M = \eta_N$$
• a monoid object = a lax monoidal functor $$M: (\cOne, \otimes, *) \to (\cC, \otimes, I)$$
• a monoid homomorphism = a monoidal natural transformation $$f: M \nat N$$

## 6.2 Examples

• monoid: $$\cSet$$
• ring: $$\cAb$$

A commutative monoid object in a symmetric monoidal category is a monoid object subject to commutativity.

A group object $$G$$ in a cartesian category is a monoid object $$(G, \mu, \eta)$$ equipped with an inverse morphism $$\iota: G \to G$$ subject to invertibility.

A comonoid object in $$\cC$$ is a monoid object in $$\cC\op$$.

• coproduct $$\delta: M \to M \otimes M$$
• counit $$\epsilon: M \to I$$

A monad is a monoid in the category of endofunctors $$[\cC, \cC]$$.