Filtered Modules¶
A filtered module over a ring \(R\) with a totally ordered indexing set \(I\) (typically \(I = \NN\)) is an \(R\)-module \(M\) equipped with a family \((F_i)_{i \in I}\) of \(R\)-submodules satisfying \(F_i \subseteq F_j\) for all \(i,j \in I\) having \(i \leq j\), and \(M = \bigcup_{i \in I} F_i\). This family is called a filtration of the given module \(M\).
Todo
Implement a notion for decreasing filtrations: where \(F_j \subseteq F_i\) when \(i \leq j\).
Todo
Implement filtrations for all concrete categories.
Todo
Implement \(\operatorname{gr}\) as a functor.
- class sage.categories.filtered_modules.FilteredModules(base_category)[source]¶
Bases:
FilteredModulesCategory
The category of filtered modules over a given ring \(R\).
A filtered module over a ring \(R\) with a totally ordered indexing set \(I\) (typically \(I = \NN\)) is an \(R\)-module \(M\) equipped with a family \((F_i)_{i \in I}\) of \(R\)-submodules satisfying \(F_i \subseteq F_j\) for all \(i,j \in I\) having \(i \leq j\), and \(M = \bigcup_{i \in I} F_i\). This family is called a filtration of the given module \(M\).
EXAMPLES:
sage: Modules(ZZ).Filtered() Category of filtered modules over Integer Ring sage: Modules(ZZ).Filtered().super_categories() [Category of modules over Integer Ring]
>>> from sage.all import * >>> Modules(ZZ).Filtered() Category of filtered modules over Integer Ring >>> Modules(ZZ).Filtered().super_categories() [Category of modules over Integer Ring]
REFERENCES:
- class SubcategoryMethods[source]¶
Bases:
object
- Connected()[source]¶
Return the full subcategory of the connected objects of
self
.A filtered \(R\)-module \(M\) with filtration \((F_0, F_1, F_2, \ldots)\) (indexed by \(\NN\)) is said to be connected if \(F_0\) is isomorphic to \(R\).
EXAMPLES:
sage: Modules(ZZ).Filtered().Connected() Category of filtered connected modules over Integer Ring sage: Coalgebras(QQ).Filtered().Connected() Category of filtered connected coalgebras over Rational Field sage: AlgebrasWithBasis(QQ).Filtered().Connected() Category of filtered connected algebras with basis over Rational Field
>>> from sage.all import * >>> Modules(ZZ).Filtered().Connected() Category of filtered connected modules over Integer Ring >>> Coalgebras(QQ).Filtered().Connected() Category of filtered connected coalgebras over Rational Field >>> AlgebrasWithBasis(QQ).Filtered().Connected() Category of filtered connected algebras with basis over Rational Field
- extra_super_categories()[source]¶
Add
VectorSpaces
to the super categories ofself
if the base ring is a field.EXAMPLES:
sage: Modules(QQ).Filtered().is_subcategory(VectorSpaces(QQ)) True sage: Modules(ZZ).Filtered().extra_super_categories() []
>>> from sage.all import * >>> Modules(QQ).Filtered().is_subcategory(VectorSpaces(QQ)) True >>> Modules(ZZ).Filtered().extra_super_categories() []
This makes sure that
Modules(QQ).Filtered()
returns an instance ofFilteredModules
and not a join category of an instance of this class and ofVectorSpaces(QQ)
:sage: type(Modules(QQ).Filtered()) <class 'sage.categories.vector_spaces.VectorSpaces.Filtered_with_category'>
>>> from sage.all import * >>> type(Modules(QQ).Filtered()) <class 'sage.categories.vector_spaces.VectorSpaces.Filtered_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.
- class sage.categories.filtered_modules.FilteredModulesCategory(base_category)[source]¶
Bases:
RegressiveCovariantConstructionCategory
,Category_over_base_ring
EXAMPLES:
sage: C = Algebras(QQ).Filtered() sage: C Category of filtered algebras over Rational Field sage: C.base_category() Category of algebras over Rational Field sage: sorted(C.super_categories(), key=str) [Category of algebras over Rational Field, Category of filtered vector spaces over Rational Field] sage: AlgebrasWithBasis(QQ).Filtered().base_ring() Rational Field sage: HopfAlgebrasWithBasis(QQ).Filtered().base_ring() Rational Field
>>> from sage.all import * >>> C = Algebras(QQ).Filtered() >>> C Category of filtered algebras over Rational Field >>> C.base_category() Category of algebras over Rational Field >>> sorted(C.super_categories(), key=str) [Category of algebras over Rational Field, Category of filtered vector spaces over Rational Field] >>> AlgebrasWithBasis(QQ).Filtered().base_ring() Rational Field >>> HopfAlgebrasWithBasis(QQ).Filtered().base_ring() Rational Field