#### D.15.14.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

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