#### D.15.14.40 multiDegSyzygy

Procedure from library `multigrading.lib` (see multigrading_lib).

Usage:
  multiDegSyzygy(I); I is a ideal or a module

Purpose:
  computes the multigraded syzygy module of I

Returns:
  module, the syzygy module of I

Note:
  generators of I must be multigraded homogeneous

Example:

    LIB "multigrading.lib";
    ring r = 0,(x,y,z,w),dp;
    intmat MM[2][4]=
    1,1,1,1,
    0,1,3,4;
    setBaseMultigrading(MM);
    module M = ideal(  xw-yz, x2z-y3, xz2-y2w, yw2-z3);
    intmat v[2][nrows(M)]=
    1,
    0;
    M = setModuleGrading(M, v);
    isHomogeneous(M);
    ==> 1
    "Multidegrees: "; print(multiDeg(M));
    ==> Multidegrees:
    ==>      3     4     4     4
    ==>      4     3     6     9
    // Let's compute syzygies!
    def S = multiDegSyzygy(M); S;
    ==> S[1]=yw*gen(1)-x*gen(4)-z*gen(3)
    ==> S[2]=z2*gen(1)-y*gen(4)-w*gen(3)
    ==> S[3]=xz*gen(1)+y*gen(3)-w*gen(2)
    ==> S[4]=y2*gen(1)+x*gen(3)-z*gen(2)
    "Module Units Multigrading: "; print( getModuleGrading(S) );
    ==> Module Units Multigrading:
    ==>      3     4     4     4
    ==>      4     3     6     9
    "Multidegrees: "; print(multiDeg(S));
    ==> Multidegrees:
    ==>      5     5     5     5
    ==>      9    10     7     6
    isHomogeneous(S);
    ==> 1

User manual for Singular version 4.4.1, 2025, generated by texi2html.