|  |  5.1.129 reduce 
See
 division;
 ideal;
 module;
 poly operations;
 std;
 vector.Syntax:reduce (poly_expression,ideal_expression)
 reduce (poly_expression,ideal_expression,int_expression)
 reduce (poly_expression,poly_expression,ideal_expression)
 reduce (vector_expression,ideal_expression)
 reduce (vector_expression,ideal_expression,int_expression)
 reduce (vector_expression,module_expression)
 reduce (vector_expression,module_expression,int_expression)
 reduce (vector_expression,poly_expression,module_expression)
 reduce (ideal_expression,ideal_expression)
 reduce (ideal_expression,ideal_expression,int_expression)
 reduce (ideal_expression,matrix_expression,ideal_expression)
 reduce (module_expression,ideal_expression)
 reduce (module_expression,ideal_expression,int_expression)
 reduce (module_expression,module_expression)
 reduce (module_expression,module_expression,int_expression)
 reduce (module_expression,matrix_expression,module_expression)
 reduce (poly/vector/ideal/module,ideal/module,int,intvec)
 reduce (ideal,matrix,ideal,int)
 reduce (poly,poly,ideal,int)
 reduce (poly,poly,ideal,int,intvec)Type:the type of the first argument
Purpose:reduces a polynomial, vector, ideal  or module to its normal form with respect to an ideal or module represented by a standard basis.
Returns 0 if and only if the polynomial (resp. vector, ideal, module)
is an element (resp. subideal, submodule) of the ideal (resp. module).
The result may have no meaning if the second argument is not a standard basis.
The third (optional) argument of type int modifies the behavior:
 
0
default
1
consider only the leading term and do no tail reduction.
2
tail reduction:n the local/mixed ordering case: reduce also with bad ecart
4
reduce without division, return possibly a non-zero constant multiple of the remainder
 If a second argument
 uof type poly or matrix is given, the first argumentpis replaced byp/u.
This works only for zero dimensional ideals (resp. modules) in the third argument and gives, even in a local ring, a reduced normal form which is the projection to the quotient by the ideal (resp. module).
One may give a degree bound in the fourth argument with respect to a weight vector in the fifth argument in order have a finite computation.
If some of the weights are zero, the procedure may not terminate!Note:The commands reduceandNFare synonymous.Example:|  |   ring r1 = 0,(z,y,x),ds;
  poly s1=2x5y+7x2y4+3x2yz3;
  poly s2=1x2y2z2+3z8;
  poly s3=4xy5+2x2y2z3+11x10;
  ideal i=s1,s2,s3;
  ideal j=std(i);
  reduce(3z3yx2+7y4x2+yx5+z12y2x2,j);
==> -yx5+2401/81y14x2+2744/81y11x5+392/27y8x8+224/81y5x11+16/81y2x14
  reduce(3z3yx2+7y4x2+yx5+z12y2x2,j,1);
==> -yx5+z12y2x2
  // 4 arguments:
  ring rs=0,x,ds;
  // normalform of 1/(1+x) w.r.t. (x3) up to degree 5
  reduce(poly(1),1+x,ideal(x3),5);
==> // ** _ is no standard basis
==> 1-x+x2
 | 
 |