# Singular

#### D.4.26.2 sagbiReduce

Procedure from library `sagbi.lib` (see sagbi_lib).

Usage:
sagbiReduce(I, A[, tr, mt]); I, A ideals, tr, mt optional integers

Return:
ideal of remainders of I after SAGBI reduction by A

Assume:
basering is not a qring

Purpose:
 ``` The optional argument tr=tailred determines whether tail reduction will be performed. - If (tailred=0), no tail reduction is done. - If (tailred<>0), tail reduction is done. 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; ideal A=x2,2*x2y+y,x3y2; poly p1=x^5+x2y+y; poly p2=x^16+x^12*y^5+6*x^8*y^4+x^6+y^4+3; ideal P=p1,p2; //--------------------------------------------- //SAGBI reduction of polynomial p1 by algebra A. //Default call, that is, no tail-reduction is done. sagbiReduce(p1,A); ==> x5+x2y+y //--------------------------------------------- //SAGBI reduction of set of polynomials P by algebra A, //now tail-reduction is done. sagbiReduce(P,A,1); ==> _[1]=x5+1/2y ==> _[2]=x6y5-8y4 ```