
D.4.25.4 sagbiPart
Procedure from library sagbi.lib (see sagbi_lib).
 Usage:
 sagbiPart(A, k,[tr, mt]); A is an ideal, k, tr and mt are integers
 Return:
 ideal
 Assume:
 basering is not a qring
 Purpose:
 Performs k iterations of the SAGBI construction algorithm for the subalgebra given by the generators given by A.
 The optional argument tr=tailred determines if tail reduction will be performed.
 If (tailred=0), no tail reduction is performed,
 If (tailred<>0), tail reduction is performed.
The other optional argument meth determines which method is
used for Groebner basis computations.
 If mt=0 (default), the procedure std is used.
 If mt=1, the procedure slimgb is used.

Example:
 LIB "sagbi.lib";
ring r= 0,(x,y,z),dp;
//The following algebra does not have a finite SAGBI basis.
ideal A=x,xyy2,xy2;
//
//Call with two iterations, no tailreduction is done.
sagbiPart(A,2);
==> //SAGBI construction algorithm stopped as it reached the limit of 2 itera\
tions.
==> //In general the returned generators are no SAGBI basis for the given alg\
ebra.
==> _[1]=x
==> _[2]=xyy2
==> _[3]=xy2
==> _[4]=2xy3y4
==> _[5]=3xy5y6
==> _[6]=xy4
//
//Call with three iterations, tailreduction and method 0.
sagbiPart(A,3,1,0);
==> //SAGBI construction algorithm stopped as it reached the limit of 3 itera\
tions.
==> //In general the returned generators are no SAGBI basis for the given alg\
ebra.
==> _[1]=x
==> _[2]=xyy2
==> _[3]=xy2
==> _[4]=2xy3y4
==> _[5]=3xy5y6
==> _[6]=xy4
==> _[7]=5xy9y10
==> _[8]=xy8
==> _[9]=4xy7y8
==> _[10]=xy6

