Internal Module Categories

Let $\mathcal C$ be a fusion category. Any finite module category over $\mathcal C$can be realized as an internal module category $\mathrm{Mod}_A(\mathcal C)$ for an algebra $A$in $\mathcal C$.

Finding Algebras

There are four kinds of algebras of interest. Let $(A,m,u)$ be an algebra.

  • Algebra objects
  • Separable algebra objects, i.e. $m\colon A\otimes A \to A$splits as a bimodule morphisms

And if $\mathcal C$ admits a braiding $c_{-,-}$

  • Commutative algebras, i.e. $m ∘ c_{A,A} = m$
  • Etale algebras, i.e. separable, commutative algebras.

We can find those structures by setting up a system of quadratic equations. Those systems are often of dimension greater then zero and hence we have to guess some solutions.

TensorCategories.algebra_structuresFunction
algebra_structures(X::Object)
algebra_structures(X::Object, unit::Morphism)

Return a set of algebra objects over $X$. An empty array is returned only if there are no algebra structures. If the algebr is not connected, i.e. $Hom(𝟙,X) ≠ k$, then a unit should be provided.

source
TensorCategories.separable_algebra_structuresFunction
separable_algebra_structures(X::Object)
separable_algebra_structures(X::Object, unit::Morphism)

Return a set of separable algebra objects over $X$. An empty array is returned only if there are no algebra structures. If the algebr is not connected, i.e. $Hom(𝟙,X) ≠ k$, then a unit should be provided.

source
TensorCategories.commutative_algebra_structuresFunction
commutative_algebra_structures(X::Object)
commutative_algebra_structures(X::Object, unit::Morphism)

Return a set of commutative algebra objects over $X$. An empty array is returned only if there are no algebra structures. If the algebra is not connected, i.e. $Hom(𝟙,X) ≠ k$, then a unit should be provided.

source
TensorCategories.etale_algebra_structuresFunction
etale_algebra_structures(X::Object)
etale_algebra_structures(X::Object, unit::Morphism)

Return a set of separable algebra objects over $X$. An empty array is returned only if there are no algebra structures. If the algebr is not connected, i.e. $Hom(𝟙,X) ≠ k$, then a unit should be provided.

source

Internal Module Categories

When obtained an algebra we can set up the left, right and bimodule categories. For compatible modules also the tensor product over $A$ is available.

C = anyonwiki(3,1,0,2,1,1,1)

A, = separable_algebra_structures(C[1,2])

M = category_of_bimodules(A)

julia> print_multiplication_table(M)

# output
6×6 Matrix{String}:
 "X1"  "X2"  "X3"  "X4"  "X5"  "X6"
 "X2"  "X1"  "X4"  "X3"  "X6"  "X5"
 "X3"  "X5"  "X1"  "X6"  "X2"  "X4"
 "X4"  "X6"  "X2"  "X5"  "X1"  "X3"
 "X5"  "X3"  "X6"  "X1"  "X4"  "X2"
 "X6"  "X4"  "X5"  "X2"  "X3"  "X1"
TensorCategories.category_of_bimodulesFunction
category_of_bimodules(A::AlgebraObject, B::AlgebraObject)

Return the category of $A-B$ bimodules in parent(A)

source
category_of_bimodules(A::AlgebraObject)

Return the category of $A-A$ bimodules in parent(A)

source

Somtimes it might be handy to construct some free modules by hand:

TensorCategories.free_bimoduleFunction
free_bimodule(X::Object, A::AlgebraObject)

Return the free $A-A$ bimodule $A⊗X⊗A$

source
free_bimodule(X::Object, A::AlgebraObject, B::AlgebraObject)

Return the free $A-B$ bimodule $A⊗X⊗B$

source

And also conversions from algebras and bimodules:

TensorCategories.right_moduleFunction
right_module(A::AlgebraObject)

Return $A$ as the trivial right module

source
right_module(M::BiModuleObject)

Return $M$ as a right module forgetting the left module structure

source
TensorCategories.left_moduleFunction
left_module(A::AlgebraObject)

Return $A$ as the trivial left module

source
left_module(M::BiModuleObject)

Return $M$ as a left module forgetting the right module structure

source