Fusion Categories from F
-Symbols
In most literature concerning fusion categories they are characterized by so called $F$-symbols. Often only those and the fusion rules are provided or of interest. Thus we provide a datatype that allows to get a workable fusion category from provided `6j
-symbols.
$F$-Symbols
Let $\mathcal C$ be a locally finite semisimple multitensor category. Then, if $\{X_i\mid i \in \mathcal I\}$ is a collection of the non-isomorphic simple objects, there is an equivalence of abelian categories
\[F \colon \mathcal C \cong \bigoplus\limits_{i \in \mathcal I} \mathrm{Vec}_k\]
given by
\[X \mapsto \mathrm{Hom}(X_i,X).\]
We define $H_{ij}^k := \mathrm{Hom}(X_k, X_i\otimes X_j)$ to be the multiplicity spaces. Now considering the image of a tensor product $X_i \otimes X_j$ of two simple objects we obtain
\[X_i \otimes X_j \mapsto \bigoplus\limits_{k \in \mathcal I} H_{ij}^k\]
After fixing a natural isomorphism
\[(X_i \otimes X_j) \otimes X_k \cong X_i \otimes (X_j \otimes X_k)\]
we obtain morphisms
\[\bigoplus\limits_{k ∈ I} H_{ij}^k \xrightarrow\]
Hecke.complex_embedding
— Methodcomplex_embedding(C::SixJCategory)
complex_embedding(C::SixJCategory, e::AbsSimpleNumFieldEmbedding)
Return the complex embedding of C if an embedding of the ground field is specified or given.
Hecke.complex_embeddings
— Methodcomplex_embeddings(C::SixJCategory)
Return all complex_embeddings of C.
Hecke.dual
— Methoddual(X::SixJObject)
Return the dual object of $X$. An error is thrown if $X$ is not rigid.
Oscar.GModuleFromGap.extension_of_scalars
— Functionextension_of_scalars(X::SixJObject, K::Field)
Return the object $X$ as an object of the category $C⊗K$.
Oscar.GModuleFromGap.extension_of_scalars
— Functionextension_of_scalars(f::SixJMorphism, K::Field)
Return the category $C⊗K$.
Oscar.GModuleFromGap.extension_of_scalars
— Methodextension_of_scalars(C::SixJCategory, K::Field)
Return the category $C⊗K$.
Oscar.set_name!
— Methodset_name!(F::SixJCategory, name::String)
Set the display name of $F$.
TensorCategories.associator
— Methodassociator(X::SixJObject, Y::SixJObject, Z::SixJObject)
Return the associator isomorphism (X⊗Y)⊗Z → X⊗(Y⊗Z)
.
TensorCategories.set_associator!
— Methodset_associator!(F::SixJCategory, ass::Array{MatElem,4})
set_associator!(F::SixJCategory, i::Int, j::Int, k::Int, ass::Vector{<:MatElem})
set_associator!(F::SixJCategory, i::Int, j::Int, k::Int, l::Int, ass::Array{T,N}) where {T,N}
set_associator!(F::SixJCategory, i::Int, j::Int, k::Int, l::Int, m::Int, n::Int, v::RingElem)
Set the $F$-symbols of $F$.
TensorCategories.set_one!
— Methodset_one!(F::SixJCategory, v::Vector{Int})
set_one!(F::SixJCategory, i::Int)
Set the unit of $F$.
TensorCategories.set_pivotal!
— Methodset_pivotal!(F::SixJCategory, p::Vector{<:RingElem})
Set the pivotal structure of $F$. Warning: No checks are performed.
TensorCategories.set_tensor_product!
— Methodset_tensor_product!(F::SixJCategory, mult::Array{Int,4})
Set the fusion rules of $F$.
TensorCategories.six_j_category
— Functionsix_j_category(F::Ring, mult::Array{Int,3}, [names::Vector{String}])
six_j_category(F::Ring, names::Vector{String})
Initialize a fusion category. Associativity constraints are all set to 1, i.e. are most likely false.