Category theory formalizes many mathematical structures, especially the mapping between “objects”. A modular tensor category is a category with some extra structures and can provide the mathematical foundation of some physical concepts, especially the topological orders.
In the first part of this note, we will introduce some basic ideas of category theory. For people with programming backgrounds (or just interested in it), we will use Haskell as an example. Then some more structures will be added into the “bare” category, such as tensor product, braiding and dual. These will be helpful when we deal with modular tensor category in the next part, although some physicists may complain that they are too tedious.
Basic knowledge of categories
Category
A category \cat{C} consists of
- Objects: x\in\cat{C}
- Morphisms: f\colon x\to y or more precisely f\in\Hom_\cat{C}(x,y). We call \Hom_\cat{C}(x,y) the hom-set and x and y domain and codomain respectively
- If we have two morphisms f\colon x\to y and g\colon y\to z, then there exists the composition of morphisms g\circ f\colon x\to z
and the following axioms should hold:
Associativity: for f\colon x\to y, g\colon y\to z and h\colon z\to w, their composition should satisfy
(h\circ g)\circ f = h\circ(g\circ f)Identity: \forall x\in\cat{C}, there exists an identity morphism \id_x\colon x\to x such that
f\circ \id_x = \id_y\circ f = f, \quad \forall f\colon x\to y
In a pictorial representation, the morphism in a category can be visualized as a “black box”:
For identity morphism \id_x, the box can be omitted:
For the composition of two morphisms f and g, we use two consecutive boxes:
In our convention, these diagrams should be read from top to bottom, as the arrows indicate. The direction will be significant when we meet the dual of objects (see below).
There are some special cases of morphisms. Let f\colon x\to y, then
- f is a monomorphism if for all morphisms g_1, g_2\colon w\to x, f\circ g_1=f\circ g_2\implies g_1=g_2 (left cancellable)
- f is an epimorphism if for all morphisms h_1, h_2\colon y\to z, h_1\circ f=h_2\circ f\implies h_1=h_2 (right cancellable)
- f is an isomorphism if there exists f^{-1}\colon y\to x such that f^{-1}\circ f=\id_x and f\circ f^{-1}=\id_y. Here, f^{-1} is called the inverse of f
- If the domain and codomain of f coincide, i.e. f\in\Hom_\cat{C}(x,x)\coloneqq\End_{\cat{C}}(x), then f is an endomorphism
- If f is both an endomorphism and an isomorphism, then it’s called an automorphism
To better understand the abstract idea of category, objects and morphisms, we give some concrete examples:
Categories | Objects | Morphisms |
---|---|---|
Set | sets | functions |
Grp | groups | group homomorphisms |
Top | topological spaces | continuous maps |
Vec | vector spaces | linear maps |
Hask | Haskell types | pure functions |
Functor
A functor F\colon \cat{C}\to\cat{D} is a map between two categories such that
- Object x\in\cat{C} maps to object F(x)\in\cat{D}
- Morphism f\in\Hom_\cat{C}(x,y) maps to F_f\in\Hom_\cat{D}(F(x),F(y))
where F preserves
Identity:
F_{\id_x} = \id_{F(x)} \in \Hom_\cat{D}(F(x),F(x)), \quad \forall x\in\cat{C}Composition:
F_{g\circ f} = F_g\circ F_f \in \Hom_\cat{D}(F(x),F(z)), \quad \forall f\in\Hom_\cat{C}(x,y), \, g\in\Hom_\cat{C}(y,z)
In Haskell, a functor is defined as a type class:
class Functor f where
fmap :: (a -> b) -> f a -> f b
The two laws that a functor should obey are then:
fmap id == id -- Preserve identities
fmap (f . g) == fmap f . fmap g -- Preserve composition
Let’s see an example. First, we have a function that converts an integer to a string:
show :: Int -> String
Then we have the List
(or []
) functor, which maps the Hask category to Lst (a subcategory of Hask that contains all the list types):
instance Functor [] where
fmap = ...
Therefore fmap show
is a function (i.e. morphism) in Lst that converts a list of integers to a list of strings.
Natural transformation
Given two functors F\colon \cat{C}\to\cat{D} and G\colon \cat{C}\to\cat{D}, a natural transformation (aka. functorial morphism) \tau\colon F\Rightarrow G is defined with its component \tau_x (a morphism in \cat{D}):
such that
In a pictorial representation, that is to say the following diagram is commutative, i.e. the two paths from F(x) to G(y) are equivalent:
or more complicated:
Natural transformation itself is usually denoted as a double arrow:
A natural transformation \tau with every component \tau_x invertible is called a natural isomorphism. In such case, we can automatically define the natural transformation \tau^{-1} with components \tau^{-1}_x\colon G(x)\to F(x) such that
In Haskell, natural transformation is given by parametric polymorphic functions, such as
natTrans :: forall a . F a -> G a
where a
is the type parameter, while F
and G
are two functors (i.e. type classes which are instances of Functor
).
To give a concrete example, we will implement a “safe” version of head
. In Haskell Prelude, head
is a function that returns the first item of a list:
head :: [a] -> a
head (x:xs) = x
So clearly head [1,2,3]
gives 1
. But it will throw an exception when applied on an empty list:
> head []
*** Exception: Prelude.head: empty list
We can use Maybe
(similar to std::option<T>
in C++ and Option<T>
in Rust) as a wrapper to avoid such exception:
safeHead :: [a] -> Maybe a
safeHead [] = Nothing
safeHead (x:xs) = Just x
Here safeHead
is a polymorphic function, or natural transformation in category theory’s language, that maps from []
functor to Maybe
functor. Note that, however, the safeHead
function may break the free theorem for fmap
.
Tensor category
Roughly speaking, a tensor category (or monoidal category) is a category with a “tensor product”. A basic example is the vector space (or the category Vec), where the tensor product is defined as the combination of two vector spaces, as well as the linear maps over them.
The formal definition requires some other concepts:
For categories \cat{C} and \cat{C}^\prime, their Cartesian product \cat{C}\times\cat{C}^\prime is also a category where
- Object is a pair (x,x^\prime)
- Morphism is (f,f^\prime)\colon(x,x^\prime)\to(y,y^\prime)
- Identity is \id_{(x,x^\prime)}\coloneqq(\id_x,\id_{x^\prime})\colon(x,x^\prime)\to(x,x^\prime)
- Composition is (g,g^\prime)\circ(f,f^\prime)\coloneqq(g\circ f,g^\prime\circ f^\prime)
A bifunctor F\colon\cat{C}\times\cat{C}^\prime\to\cat{D} is a map such that
- Object (x,x^\prime)\in\cat{C}\times\cat{C}^\prime maps to object F(x,x^\prime)\in\cat{D}
- Morphism (f,f^\prime)\in\Hom_{\cat{C}\times\cat{C}^\prime}\bigl((x,x^\prime),(y,y^\prime)\bigr) maps to F_{(f,f^\prime)}\in\Hom_\cat{D}\bigl(F(x,x^\prime),F(y,y^\prime)\bigr)
- The identity and composition are preserved just as in a normal functor
Now we can define the tensor category \cat{C} with
- Tensor product, which is a bifunctor \otimes\colon\cat{C}\times\cat{C}\to\cat{C}
- A unit object \1\in\cat{C}
- Associator \alpha, which is a natural isomorphism:\alpha_{x,y,z} \colon (x\otimes y)\otimes z \overset\sim\to x\otimes(y\otimes z), \quad \forall x,y,z \in \cat{C}
- Left unitor \lambda and right unitor \rho, which are natural isomorphisms with\lambda_x \colon \1\otimes x \overset\sim\to x, \quad \rho_x \colon x\otimes\1 \overset\sim\to x, \quad \forall x \in \cat{C}
such that the following two diagrams commute:
Triangle equation:
Pentagon equation:
In the above definition, we use “\overset\sim\to” to denote the natural isomorphism. If “\overset\sim\to” becomes “=”, then we call the tensor category strict. In such case, \alpha_x, \lambda_x and \rho_x become identity isomorphisms.
MacLane gives the following important result:
Coherence theorem:
Every tensor category is (tensor) equivalent to a strict one.
The name tensor category is very intuitive, as we have just equipped the category with a tensor product. The alternate name monoidal category is not so straight forward, but it indicates a remarkable fact: a strict monoidal category is indeed a monoid (i.e. a “group” without invertibility):
- Tensor product \otimes corresponds to the multiplication in the monoid with the associativity axiom
- Unit object \1 corresponds to the identity element in the monoid
Braided tensor category
In physics, we use “exchange” to describe the process of moving two systems around each other, such as the exchange of two fermions/bosons. In category theory, we call it “braiding”.
A braided tensor category (or braided tensor category, BTC) \cat{C} is a tensor category with a natural isomorphism
such that the following diagrams (hexagon equations) commute:
In the graphical notation, \sigma and its inverse can be visualized as
Then it can be easily shown that \sigma_{x,y}^{-1}\circ\sigma_{x,y}=\sigma_{y,x}\circ\sigma_{y,x}^{-1}=\id_{x\otimes y}, as they are topologically equivalent:
The hexagon equations become apparent as well:
Furthermore, we can find the following important identities via the graphical calculus:
\sigma_{x^\prime,y^\prime}\circ(f\otimes g) = (g\otimes f)\circ\sigma_{x,y}, \quad \forall f\in\Hom_\cat{C}(x,x^\prime), \, g\in\Hom_\cat{C}(y,y^\prime)
(\sigma_{y,z}\otimes\id_x) \circ (\id_y\otimes\sigma_{x,z}) \circ (\sigma_{x,y}\otimes\id_z) = (\id_z\otimes\sigma_{x,y}) \circ (\sigma_{x,z}\otimes\id_y) \circ (\id_x\otimes\sigma_{y,z}), which is called the Yang–Baxter equation
A braided tensor category is called symmetric, if \sigma_{y,x}\circ\sigma_{x,y}=\id_{x\otimes y}, or equivalently \sigma_{x,y}=\sigma_{y,x}^{-1}, just as the following diagram:
In braided tensor categories, a compatible functor requires some more constraints. Let \cat{C}_1 and \cat{C}_2 be braided tensor categories, then a tensor functor from \cat{C}_1 to \cat{C}_2 is defined as a pair (F,\mu) where
- F\colon\cat{C}_1\to\cat{C}_2 is a functor
- \mu_{x,y}\colon F(x\otimes y)\overset\sim\to F(x)\otimes F(y) is a natural isomorphism in \cat{C}_2, with x,y\in\cat{C}_1
such that the following conditions are satisfied:
For associativity isomorphisms
\begin{aligned} \alpha_{1;\,x,y,z} &\colon (x\otimes y)\otimes z \overset\sim\to x\otimes(y\otimes z) \\ \alpha_{2;\,F(x),F(y),F(z)} &\colon [F(x)\otimes F(y)]\otimes F(z) \overset\sim\to F(x)\otimes[F(y)\otimes F(z)], \quad \forall x,y,z \in \cat{C}_1 \end{aligned}in \cat{C}_1 and \cat{C}_2 respectively, we have
F_{\alpha_{1;\,x,y,z}} = \alpha_{2;\,F(x),F(y),F(z)} \qtext{or simply} F_{\alpha_1}=\alpha_2, \quad \forall x,y,z \in \cat{C}_1by using natural isomorphism \mu;
Similar to associativity, but for braiding isomorphisms
\begin{aligned} \sigma_{1;\,x,y} &\colon x\otimes y \overset\sim\to y\otimes x \\ \sigma_{2;\,F(x),F(y)} &\colon F(x)\otimes F(y) \overset\sim\to F(y)\otimes F(x), \quad \forall x,y \in \cat{C}_1 \end{aligned}in \cat{C}_1 and \cat{C}_2 respectively, we have
F_{\sigma_{1;\,x,y}} = \sigma_{2;\,F(x),F(y)} \qtext{or simply} F_{\sigma_1}=\sigma_2, \quad \forall x,y \in \cat{C}_1still by using \mu.
For a tensor category \cat{C} (not necessarily braided), its Drinfeld center \cat{Z}(\cat{C}) is defined by another tensor category whose
Object is a pair (x,\phi^{(x)}), where x\in\cat{C} is an object and \phi^{(x)} is a natural isomorphism:
\phi^{(x)}_y \colon x\otimes y \overset\sim\to y\otimes xsuch that
\phi^{(x)}_{y\otimes z} = (\id_y\otimes\phi^{(x)}_z) \circ (\phi^{(x)}_y\otimes\id_x), \quad \forall y,z\in\cat{C}Morphism f\colon(x,\phi^{(x)})\to(y,\phi^{(y)}) is a morphism f\colon x\to y in \cat{C} such that
(\id_z\otimes f)\circ\phi^{(x)}_z = \phi^{(y)}_z\circ(f\otimes\id_z), \quad \forall z\in\cat{C}Tensor product is
(x,\phi^{(x)})\otimes(y,\phi^{(y)}) = \left( x\otimes y, \, (\phi^{(x)}\otimes\id_y)\otimes(\id_x\otimes\phi^{(y)}) \right)
The Drinfeld center \cat{Z}(\cat{C}) is naturally a braided tensor category, with braiding isomorphism given by
Ribbon category
Dual
Let’s introduce the concept of dual in a tensor category first. This is a generalization of the dual vector space: for a vector space V over field F, its dual space V^\vee is defined as the set of all linear maps \phi\colon V\to F.
The right dual of an object x\in\cat{C} is an object x^\vee with two morphisms:
such that the composition (\id_x\otimes e_x)\circ(i_x\otimes\id_x)=\id_x:
and (e_x\otimes\id_{x^\vee})\circ(\id_{x^\vee}\otimes i_x)=\id_{x^\vee}:
The above conditions are called rigidity axioms. In some sense, e_x and i_x are called annihilation and creation morphisms, as they can annihilate/create objects to/from “vacuum”, just as the \hat{a} and \hat{a}^\dagger operators in quantum mechanics.
Similarly, we can define the left dual with the following morphisms:
and similar rigidity axioms. By definition, if x is the right dual of y, then y is the left dual of x, and vice versa. For a tensor category \cat{C}, if every object x\in\cat{C} has left/right dual, then \cat{C} is called left/right rigid. If both types of duals exist, then it’s called rigid (or autonomous).
In the graphical notation, the dual of an object is represented by simply reversing the arrow. In addition, the unit object \1, or “vacuum”, can be neglected. So e_x and i_x correspond to the following diagrams:
The rigidity axioms (for right dual) then become
It can be shown that \Hom_\cat{C}(x,y) is isomorphic to \Hom_\cat{C}(y^\vee,x^\vee), therefore for every morphism f\in\Hom_\cat{C}(x,y), we can define the dual as its image f^\vee\in\Hom_\cat{C}(y^\vee,x^\vee):
or in the graphical notation:
If combining the dual with tensor and braiding structures, we can then find some important identities:
(x\otimes y)^\vee = y^\vee\otimes x^\vee
(e_y\otimes\id_x)\circ\sigma_{x,y^\vee\otimes y} = \sigma_{x,\1}\circ(\id_x\otimes e_y)
e_{x\otimes y} = (e_x\otimes e_y)\circ(\sigma_{y^\vee,x^\vee\otimes x}\otimes\id_y)
i_{x\otimes y} = (\id_x\otimes\sigma_{x^\vee,y^\vee\otimes y})\circ(i_x\otimes i_y)
e_y\circ(\id_{y^\vee}\otimes f) = e_x\circ(f^\vee\otimes\id_x), \quad (f\otimes\id_{x^\vee})\circ i_x = (\id_y\otimes f^\vee)\circ i_y
\sigma_{x,y}^\vee = \sigma_{x^\vee,y^\vee}
where \sigma can be replaced by \sigma^{-1} in these equations.
Pivotal and spherical structure
For a finite-dimensional vector space V, we know that its double dual V^{\vee\vee} is isomorphic to V. Its categorical generalization (over a right rigid category \cat{C}) is the pivotal structure, which is given by the following natural isomorphism:
such that
The definition of right dual gives
and therefore x^{\vee\vee} is the left dual of x^\vee. By renaming x^\vee to y, we can see that \ldual{y}=y^\vee.
In a pivotal category \cat{C}, a morphism f\in\Hom_\cat{C}(x,y) will be identified with its double dual f^{\vee\vee}\in\Hom_\cat{C}(x^{\vee\vee},y^{\vee\vee})\simeq\Hom_\cat{C}(x,y):
For an endomorphism f\in\End_{\cat{C}}(x), where \cat{C} is a pivotal category, we can define the left and right (pivotal) traces as
In particular, when f=\id_x, we can define the left and right dimension of x\in\cat{C} as
Note that the left/right trace is not the same thing as the left/right dual (we only use left dual in the definition, for example), as \cat{C} is already pivotal.
The graphical representation of trace and dimension are the following:
If the left and right traces of every endomorphism f\in\End_{\cat{C}}(x) coincide, then \cat{C} is called spherical.
Ribbon
A ribbon category (or tortile category) is a braided pivotal category equipped with a twist (or balancing isomorphism):
such that the balancing axioms are satisfied:
We can explicitly construct \theta via the following natural isomorphism:
then
The graphical notation of \theta can be deduced from the definition of \psi, once we identify x and x^{\vee\vee} (i.e. simply ignore \delta):
However, if imagining such thing as a 1-dimensional line or string in \R^3, then we may think that \theta=\id, which is not true in general. Therefore, we may turn to use a 2D object, or a “ribbon”, to correctly represent \theta:
TODO:
When trying to straighten it, we will get a ribbon with a “twist”, and clearly it’s not the same as a flat one. With such “ribbon” representation, the identity \theta_{x\otimes y}=\sigma_{y,x}\circ\sigma_{x,y}\circ(\theta_x\otimes\theta_y) can be visualized as:
TODO:
Every ribbon category admits a spherical structure. It can be seen from the following procedure:
TODO:
Summary
At the end of this part, we list of all the “ingredients” that can be added in a tensor category:
Ingredients | Meanings |
---|---|
Tensor (monoidal) | With tensor product |
Braided | With braiding |
Symmetric | Tensor product is symmetric |
Rigid (autonomous) | With left/right duals |
Pivotal (sovereign) | Left/right duals coincide |
Spherical | Left/right traces coincide |
Ribbon (tortile) | With twist |
References
Books:
- S MacLane. Categories for the Working Mathematician
- V G Turaev. Quantum Invariants of Knots and 3-Manifolds
- B Bakalov, A Kirillov. Lectures on Tensor Categories and Modular Frunctor
- V Turaev, A Virelizier. Monoidal Categories and Topological Field Theory
- B Milewski. Category Theory for Programmers
Papers:
- A Kitaev. Anyons in an exactly solved model and beyond, arXiv:cond-mat/0506438
- M Müger. Tensor categories: A selective guided tour, arXiv:0804.3587
- J C Baez, M Stay. Physics, Topology, Logic and Computation: A Rosetta Stone, arXiv:0903.0340
- P Bruillard, S H Ng, E C Rowell, Z Wang. Rank-finiteness for modular categories, arXiv:1310.7050
- A Henriques, D Penneys, J Tener. Categorified trace for module tensor categories over braided tensor categories, arXiv:1509.02937
- J Lou, C Shen, C Chen, L Y Hung. A (Dummy’s) Guide to Working with Gapped Boundaries via (Fermion) Condensation, arXiv:2007.10562
- D Aasen, P Fendley, R S K Mong. Topological Defects on the Lattice: Dualities and Degeneracies, arXiv:2008.08598
Some other notes:
- 张智浩. 日常的数学和物理问题
- M Thuresson. Drinfeld centers
- A large number of pages on nLab
- TensorKit.jl. Optional introduction to category theory