Super modules¶
- class sage.categories.super_modules.SuperModules(base_category)[source]¶
- 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] - >>> from sage.all import * >>> Modules(ZZ).Super() Category of super modules over Integer Ring >>> 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 - >>> from sage.all import * >>> Modules(ZZ).Super().additional_structure() Category of super modules over Integer Ring - class ElementMethods[source]¶
- Bases: - object- is_even()[source]¶
- Return if - selfis an even element.- EXAMPLES: - sage: # needs sage.combinat sage.modules 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 - >>> from sage.all import * >>> # needs sage.combinat sage.modules >>> cat = Algebras(QQ).WithBasis().Super() >>> C = CombinatorialFreeModule(QQ, Partitions(), category=cat) >>> C.degree_on_basis = sum >>> C.basis()[Integer(2),Integer(2),Integer(1)].is_even() False >>> C.basis()[Integer(2),Integer(2)].is_even() True 
 - is_even_odd()[source]¶
- Return - 0if- selfis an even element or- 1if 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: # needs sage.combinat sage.modules 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 - >>> from sage.all import * >>> # needs sage.combinat sage.modules >>> cat = Algebras(QQ).WithBasis().Super() >>> C = CombinatorialFreeModule(QQ, Partitions(), category=cat) >>> C.degree_on_basis = sum >>> C.basis()[Integer(2),Integer(2),Integer(1)].is_even_odd() 1 >>> C.basis()[Integer(2),Integer(2)].is_even_odd() 0 
 - is_odd()[source]¶
- Return if - selfis an odd element.- EXAMPLES: - sage: # needs sage.combinat sage.modules 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 - >>> from sage.all import * >>> # needs sage.combinat sage.modules >>> cat = Algebras(QQ).WithBasis().Super() >>> C = CombinatorialFreeModule(QQ, Partitions(), category=cat) >>> C.degree_on_basis = sum >>> C.basis()[Integer(2),Integer(2),Integer(1)].is_odd() True >>> C.basis()[Integer(2),Integer(2)].is_odd() False 
 
 - extra_super_categories()[source]¶
- Add - VectorSpacesto the super categories of- selfif 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() [] - >>> from sage.all import * >>> Modules(QQ).Super().extra_super_categories() [Category of vector spaces over Rational Field] >>> Modules(ZZ).Super().extra_super_categories() [] - This makes sure that - Modules(QQ).Super()returns an instance of- SuperModulesand not a join category of an instance of this class and of- VectorSpaces(QQ):- sage: type(Modules(QQ).Super()) <class 'sage.categories.super_modules.SuperModules_with_category'> - >>> from sage.all import * >>> 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()[source]¶
- EXAMPLES: - sage: Modules(ZZ).Super().super_categories() [Category of graded modules over Integer Ring] - >>> from sage.all import * >>> 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] - >>> from sage.all import * >>> Modules(QQ).Super() Category of super modules over Rational Field >>> Modules(QQ).Super().super_categories() [Category of graded modules over Rational Field] 
 
- class sage.categories.super_modules.SuperModulesCategory(base_category)[source]¶
- 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 - >>> from sage.all import * >>> C = Algebras(QQ).Super() >>> C Category of super algebras over Rational Field >>> C.base_category() Category of algebras over Rational Field >>> sorted(C.super_categories(), key=str) [Category of graded algebras over Rational Field, Category of super modules over Rational Field] >>> AlgebrasWithBasis(QQ).Super().base_ring() Rational Field >>> HopfAlgebrasWithBasis(QQ).Super().base_ring() Rational Field - classmethod default_super_categories(category, *args)[source]¶
- 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 - >>> from sage.all import * >>> HopfAlgebras(ZZ).WithBasis().FiniteDimensional().Super() # indirect doctest Category of finite dimensional super Hopf algebras with basis over Integer Ring