|
7.3.28 syz (plural)
Syntax:
syz ( ideal_expression )
syz ( module_expression )
Type:
- module
Purpose:
- computes the first syzygy (i.e., the module of relations of the given
generators) of the ideal, resp. module.
Note:
- if
S is a matrix of a left syzygy module of left submodule given by matrix M , then
transpose(S)*transpose(M) = 0 .
Example:
| LIB "ncalg.lib";
def R = makeQso3(3); setring R;
// we wish to have completely reduced bases:
option(redSB); option(redTail);
ideal tst;
ideal J = x3+x,x*y*z;
print(syz(J));
==> -yz,
==> x2+1
ideal K = x+y+z,y+z,z;
module S = syz(K);
print(S);
==> (Q-1), (-Q+1)*z, (-Q)*y,
==> (Q)*z+(-Q+1),(Q-1)*z+(Q),-x+(Q)*y,
==> y+(-Q)*z, x+(-Q), x+(-Q+1)
tst = ideal(transpose(S)*transpose(K));
// check the property of a syzygy module (tst==0):
size(tst);
==> 0
// Now compute the Groebner basis of K ...
K = std(K);
// ... print a matrix presentation of K ...
print(matrix(K));
==> z,y,x
S = syz(K); // ... and its syzygy module
print(S);
==> y, x, (Q-1),
==> (Q)*z,(Q), x,
==> (Q-1),(-Q+1)*z,(Q)*y
tst = ideal(transpose(S)*transpose(K));
// check the property of a syzygy module (tst==0):
size(tst);
==> 0
// Note the "commutative" (not transposed) syzygy property does not hold
size(ideal(matrix(K)*matrix(S)));
==> 3
|
See also
ideal (plural);
minres (plural);
module (plural);
mres (plural);
nres (plural).
|