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)