Tensor Categories
Let $k$ be a field. Then a multitensor category is a category $\mathcal C$ which is
- locally finite
- k-linear
- abelian
- rigid monoidal
such that
- $\otimes$ is bilinear on morphisms.
We call a multitensor category
- tensor if additionally $\mathrm{End}(\mathbb 1) = k$,
- multifusion if semisimple and finite and
- fusion if tensor, semisimple and finite.
Thus to implement a one of the above one simply has to implement the interfaces which are part of the definition.
Multifusion Categories
Semisimple k-linear abelian categories have such a structure that allows one to describe them up to equivalence by matrices. Let $\{X_i \mid i \in \mathcal I\}$ be the set of non-isomorphic simple objects in $\mathcal C$. This we can establish an equivalence
\[\mathcal C \cong \bigoplus\limits_{i ∈ \mathcal I} \mathrm{Vec}_k\]
of abelian categories via $X \mapsto \bigoplus \mathrm{Hom(X_i, X)}$. For the detailed construction we refer to [2].
This basically implies that morphisms are merely matrices allowing us to efficiently compute thins like subobjects etc. Thus we want to choose any faithful functor
\[F \colon \mathcal C \to \mathrm{Vec}_k\]
to provide a method
matrix(f::YourMorphism)::MatElem
.
This will open acces to the following operations which are necessary for many computations with fusion categories like for example the computation of the categorical center.
TensorCategories.pentagon_axiom
— Functionpentagon_axiom(objects::Vector{<:Object}, log::Bool = false)
Check the pentagon axiom for all combinations of objects in objects
. If log = true
an array with the failing combinations is returned
TensorCategories.pentagon_axiom
— Functionpentagon_axiom(C::Category, log::Bool = false)
Check the pentagon axiom for all combinations of simple objects of C
. If log = true
an array with the failing combinations is returned
TensorCategories.pentagon_axiom
— Methodpentagon_axiom(X::T, Y::T, Z::T, W::T) where T <: Object
Check the pentagon axiom for X, Y, Z, W
.