|
D.15.23.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
|
|