Singular Manual: reduce (letterplace)

  | ### 7.8.9 reduce (letterplace) `Syntax:` `reduce (` poly_expression`,` ideal_expression `)` `reduce (` poly_expression`,` ideal_expression`,` int_expression `)` `reduce (` vector_expression`,` ideal_expression `)` `reduce (` vector_expression`,` ideal_expression`,` int_expression `)` `reduce (` vector_expression`,` module_expression`,` int_expression `)` `reduce (` ideal_expression`,` ideal_expression `)` `reduce (` ideal_expression`,` ideal_expression`,` int_expression `)` `Type:` the type of the first argument `Purpose:` reduces a polynomial, vector, or ideal (the first argument) to its two-sided normal form with respect to the second argument, meant to be an ideal, represented by its two-sided Groebner basis (otherwise, the result may have no meaning). returns 0 if and only if the polynomial (resp. vector, ideal) is an element (resp. subideal) of the ideal. 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: in the local/mixed ordering case: reduce also with bad ecart 4 reduce without division, return possibly a non-zero constant multiple of the remainder `Note:` The commands `reduce` and `NF` are synonymous. `Note:` A two-sided Groebner presentation of a polynomial with respect to a two-sided ideal can be computed by the procedure lpDivision from freegb_lib. `Example:`
      LIB "freegb.lib";
      ring r = 0,(x,y),dp;
      ring R = freeAlgebra(r,5);
      ideal I = x*x + y*y - 1; // 2D sphere
      ideal J = twostd(I); // computes a two-sided Groebner basis
      J; // it is finite and nice
      ==> J[1]=x*x+y*y-1
      ==> J[2]=y*y*x-x*y*y
      poly g = x*y*y - y*y*x;
      reduce(g,J); // 0, hence g belongs to J
      ==> 0
      poly h = x*y*y*x - y*x*x;
      reduce(h,J); // the rest of two-sided division of h by J
      ==> -y*y*y*y+y*y*y+y*y-y
      qring Q = J; // swith to K<x,y>/J
      reduce(x*y*y - y*y*x,twostd(0)); //image of g above
      ==> 0
      reduce(x*y*y*x - y*x*x,std(0)); //image of h above
      ==> -y*y*y*y+y*y*y+y*y-y
See also lift (letterplace).

User manual for Singular version 4.3.0p1, 2022, generated by texi2html.