The Center Construction
Let $\mathcal C$ be a monoidal category. The Drinfeld center of $\mathcal C$ is a category whose objects are tuples $(X,\gamma)$ such that $X \in \mathcal C$ and $\{\gamma_Z \colon X \otimes Z \to Z \otimes X \mid Z \in \mathcal C\}$ is a natural isomorphism such that
commutes for all $Y,Z \in \mathcal C$ and $\gamma_{\mathbb 1} = \mathrm{id}_X$.
Computing the Center
The Drinfeld center can be computed explicitly for reasonably small fusion categories using the algorithm described in [6]. Any fusion category implementing the corresponding interface is supported.
Example
I = ising_category()
C = center(I)
simples(C)
# output
5-element Vector{CenterObject}:
Central object: 𝟙
Central object: 𝟙
Central object: 𝟙 ⊕ χ
Central object: 2⋅χ
Central object: 4⋅XCenters of the AnyonWiki
Currently we are working at the task to compute all centers of multiplicity free fusion categories up to rank seven. At the moment all centers to rank 4 are available and some of rank five. Access them via
TensorCategories.anyonwiki_center — Function
anyonwiki_center(i,j,k,l,m,n,o)Return the center of the fusion category with index (i,j,k,l,m,n,o) from the database.
sourceC = anyonwiki_center(3,1,0,2,1,1,1)
print_multiplication_table(C)
# output
8×8 Matrix{String}:
"(𝟙, γ)" "(X2, γ)" … "(X2 ⊕ X3, γ)"
"(X2, γ)" "(𝟙, γ)" "(𝟙 ⊕ X3, γ)"
"(𝟙 ⊕ X2, γ)" "(𝟙 ⊕ X2, γ)" "(𝟙 ⊕ X3, γ) ⊕ (X2 ⊕ X3, γ)"
"(X3, γ1)" "(X3, γ1)" "(𝟙 ⊕ X3, γ) ⊕ (X2 ⊕ X3, γ)"
"(X3, γ2)" "(X3, γ2)" "(𝟙 ⊕ X3, γ) ⊕ (X2 ⊕ X3, γ)"
"(X3, γ3)" "(X3, γ3)" … "(𝟙 ⊕ X3, γ) ⊕ (X2 ⊕ X3, γ)"
"(𝟙 ⊕ X3, γ)" "(X2 ⊕ X3, γ)" "(X2, γ) ⊕ (𝟙 ⊕ X2, γ) ⊕ (X3, γ1) ⊕ (X3, γ2) ⊕ (X3, γ3)"
"(X2 ⊕ X3, γ)" "(𝟙 ⊕ X3, γ)" "(𝟙, γ) ⊕ (𝟙 ⊕ X2, γ) ⊕ (X3, γ1) ⊕ (X3, γ2) ⊕ (X3, γ3)"F- and R-Symbols
We can export the $F$- and $R$-symbols as Dicts via the methods
TensorCategories.F_symbols — Function
TensorCategories.R_symbols — Function
TensorCategories.numeric_F_symbols — Function
numeric_F_symbols(C::SixJCategory; precision = 2048)
numeric_F_symbols(C::SixJCategory, e::AbsSimpleNumFieldEmbedding; precision = 2048)Return a Dictionary of the F-symbols of $C$ evaluated under the embedding $e$.
sourceTensorCategories.numeric_R_symbols — Function
numeric_R_symbols(C::SixJCategory; precision = 2048)
numeric_R_symbols(C::SixJCategory, e::AbsSimpleNumFieldEmbedding; precision = 2048)Return a Dictionary of the R-symbols of $C$ evaluated under the embedding $e$.
sourceAbstractAlgebra.Generic.dim — Method
AbstractAlgebra.compose — Method
AbstractAlgebra.direct_sum — Method
AbstractAlgebra.direct_sum — Method
AbstractAlgebra.is_isomorphic — Method
is_isomorphic(X::CenterObject, Y::CenterObject)Check if X≃Y. Return (true, m) where mis an isomorphism if true, else return (false,nothing).
AbstractAlgebra.kernel — Method
kernel(f::CenterMoprhism)Return a tuple (K,k) where Kis the kernel object and kis the inclusion.
Hecke.center — Method
Hecke.cokernel — Method
cokernel(f::CenterMorphism)Return a tuple (C,c) where Cis the cokernel object and cis the projection.
Hecke.dual — Method
Hecke.is_central — Function
is_central(Z::Object)Return true if Z is in the categorical center, i.e. there exists a half-braiding on Z.
Hecke.tensor_product — Method
Hecke.tensor_product — Method
LinearAlgebra.tr — Method
Oscar.morphism — Method
TensorCategories.add_simple! — Method
add_simple!(C::CenterCategory, S::CenterObject)Add the simple object S to the vector of simple objects.
TensorCategories.associator — Method
associator(X::CenterObject, Y::CenterObject, Z::CenterObject)Return the associator isomorphism (X⊗Y)⊗Z → X⊗(Y⊗Z).
TensorCategories.braiding — Method
TensorCategories.central_projection — Function
central_projection(X::CenterObject, Y::CenterObject, f::Morphism)Compute the image under the projection Hom(F(X),F(Y)) → Hom(X,Y).
TensorCategories.coev — Method
TensorCategories.ev — Method
TensorCategories.fpdim — Method
TensorCategories.half_braiding — Method
half_braiding(X::CenterObject, Y::Object)Return the half braiding isomorphism γ_X(Y): X⊗Y → Y⊗X.
TensorCategories.half_braiding — Method
half_braiding(Z::CenterObject)Return a vector with half braiding morphisms Z⊗S → S⊗Z for all simple objects S.
TensorCategories.half_braidings — Method
TensorCategories.object — Method
TensorCategories.pivotal — Method
TensorCategories.simples — Method
TensorCategories.spherical — Method
TensorCategories.zero_morphism — Method
TensorCategories.is_half_braiding — Function
TensorCategories.adjusted_dual_basis — Method
adjusted_dual_basis(V::AbstractHomSpace, U::AbstractHomSpace, S::Object, W::Object, T::Object)Compute a dual basis for the spaces Hom(S, W⊗T) and Hom(S̄⊗W, T̄)
sourceTensorCategories.dual_basis — Method
dual_basis(V::AbstractHomSpace, W::AbstractHomSpace)Compute the dual basis for Hom(X,Y) and Hom(X̄,Ȳ)
source