#### D.4.33.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

User manual for Singular version 4.4.1, 2025, generated by texi2html.