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)#

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]

REFERENCES:

class Connected(base_category)#

Bases: CategoryWithAxiom_over_base_ring

class SubcategoryMethods#

Bases: object

Connected()#

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
extra_super_categories()#

Add VectorSpaces to the super categories of self if the base ring is a field.

EXAMPLES:

sage: Modules(QQ).Filtered().is_subcategory(VectorSpaces(QQ))
True
sage: Modules(ZZ).Filtered().extra_super_categories()
[]

This makes sure that Modules(QQ).Filtered() returns an instance of FilteredModules and not a join category of an instance of this class and of VectorSpaces(QQ):

sage: 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)#

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