Singular

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 ```