Home Online Manual
Top
Back: equalMultiDeg
Forward: multiDegSyzygy
FastBack:
FastForward:
Up: multigrading_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.25.39 multiDegGroebner

Procedure from library multigrading.lib (see multigrading_lib).

Usage:
multiDegGroebner(I); I is a poly/vector/ideal/module

Purpose:
computes the multigraded standard/groebner basis of I

Note:
I must be multigraded homogeneous

Returns:
ideal/module, the computed basis

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);
/////////////////////////////////////////////////////////////////////////////
// GB:
M = multiDegGroebner(M); M;
==> M[1]=yz*gen(1)-xw*gen(1)
==> M[2]=z3*gen(1)-yw2*gen(1)
==> M[3]=xz2*gen(1)-y2w*gen(1)
==> M[4]=y3*gen(1)-x2z*gen(1)
"Module Units Multigrading: "; print( getModuleGrading(M) );
==> Module Units Multigrading: 
==>      1
==>      0
"Multidegrees: "; print(multiDeg(M));
==> Multidegrees: 
==>      3     4     4     4
==>      4     9     6     3
isHomogeneous(M);
==> 1
/////////////////////////////////////////////////////////////////////////////
// Let's compute Syzygy!
def S = multiDegSyzygy(M); S;
==> S[1]=yw*gen(1)-x*gen(2)+z*gen(3)
==> S[2]=z2*gen(1)-y*gen(2)+w*gen(3)
==> S[3]=xz*gen(1)-y*gen(3)-w*gen(4)
==> S[4]=y2*gen(1)-x*gen(3)-z*gen(4)
"Module Units Multigrading: "; print( getModuleGrading(S) );
==> Module Units Multigrading: 
==>      3     4     4     4
==>      4     9     6     3
"Multidegrees: "; print(multiDeg(S));
==> Multidegrees: 
==>      5     5     5     5
==>      9    10     7     6
isHomogeneous(S);
==> 1
/////////////////////////////////////////////////////////////////////////////
// GB:
S = multiDegGroebner(S); S;
==> S[1]=yw*gen(1)-x*gen(2)+z*gen(3)
==> S[2]=z2*gen(1)-y*gen(2)+w*gen(3)
==> S[3]=xz*gen(1)-y*gen(3)-w*gen(4)
==> S[4]=y2*gen(1)-x*gen(3)-z*gen(4)
==> S[5]=xy*gen(2)-yz*gen(3)-xw*gen(3)-zw*gen(4)
==> S[6]=xz2*gen(2)-z3*gen(3)-y2w*gen(2)+yw2*gen(3)
==> S[7]=x2z*gen(2)-xz2*gen(3)-y2w*gen(3)-yw2*gen(4)
==> S[8]=y3*gen(2)-xz2*gen(3)-z3*gen(4)-y2w*gen(3)
==> S[9]=y3*gen(3)-x2z*gen(3)-xz2*gen(4)+y2w*gen(4)
"Module Units Multigrading: "; print( getModuleGrading(S) );
==> Module Units Multigrading: 
==>      3     4     4     4
==>      4     9     6     3
"Multidegrees: "; print(multiDeg(S));
==> Multidegrees: 
==>      5     5     5     5     6     7     7     7     7
==>      9    10     7     6    10    15    12    12     9
isHomogeneous(S);
==> 1