The following functions construct syzygy modules.
SyzygyModule(M) : ModMPol -> [ ModMPolElt ]
Given a module M, return the syzygy module S of M. If the basis B of M has length k, the syzygy module S has degree k and elements of S express a syzygy amongst the k elements of the basis B. Note that the degree of the resulting module thus depends on the current basis of M.
Given a homogeneous module M, return the syzygy module S of the minimal basis of M. If the minimal basis B of M has length k, the syzygy module S has degree k and elements of S express a syzygy amongst the k elements of the minimal basis B.
> P<x, y, z> := PolynomialRing(RationalField(), 3);
> M := Module(P, 3);
> B := [[y, x^2, z], [z^3, x^3, y],
> [z, y^2, x], [x, y, z]];
> S := sub<M | B>;
> Z := SyzygyModule(S);
> Groebner(Z);
> Z;
Module of degree 4
TOP Order
Coefficient ring:
Polynomial ring of rank 3 over Rational Field
Lexicographical Order
Variables: x, y, z
Groebner basis:
(x^5 - x^3*z^2 - x*y^3 - x*y*z^3 + y^2*z^4 + y^2*z -x^4 +
x^2*z^2 + x*y^2*z + x*y^2 - y^3*z - y*z^2 -x^4*z + x^3*y*z
+ x^3*y - x^2*z^4 - y^3 + y*z^4 -x^4*y + x^3*z^3 + x^3*z^2
- x^2*y*z + y^4 - y^2*z^4)