definition example theorem

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

categorynotes
(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)
endofunctorsstrict, not symmetric; its monoids are monads (DaoFP §14.7)
cartesian closed (DaoFP §10.1)
/ product of -categoriescompact closed (Theorem 4.63)
, compact closed / hypergraph (Chapter 6)
Props, on strict SMCs with (Chapter 5)
Day ConvolutionDaoFP §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

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