A symmetric monoidal structure on a Category consists of
(i) an object , the monoidal unit, and (ii) a Functor , the monoidal product (a Bifunctor: for morphisms too),
together with well-behaved natural isomorphisms
(a) left unitor , (b) right unitor , (c) associator , (d) swap (braiding, symmetry) with ,
satisfying coherence laws (the pentagon and triangle equations, hidden under “well behaved” in 7 Sketches’ Rough Definition 4.45). Without (d) one has a monoidal category; a symmetric monoidal category (SMC) has all four. If (a)–(c) are equalities the structure is strict; by Mac Lane’s coherence theorem every monoidal category is equivalent to a strict one (Remark 4.46–4.47: “a symmetric monoidal category is a category equipped with an equivalence to a symmetric strict monoidal category”), so one may pretend strictness — as wiring diagrams implicitly do.
Sources: 7 Sketches §4.4.3 (Definition 4.45, Remarks 4.46–4.47, Examples 4.49, Exercises 4.48, 4.50), §4.4.4, §5–6; DaoFP §4.4 (“Symmetric Monoidal Category” from sums), §5.3 (“Monoidal Category”, “Monoids”), §14.9 (monoidal functors), §15.1 (string diagrams), §17.7 (Day Convolution), §19.1, §20.1 (enrichment); Kittenlab (implicitly: with ).
A Symmetric Monoidal Preorder is exactly a symmetric monoidal category with at most one morphism between any two objects (7S Exercise 4.48) — monoidal categories are the categorification of monoidal preorders: equations become isomorphisms (“bookkeeping”) which in turn must satisfy new equations.
Examples
| category | notes | ||
|---|---|---|---|
| (cartesian product; pointwise) | Example 4.49; ; a Cartesian Category | ||
| , | / | cocartesian (DaoFP §4.4: , commutativity, associativity, functoriality); the Prop | |
| any category with finite products / coproducts | / | / | DaoFP Chapters 4–5; “tuple arithmetic” |
| not cartesian: no diagonal — no copying (quantum) | |||
| endofunctors | strict, not symmetric; its monoids are monads (DaoFP §14.7) | ||
| cartesian closed (DaoFP §10.1) | |||
| / | product of -categories | compact closed (Theorem 4.63) | |
| , | compact closed / hypergraph (Chapter 6) | ||
| Props, | on | strict SMCs with (Chapter 5) | |
| Day Convolution | DaoFP §17.7 |
Wiring diagrams and interpretation
An SMC is “an algebraic structure with labelled boxes having multiple typed inputs and outputs” (§4.4.2); series composition is , parallel composition is , crossing wires is , and coherence lets diagrams be read unambiguously (Wiring Diagram, String Diagram). 7S Exercise 4.50 evaluates a diagram of functions in as a single function . DaoFP: “if we think of morphisms as actions, their tensor product corresponds to performing two actions in parallel”, and “a tensor product is the lowest common denominator of product and sum: it has an introduction rule requiring both objects but no elimination rule — once created it forgets how it was created; unlike a cartesian product it has no projections”. Copying and discarding are extra structure (cartesian = every object a cocommutative comonoid).
Structures on / in monoidal categories
- Monoids in a monoidal category (, , DaoFP §5.3, 7 Sketches §5.4.2), comonoids, Frobenius monoids (§6.3.1), bialgebras.
- Monoidal functors (lax/strong/strict; Definition 6.68, DaoFP §14.9), monoidal natural transformations.
- Enrichment in an SMC (Rough Definition 4.51): hom-objects , identity , composition ; -categories are categories (7S Exercise 4.52), -categories have identity elements (7S Exercise 4.54).
- Closed structures: Monoidal Closed Category ( with ), Compact Closed Category (duals), Cartesian Closed Category; Hypergraph Category; traced categories.
- Operads arise from SMCs by taking multi-input morphisms (§6.5.2).
Docs: FinSets · Theories & presentations · Vignette: SMCs
# Catlab: the GAT of symmetric monoidal categories and free SMC expressions
using Catlab
@present P(FreeSymmetricMonoidalCategory) begin
(A, B, C)::Ob
f::Hom(A, B); g::Hom(B ⊗ C, C)
end
f, g = P[:f], P[:g]
(f ⊗ id(P[:C])) ⋅ g # series and parallel composition: A ⊗ C → C
braid(P[:A], P[:B]) # the swap σ_{A,B}
munit(FreeSymmetricMonoidalCategory.Ob) # I
# FinSet with + is a symmetric monoidal category (a prop):
f = FinFunction([2, 1], 2); g = FinFunction([1, 1, 3], 3)
oplus(f, g) # f ⊕ g : 5 → 5
# and with ×:
otimes(f, g) # f × g : 6 → 6#check CategoryTheory.MonoidalCategory -- class: tensorObj, whiskerLeft/Right, tensorUnit, associator, unitors, pentagon, triangle
#check CategoryTheory.SymmetricCategory -- braiding with symmetry
#check CategoryTheory.BraidedCategory
example : CategoryTheory.MonoidalCategory (Type u) := inferInstance -- (Type, ×, PUnit)
#check CategoryTheory.MonoidalCategory.associator
#check CategoryTheory.MonoidalCategory.pentagon-- DaoFP §5.3: Hask with (,) and () is symmetric monoidal (up to isomorphism)
assoc :: ((a, b), c) -> (a, (b, c))
assoc ((a, b), c) = (a, (b, c))
lunit :: ((), a) -> a
lunit ((), a) = a
runit :: (a, ()) -> a
runit (a, ()) = a
swap :: (a, b) -> (b, a)
swap (a, b) = (b, a)
-- functoriality of the tensor: f ⊗ g
tensor :: (a -> a') -> (b -> b') -> (a, b) -> (a', b')
tensor f g (a, b) = (f a, g b)
-- Either / Void give a second symmetric monoidal structure