Singular

5.1.136 simplify

`Syntax:`
`simplify (` poly_expression`,` int_expression `)`
`simplify (` vector_expression`,` int_expression `)`
`simplify (` ideal_expression`,` int_expression `)`
`simplify (` module_expression`,` int_expression `)`
`Type:`
the type of the first argument
`Purpose:`
returns the "simplified" first argument depending on the simplification rules specified by the second argument. The simplification rules are the following functions:
`1`
normalize (divide by leading coefficient if this is a unit of the ground field/ring).
`2`
erase zero generators/columns.
`4`
erase copies of earlier listed generators/columns.
`8`
erase generators/columns which a skalar multiples (w.r.t. ground field/ring) of earlier listed generators/columns.
`16`
erase generators/columns whose leading monomials are copies of leading monomials of earlier listed generators/columns such that the coefficients of both leading terms are units in the ground field/ring.
`32`
erase generators/columns whose leading terms are divisible by leading terms of other (not necessarily earlier) listed generators/columns.
`Example:`
 ```ring r=0,(x,y,z),(c,dp); ideal i=0,2x,2x,4x,3x+y,5x2; simplify(i,1); ==> _[1]=0 ==> _[2]=x ==> _[3]=x ==> _[4]=x ==> _[5]=x+1/3y ==> _[6]=x2 simplify(i,2); ==> _[1]=2x ==> _[2]=2x ==> _[3]=4x ==> _[4]=3x+y ==> _[5]=5x2 simplify(i,4); ==> _[1]=0 ==> _[2]=2x ==> _[3]=0 ==> _[4]=4x ==> _[5]=3x+y ==> _[6]=5x2 simplify(i,8); ==> _[1]=0 ==> _[2]=2x ==> _[3]=0 ==> _[4]=0 ==> _[5]=3x+y ==> _[6]=5x2 simplify(i,16); ==> _[1]=0 ==> _[2]=2x ==> _[3]=0 ==> _[4]=0 ==> _[5]=0 ==> _[6]=5x2 simplify(i,32); ==> _[1]=0 ==> _[2]=2x ==> _[3]=0 ==> _[4]=0 ==> _[5]=0 ==> _[6]=0 simplify(i,32+2+1); ==> _[1]=x matrix A[2][3]=x,0,2x,y,0,2y; simplify(A,2+8); // by automatic conversion to module ==> _[1]=[x,y] ```
See ideal; module; poly; vector.