Magma allows special computation in modules over the multivariate polynomial
rings K[x_1, ..., x_n] using the Gröbner basis facilities.
See the chapter devoted to such modules for details.
This section just shows how to create the module of syzygies of a sequence
of polynomials from such a polynomial ring.
SyzygyModule(Q) : [ RngMPolElt ] -> ModTupRng
Given a sequence Q of polynomials from a multivariate polynomial ring P, return the module of syzygies of Q. This is a module over P of degree k, where k is the length of Q, consisting of all vectors v such that the sum of v[i] * Q[i] for i=1, ... k is zero.
Given a sequence Q of polynomials from a multivariate polynomial ring P, return the module of syzygies of Q as a matrix S. This an r by k matrix, where k is the length of Q, whose rows span the space of all vectors v such that the sum of v[i] * Q[i] for i=1, ... k is zero.
> // Create Q[x, y, z] > P<x, y, z> := PolynomialRing(RationalField(), 3); > // Form module of syzygies of a certain triple > M := SyzygyModule([x + y, x - y, x*z + y*z]); > M; Module of degree 3 TOP Order Coefficient ring: Polynomial ring of rank 3 over Rational Field Lexicographical Order Variables: x, y, z Basis: [ z[1] - 1[3], -1/2*x[2] + 1/2*x[1] - 1/2*y[2] - 1/2*y[1] ] > Groebner(M); > M; Module of degree 3 TOP Order Coefficient ring: Polynomial ring of rank 3 over Rational Field Lexicographical Order Variables: x, y, z Groebner basis: [ x[2] - x[1] + y[2] + y[1], z[1] - 1[3] ] > BasisMatrix(M); [-x + y x + y 0] [ z 0 -1] > SyzygyMatrix([x + y, x - y, x*z + y*z]); [ z 0 -1] [ 1/2*x - 1/2*y -1/2*x - 1/2*y 0]