Super modules#
- class sage.categories.super_modules.SuperModules(base_category)#
Bases:
SuperModulesCategory
The category of super modules.
An \(R\)-super module (where \(R\) is a ring) is an \(R\)-module \(M\) equipped with a decomposition \(M = M_0 \oplus M_1\) into two \(R\)-submodules \(M_0\) and \(M_1\) (called the even part and the odd part of \(M\), respectively).
Thus, an \(R\)-super module automatically becomes a \(\ZZ / 2 \ZZ\)-graded \(R\)-module, with \(M_0\) being the degree-\(0\) component and \(M_1\) being the degree-\(1\) component.
EXAMPLES:
sage: Modules(ZZ).Super() Category of super modules over Integer Ring sage: Modules(ZZ).Super().super_categories() [Category of graded modules over Integer Ring]
The category of super modules defines the super structure which shall be preserved by morphisms:
sage: Modules(ZZ).Super().additional_structure() Category of super modules over Integer Ring
- class ElementMethods#
Bases:
object
- is_even()#
Return if
self
is an even element.EXAMPLES:
sage: cat = Algebras(QQ).WithBasis().Super() sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat) sage: C.degree_on_basis = sum sage: C.basis()[2,2,1].is_even() False sage: C.basis()[2,2].is_even() True
- is_even_odd()#
Return
0
ifself
is an even element or1
if an odd element.Note
The default implementation assumes that the even/odd is determined by the parity of
degree()
.Overwrite this method if the even/odd behavior is desired to be independent.
EXAMPLES:
sage: cat = Algebras(QQ).WithBasis().Super() sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat) sage: C.degree_on_basis = sum sage: C.basis()[2,2,1].is_even_odd() 1 sage: C.basis()[2,2].is_even_odd() 0
- is_odd()#
Return if
self
is an odd element.EXAMPLES:
sage: cat = Algebras(QQ).WithBasis().Super() sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat) sage: C.degree_on_basis = sum sage: C.basis()[2,2,1].is_odd() True sage: C.basis()[2,2].is_odd() False
- class ParentMethods#
Bases:
object
- extra_super_categories()#
Adds
VectorSpaces
to the super categories ofself
if the base ring is a field.EXAMPLES:
sage: Modules(QQ).Super().extra_super_categories() [Category of vector spaces over Rational Field] sage: Modules(ZZ).Super().extra_super_categories() []
This makes sure that
Modules(QQ).Super()
returns an instance ofSuperModules
and not a join category of an instance of this class and ofVectorSpaces(QQ)
:sage: type(Modules(QQ).Super()) <class 'sage.categories.super_modules.SuperModules_with_category'>
Todo
Get rid of this workaround once there is a more systematic approach for the alias
Modules(QQ)
->VectorSpaces(QQ)
. Probably the latter should be a category with axiom, and covariant constructions should play well with axioms.
- super_categories()#
EXAMPLES:
sage: Modules(ZZ).Super().super_categories() [Category of graded modules over Integer Ring]
Nota bene:
sage: Modules(QQ).Super() Category of super modules over Rational Field sage: Modules(QQ).Super().super_categories() [Category of graded modules over Rational Field]
- class sage.categories.super_modules.SuperModulesCategory(base_category)#
Bases:
CovariantConstructionCategory
,Category_over_base_ring
EXAMPLES:
sage: C = Algebras(QQ).Super() sage: C Category of super algebras over Rational Field sage: C.base_category() Category of algebras over Rational Field sage: sorted(C.super_categories(), key=str) [Category of graded algebras over Rational Field, Category of super modules over Rational Field] sage: AlgebrasWithBasis(QQ).Super().base_ring() Rational Field sage: HopfAlgebrasWithBasis(QQ).Super().base_ring() Rational Field
- classmethod default_super_categories(category, *args)#
Return the default super categories of \(F_{Cat}(A,B,...)\) for \(A,B,...\) parents in \(Cat\).
INPUT:
cls
– the category class for the functor \(F\)category
– a category \(Cat\)*args
– further arguments for the functor
OUTPUT:
A join category.
This implements the property that subcategories constructed by the set of whitelisted axioms is a subcategory.
EXAMPLES:
sage: HopfAlgebras(ZZ).WithBasis().FiniteDimensional().Super() # indirect doctest Category of finite dimensional super hopf algebras with basis over Integer Ring