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

\begin{tikzcd}
	& (Y \otimes X) \otimes Z \ar[r, "a_{Y,X,Z}"] & Y \otimes (X \otimes Z) \ar[dr, "\id_Y \otimes \gamma_X(Z)"] & \\
        (X \otimes Y) \otimes Z \ar[ur, "\gamma_X(Y) \otimes \id_Z"] \ar[dr, "a_{X,Y,Z}"] & & & Y \otimes (Z \otimes X) \\
            & X \otimes (Y \otimes Z) \ar[r, "\gamma_X(Y \otimes Z)"] & (Y \otimes Z) \otimes X \ar[ur, "a_{Y,Z,X}"]  &
\end{tikzcd}

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.is_isomorphicMethod
is_isomorphic(X::CenterObject, Y::CenterObject)

Check if X≃Y. Return (true, m) where mis an isomorphism if true, else return (false,nothing).

source
Base.invMethod
inv(f::CenterMorphism)

Return the inverse of fif possible.

source
Base.oneMethod
one(C::CenterCategory)

Return the one object of C.

source
Base.zeroMethod
zero(C::CenterCategory)

Return the zero object of C.

source
Hecke.cokernelMethod
cokernel(f::CenterMorphism)

Return a tuple (C,c) where Cis the cokernel object and cis the projection.

source
Hecke.dualMethod
dual(X::CenterObject)

Return the (left) dual object of X.

source
Hecke.is_centralFunction
is_central(Z::Object)

Return true if Z is in the categorical center, i.e. there exists a half-braiding on Z.

source
TensorCategories.associatorMethod
associator(X::CenterObject, Y::CenterObject, Z::CenterObject)

Return the associator isomorphism (X⊗Y)⊗Z → X⊗(Y⊗Z).

source
TensorCategories.adjusted_dual_basisMethod
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̄)

source