# Singular

#### D.6.15.9 locstd

Procedure from library `sing.lib` (see sing_lib).

Usage:
locstd (id); id = ideal

Return:
a standard basis for a local degree ordering

Note:
the procedure homogenizes id w.r.t. a new 1st variable @t@, computes a SB w.r.t. (dp(1),dp) and substitutes @t@ by 1.
Hence the result is a SB with respect to an ordering which sorts first w.r.t. the order and then refines it with dp. This is a local degree ordering.
This is done in order to avoid cancellation of units and thus be able to use option(contentSB);

Example:
 ```LIB "sing.lib"; ring R = 0,(x,y,z),ds; ideal i = xyz+z5,2x2+y3+z7,3z5+y5; locstd(i); ==> _[1]=y5+3z5 ==> _[2]=3x4y3z8-4x3y3z9+6x2y4z9+3y5z10 ==> _[3]=3x4z13-4x3z14+6x2yz14+3y2z15 ==> _[4]=3x4yz12-4x3yz13+6x2y2z13+3y3z14 ==> _[5]=2x2z9+x2y2z8+y3z9 ==> _[6]=2x2y4z5+y7z5-3x2yz9 ==> _[7]=6y2z10-3x2y3z8+4xy3z9-3y4z9 ==> _[8]=3x2y2z8+3y3z9+2xy4z8 ==> _[9]=18z14-4xy6z8+3y7z8-9x2yz12 ==> _[10]=xyz+z5 ==> _[11]=3xz6-y4z5 ==> _[12]=3y3z6+2xy4z5-3xyz9 ==> _[13]=y4z5-2xz9-xy2z8 ==> _[14]=3z10+2xyz9+xy3z8 ==> _[15]=2x2z5+y3z5-xyz8 ==> _[16]=y4z-2xz5+yz8 ==> _[17]=3z6+2xyz5-y2z8 ==> _[18]=2x2+y3+z7 ```