Filtered Modules With Basis¶
A filtered module with basis over a ring \(R\) means (for the purpose of this code) a filtered \(R\)-module \(M\) with filtration \((F_i)_{i \in I}\) (typically \(I = \NN\)) endowed with a basis \((b_j)_{j \in J}\) of \(M\) and a partition \(J = \bigsqcup_{i \in I} J_i\) of the set \(J\) (it is allowed that some \(J_i\) are empty) such that for every \(n \in I\), the subfamily \((b_j)_{j \in U_n}\), where \(U_n = \bigcup_{i \leq n} J_i\), is a basis of the \(R\)-submodule \(F_n\).
For every \(i \in I\), the \(R\)-submodule of \(M\) spanned by \((b_j)_{j \in J_i}\) is called the \(i\)-th graded component (aka the \(i\)-th homogeneous component) of the filtered module with basis \(M\); the elements of this submodule are referred to as homogeneous elements of degree \(i\).
See the class documentation
FilteredModulesWithBasis
for further details.
-
sage.categories.filtered_modules_with_basis.
FilteredModulesWithBasis
¶ The category of filtered modules with a distinguished basis.
A filtered module with basis over a ring \(R\) means (for the purpose of this code) a filtered \(R\)-module \(M\) with filtration \((F_i)_{i \in I}\) (typically \(I = \NN\)) endowed with a basis \((b_j)_{j \in J}\) of \(M\) and a partition \(J = \bigsqcup_{i \in I} J_i\) of the set \(J\) (it is allowed that some \(J_i\) are empty) such that for every \(n \in I\), the subfamily \((b_j)_{j \in U_n}\), where \(U_n = \bigcup_{i \leq n} J_i\), is a basis of the \(R\)-submodule \(F_n\).
For every \(i \in I\), the \(R\)-submodule of \(M\) spanned by \((b_j)_{j \in J_i}\) is called the \(i\)-th graded component (aka the \(i\)-th homogeneous component) of the filtered module with basis \(M\); the elements of this submodule are referred to as homogeneous elements of degree \(i\). The \(R\)-module \(M\) is the direct sum of its \(i\)-th graded components over all \(i \in I\), and thus becomes a graded \(R\)-module with basis. Conversely, any graded \(R\)-module with basis canonically becomes a filtered \(R\)-module with basis (by defining \(F_n = \bigoplus_{i \leq n} G_i\) where \(G_i\) is the \(i\)-th graded component, and defining \(J_i\) as the indexing set of the basis of the \(i\)-th graded component). Hence, the notion of a filtered \(R\)-module with basis is equivalent to the notion of a graded \(R\)-module with basis.
However, the category of filtered \(R\)-modules with basis is not the category of graded \(R\)-modules with basis. Indeed, the morphisms of filtered \(R\)-modules with basis are defined to be morphisms of \(R\)-modules which send each \(F_n\) of the domain to the corresponding \(F_n\) of the target; in contrast, the morphisms of graded \(R\)-modules with basis must preserve each homogeneous component. Also, the notion of a filtered algebra with basis differs from that of a graded algebra with basis.
Note
Currently, to make use of the functionality of this class, an instance of
FilteredModulesWithBasis
should fulfill the contract of aCombinatorialFreeModule
(most likely by inheriting from it). It should also have the indexing set \(J\) encoded as its_indices
attribute, and_indices.subset(size=i)
should yield the subset \(J_i\) (as an iterable). If the latter conditions are not satisfied, thenbasis()
must be overridden.Note
One should implement a
degree_on_basis
method in the parent class in order to fully utilize the methods of this category. This might become a required abstract method in the future.EXAMPLES:
sage: C = ModulesWithBasis(ZZ).Filtered(); C Category of filtered modules with basis over Integer Ring sage: sorted(C.super_categories(), key=str) [Category of filtered modules over Integer Ring, Category of modules with basis over Integer Ring] sage: C is ModulesWithBasis(ZZ).Filtered() True