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 explicitely for reasonably small fusion categories. Any fusion category implementing the corresponding interface is supported.
Example
I = Ising()
C = center(I)
simples(C)
5-element Vector{CenterObject}:
Central object: 𝟙
Central object: 𝟙
Central object: 𝟙 ⊕ χ
Central object: 2⋅χ
Central object: 4⋅X
Methods
AbstractAlgebra.Generic.dim
— Methoddim(X::CenterObject)
Return the categorical dimension of X
.
AbstractAlgebra.compose
— Methodcompose(f::CenterMorphism, g::CenterMorphism)
Return the composition g∘f
.
AbstractAlgebra.direct_sum
— Methoddirect_sum(f::CenterMorphism, g::CenterMorphism)
Return the direct sum of f
and g
.
AbstractAlgebra.direct_sum
— Methoddirect_sum(X::CenterObject, Y::CenterObject)
Return the direct sum object of X
and Y
.
AbstractAlgebra.is_isomorphic
— Methodis_isomorphic(X::CenterObject, Y::CenterObject)
Check if X≃Y
. Return (true, m)
where m
is an isomorphism if true, else return (false,nothing)
.
AbstractAlgebra.kernel
— Methodkernel(f::CenterMoprhism)
Return a tuple (K,k)
where K
is the kernel object and k
is the inclusion.
Base.inv
— Methodinv(f::CenterMorphism)
Return the inverse of f
if possible.
Base.one
— Methodone(C::CenterCategory)
Return the one object of C
.
Base.zero
— Methodzero(C::CenterCategory)
Return the zero object of C
.
Hecke.center
— Methodcenter(C::Category)
Return the Drinfeld center of C
.
Hecke.cokernel
— Methodcokernel(f::CenterMorphism)
Return a tuple (C,c)
where C
is the cokernel object and c
is the projection.
Hecke.dual
— Methoddual(X::CenterObject)
Return the (left) dual object of X
.
Hecke.id
— Methodid(X::CenterObject)
Return the identity on X
.
Hecke.is_central
— Functionis_central(Z::Object)
Return true if Z
is in the categorical center, i.e. there exists a half-braiding on Z
.
Hecke.tensor_product
— Methodtensor_product(f::CenterMorphism,g::CenterMorphism)
Return the tensor product of f
and g
.
Hecke.tensor_product
— Methodtensor_product(X::CenterObject, Y::CenterObject)
Return the tensor product of X
and Y
.
LinearAlgebra.tr
— Methodtr(f:::CenterMorphism)
Return the categorical trace of f
.
TensorCategories.add_simple!
— Methodadd_simple!(C::CenterCategory, S::CenterObject)
Add the simple object S
to the vector of simple objects.
TensorCategories.associator
— Methodassociator(X::CenterObject, Y::CenterObject, Z::CenterObject)
Return the associator isomorphism (X⊗Y)⊗Z → X⊗(Y⊗Z)
.
TensorCategories.braiding
— Methodbraiding(X::CenterObject, Y::CenterObject)
Return the braiding isomorphism γ_X(Y): X⊗Y → Y⊗X
.
TensorCategories.central_projection
— Functioncentral_projection(X::CenterObject, Y::CenterObject, f::Morphism)
Compute the image under the projection Hom(F(X),F(Y)) → Hom(X,Y)
.
TensorCategories.coev
— Methodcoev(X::CenterObject)
Return the coevaluation morphism 1 → X⊗X∗
.
TensorCategories.ev
— Methodev(X::CenterObject)
Return the evaluation morphism X⊗X → 1
.
TensorCategories.half_braiding
— Methodhalf_braiding(X::CenterObject, Y::Object)
Return the half braiding isomorphism γ_X(Y): X⊗Y → Y⊗X
.
TensorCategories.half_braiding
— Methodhalf_braiding(Z::CenterObject)
Return a vector with half braiding morphisms Z⊗S → S⊗Z
for all simple objects S
.
TensorCategories.half_braidings
— Methodhalf_braidings(Z::Object)
Return all objects in the center lying over Z
.
TensorCategories.morphism
— Methodmorphism(f::CenterMorphism)
Return the image under the forgetful functor.
TensorCategories.object
— Methodobject(X::CenterObject)
Return the image under the forgetful functor.
TensorCategories.simples
— Methodsimples(C::CenterCategory)
Return a vector containing the simple objects of C
.
TensorCategories.spherical
— Methodspherical(X::CenterObject)
Return the spherical structure X → X∗∗
of X
.
TensorCategories.zero_morphism
— Methodzero_morphism(X::CenterObject, Y::CenterObject)
Return the zero morphism 0:X → Y
.
TensorCategories.is_half_braiding
— Functionis_half_braiding(X::Object, half_braiding::Vector{<:Morphism})
TBW
TensorCategories.adjusted_dual_basis
— Methodadjusted_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̄)
TensorCategories.dual_basis
— Methoddual_basis(V::AbstractHomSpace, W::AbstractHomSpace)
Compute the dual basis for Hom(X,Y) and Hom(X̄,Ȳ)