# Singular

#### D.4.26.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,xy-y2,xy2; //--------------------------------------------------- //Call with two iterations, no tail-reduction 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]=xy-y2 ==> _[3]=xy2 ==> _[4]=2xy3-y4 ==> _[5]=3xy5-y6 ==> _[6]=xy4 //--------------------------------------------------- //Call with three iterations, tail-reduction 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]=xy-y2 ==> _[3]=xy2 ==> _[4]=2xy3-y4 ==> _[5]=3xy5-y6 ==> _[6]=xy4 ==> _[7]=5xy9-y10 ==> _[8]=xy8 ==> _[9]=4xy7-y8 ==> _[10]=xy6