# Singular

#### D.12.5.13 standard

Procedure from library `teachstd.lib` (see teachstd_lib).

Usage:
standard(i[,s]); id ideal or module, s int

Return:
a standard basis of id, using generalized Mora's algorithm which is Buchberger's algorithm for global monomial orderings. If s!=0 the symmetric s-polynomial (without division) is used

Note:
Show comments if printlevel > 0, pauses computation if printlevel > 1

Example:
 ```LIB "teachstd.lib"; ring r=0,(x,y,z),dp; ideal G = x2y+x2,y3+xyz,xyz2+z4; standard(G);""; ==> _[1]=x2y+x2 ==> _[2]=y3+xyz ==> _[3]=xyz2+z4 ==> _[4]=x3z-x2y ==> _[5]=-xz4+x2z2 ==> _[6]=-y2z4-x2z3 ==> _[7]=z6+x2yz2 ==> _[8]=x2z3-x3z ==> _[9]=-x2z2+x3 ==> _[10]=x4-x2yz ==> ring s=0,(x,y,z),(c,ds); ideal G = 2x2+x2y,y3+xyz,3x3y+z4; standard(G);""; ==> _[1]=2x2+x2y ==> _[2]=y3+xyz ==> _[3]=3x3y+z4 ==> _[4]=-2/3z4+x3y2 ==> standard(G,1);""; //use symmetric s-poly without division ==> _[1]=2x2+x2y ==> _[2]=y3+xyz ==> _[3]=3x3y+z4 ==> _[4]=-2z4+3x3y2 ==> module M = [2x2,x3y+z4],[3y3+xyz,y3],[5z4,z2]; standard(M); ==> _[1]=[2x2,x3y+z4] ==> _[2]=[3y3+xyz,y3] ==> _[3]=[5z4,z2] ==> _[4]=[0,-2/3x2y3+x3y4+1/3x4y2z+y3z4+1/3xyz5] ==> _[5]=[0,-2/5x2z2+x3yz4+z8] ==> _[6]=[0,-3/5y3z2-1/5xyz3+y3z4] ```