Vector Space Categories
Vector spaces in TensorCategories are of the abstract type
abstract type VectorSpaceObject <: Object endAll objects with vector space structure like hom-spaces are and should be implemented as a subtype of this type. They always need the following fields:
basis::Vector
parent::CategoryFinite Dimensional VectorSpaces
The simplest example to provide are the finite dimensional vector spaces over a field. This category has type
VectorSpaces <: TensorCategoryand can be constructed like so:
F = GF(5,2)
Vec = VectorSpaces(F)
# output
Category of finite dimensional VectorSpaces over Finite field of degree 2 and characteristic 5Objects of this category are of the type
VSObject <: VectorSpaceObjectEvery vector space object is defined by a basis and a base field provided by the parent category.
TensorCategories.VectorSpaceObject — Method
VectorSpaceObject(Vec::VectorSpaces, n::Int64)
VectorSpaceObject(K::Field, n::Int)
VectorSpaceObject(Vec::VectorSpaces, basis::Vector)
VectorSpaceObject(K::Field, basis::Vector)The n-dimensional vector space with basis v1,..,vn (or other specified basis)
sourceMorphisms in this Category are defined only by matrices of matching dimensions. They are typed as
VSMorphism <: Morphismand constructed giving a domain, codomain and matrix element.
Oscar.morphism — Method
morphism(X::VectorSpaceObject, Y::VectorSpaceObject, m::MatElem)Return a morphism in the category of vector spaces defined by m.
sourceGraded Vector Spaces
Very similar we have the category of finite dimensional (twisted) $G$-graded vector spaces for a finite group $G$. We have the type
GradedVectorSpaces <: VectorSpacesand they are constructed in straightforward manner
G = symmetric_group(6)
VecG = graded_vector_spaces(G)To add a non-trivial associator (twist) there is another constructor.
TensorCategories.twisted_graded_vector_spaces — Function
twisted_graded_vector_spaces(G::Group, i::Int)Construct the category of twisted graded vectorspaces with the i-th 3-cocycle.
sourceGraded vector spaces decompose into direct sums of vector spaces for each element in $G$.
GVSObject <: VectorSpaceObjectG = symmetric_group(5)
g,s = gens(G)
V1 = VectorSpaceObject(QQ,5)
V2 = VectorSpaceObject(QQ, [:v, :w])
W = VectorSpaceObject(g => V1, s => V2, g*s => V1⊗V2)Morphisms are implemented analogously by pairs of group elements and vector space objects.
GVSMorphism <: MorphismThe constructor is given by
Oscar.morphism — Method
function morphism(V::GVSObject, Y::GVSObject, m::MatElem)Return the morphism $V → W$defined by $m$.
sourceFunctionality
(Graded) vector spaces form a fusion category. Thus the methods for direct sums, tensor products, dual, one and zero object are all implemented.
AbstractAlgebra.Generic.dim — Method
AbstractAlgebra.direct_sum — Method
AbstractAlgebra.direct_sum — Method
direct_sum(f::VectorSpaceMorphism{T},g::VectorSpaceMorphism{T}) where TReturn the direct sum of morphisms of vector spaces.
sourceAbstractAlgebra.direct_sum — Method
direct_sum(X::VectorSpaceObject{T}, Y::VectorSpaceObject{T}) where {T}Direct sum of vector spaces together with the embedding morphisms.
sourceAbstractAlgebra.is_isomorphic — Method
function is_isomorphic(V::GVSObject, W::GVSObject)Check whether $V$and $W$are isomorphic as $G$-graded vector spaces and return an isomorphism in the positive case.
sourceAbstractAlgebra.is_isomorphic — Method
is_isomorphic(V::VSObject, W::VSObject)Check whether $V$ and $W$are isomorphic. Return the isomorphisms if existent.
sourceAbstractAlgebra.kernel — Method
Hecke.cokernel — Method
Hecke.decompose — Method
function decompose(V::GVSObject)Return a vector with the simple objects together with their multiplicities $[V:Xi]$.
sourceHecke.dual — Method
Hecke.tensor_product — Method
Hecke.tensor_product — Method
tensor_product(f::VectorSpaceMorphism, g::VectorSpaceMorphism)Return the tensor product of vector space morphisms.
sourceHecke.tensor_product — Method
tensor_product(X::VectorSpaceObject{T}, Y::VectorSpaceObject{T}) where {T,S1,S2}Return the tensor product of vector spaces.
sourceOscar.morphism — Method
Oscar.morphism — Method
morphism(X::VectorSpaceObject, Y::VectorSpaceObject, m::MatElem)Return a morphism in the category of vector spaces defined by m.
sourceTensorCategories.Hom — Method
function Hom(V::GVSObject, W::GVSObject)Return the space of morphisms between graded vector spaces $V$ and $W$.
sourceTensorCategories.Hom — Method
TensorCategories.associator — Method
function associator(U::GVSObject, V::GVSObject, W::GVSObject)return the associator isomorphism $(U⊗V)⊗W → U⊗(V⊗W)$.
sourceTensorCategories.associator — Method
associator(X::VectorSpaceObject, Y::VectorSpaceObject, Z::VectorSpaceObject)Return the associator isomorphism a::(X⊗Y)⊗Z -> X⊗(Y⊗Z).
source