Predicates#

IsZero(M): ModMPol -> ModMPol#

Given a module \(M\), return whether \(M\) is the zero module.

M subset N: ModMPol, ModMPol -> BoolElt#

Given compatible modules \(M\) and \(N\) (ie, embedded in the same ambient module), return whether \(M\) is a submodule of \(N\). This will generally involve module Gröbner basis and normal form computations to check that the generators of \(M\) lie in \(N\).

M eq N: ModMPol, ModMPol -> BoolElt#

Given compatible modules \(M\) and \(N\) (ie, embedded in the same ambient module), return whether \(M\) equals \(N\). The function checks that appropriate module Gröbner bases of \(M\) and \(N\) are equal.

IsFree(M): ModMPol -> BoolElt#

Given an \(R\)-module \(M\), return whether \(M\) is free. \(M\) is free iff \(M\) is isomorphic to the module \(R^k\) for some \(k\). Such a \(k\) need not equal the degree of \(M\) but will equal the rank of \(M\) (as defined in the next section) if \(M\) is free. The function checks whether a minimised presentation of \(M\) has trivial relations or not.