Basic Module Constructions#

The following functions give some fundamental basic constructions with modules.

M + N: ModMPol, ModMPol -> ModMPol#

Given compatible modules \(M\) and \(N\) (ie, embedded in the same ambient module), return the sum of \(M\) and \(N\); that is, the submodule of the ambient generated by \(M\) and \(N\).

M meet N: ModMPol, ModMPol -> ModMPol#

Given compatible modules \(M\) and \(N\) (ie, embedded in the same ambient module), return the intersection of \(M\) and \(N\) in the ambient. This uses the standard algorithm for intersecting two modules of a free module (see Section 2.8.3 of [Greuel and Pfister, 2002]). If the ambient is the quotient of a free module \(F\) by non-trivial relations, the intersection performed is effectively that of the inverse images of \(M\) and \(N\) in \(F\).

f * M: ModMPol, RngElt -> ModMPol#
M * f: ModMPol, RngElt -> ModMPol#

Given an \(R\)-module \(M\) and an element \(f\in R\), return the submodule of \(M\) generated by \(\{ f\cdot v: v \in M \}\) or \(\{ v\cdot f: v \in M \}\), respectively.

I * M: RngMPol, ModMPol -> ModMPol#
M * I: ModMPol, RngMPol -> ModMPol#

Given an \(R\)-module \(M\) and an ideal \(I\) of \(R\), return the submodule of \(M\) generated by \(\{ f\cdot v: f \in I, v \in M \}\) or \(\{ v\cdot f: f \in I, v \in M \}\), respectively.

M / N: ModMPol, ModMPol -> ModMPol#

Given compatible modules \(M\) and \(N\) (ie, embedded in the same ambient module), return the quotient module \(M/(M \cap N)\). This has the same effect as using the quo constructor.

DirectSum(M, N): ModMPol, ModMPol -> ModMPol, [ModMPolHom], [ModMPolHom]#

Given \(R\)-modules \(M\) and \(N\), return the direct sum \(D = M\oplus N\) and two sequences of corresponding homomorphisms giving the injections into and projections from \(D\), respectively.

DirectSum(S): [ModMPol] -> ModMPol, [ModMPolHom], [ModMPolHom]#
DirectSum(S): [* ModMPol *] -> ModMPol, [ModMPolHom], [ModMPolHom]#

A sequence or list \(L\) of \(R\)-modules, return their direct sum \(D\) and two sequences of corresponding homomorphisms giving the injections into and projections from \(D\), respectively.

Twist(M, d): ModMPol, RngIntElt -> [ ModMPolElt ], ModMPolHom#

Given a graded module \(M\), and an integer \(d\), return the Serre twist \(M(d)\) and an isomorphism \(f:M \rightarrow M(d)\). The twisted module is simply an isomorphic copy of \(M\), but with the grading twisted by \(d\) (so \(d\) is subtracted from each weight of \(M\)). \(f\) has degree \(-d\).