|  |  5.1.153 stdhilb Procedure from librarystandard.lib(see  standard_lib).
 
Example:Syntax:
stdhilb (ideal_expression)
 stdhilb (module_expression)
 stdhilb (ideal_expression, intvec_expression)
 stdhilb (module_expression, intvec_expression)
 stdhilb (ideal_expression,list of string_expressions,
and intvec_expression)
 
Type:
type of the first argument
Purpose:
Compute a Groebner basis of the ideal/module in the basering by
using the Hilbert driven Groebner basis algorithm.
If an argument of type string, stating "std"resp."slimgb",
is given, the standard basis computation usesstdorslimgb, otherwise a heuristically chosen method (default)If an optional second argument w of type intvec is given, w is used
as variable weights. If w is not given, it is computed as w[i] =
deg(var(i)). If the ideal is homogeneous w.r.t. w then the
Hilbert series is computed w.r.t. to these weights.
 
Theory:
If the ideal is not homogeneous compute first a Groebner basis
of the homogenization [w.r.t. the weights w] of the ideal/module,
then the Hilbert function and, finally, a Groebner basis in the
original ring by using the computed Hilbert function. If the given
w does not coincide with the variable weights of the basering, the
result may not be a groebner basis in the original ring.
Note:
'Homogeneous' means weighted homogeneous with respect to the weights
w[i] of the variables var(i) of the basering. Parameters are not
converted to variables.
 See also:
 groebner;
 slimgb;
 std;
 stdfglm.|  |    ring  r = 0,(x,y,z),lp;
ideal i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;
ideal j = stdhilb(i); j;
==> j[1]=z10
==> j[2]=yz9
==> j[3]=2y2z4-z8
==> j[4]=2y3z3-2y2z5-yz7
==> j[5]=y4+y3z2
==> j[6]=xz+y2-z4
==> j[7]=xy2-xz4-y3z
==> j[8]=x2+y3
ring  r1 = 0,(x,y,z),wp(3,2,1);
ideal  i = y3+x2,x2y+x2z2,x3-z9,z4-y2-xz;  //ideal is homogeneous
ideal j = stdhilb(i,"std"); j;
==> j[1]=y2+xz-z4
==> j[2]=x2-xyz+yz4
==> j[3]=2xz5-z8
==> j[4]=2xyz4-yz7+z9
==> j[5]=z10
==> j[6]=2yz9+z11
//this is equivalent to:
bigintvec v = hilb(std(i),1);
ideal j1 = std(i,v,intvec(3,2,1)); j1;
==> j1[1]=y2+xz-z4
==> j1[2]=x2-xyz+yz4
==> j1[3]=2xz5-z8
==> j1[4]=2xyz4-yz7+z9
==> j1[5]=z10
==> j1[6]=yz9
size(NF(j,j1))+size(NF(j1,j));            //j and j1 define the same ideal
==> 0
 | 
 
 |