Réduction par rapport à une base de Gröbner : greduce

### 6.31.2 Réduction par rapport à une base de Gröbner : `greduce`

`greduce` a trois arguments : un polynôme de plusieurs variables, une liste de polynômes formant une base de Gröbner dépendant des mêmes variables et la liste du nom de ces variables.
`greduce` renvoie la réduction (à une constante multiplicative près) du polynôme donné dans le premier argument par rapport à la base de Gröbner donnée dans le deuxième argument.
On tape :

`greduce(x*y-1,[x```^```2-y```^```2,2*x*y-y```^```2,y```^```3],[x,y])`

On obtient :

`1/2*y```^```2-1`

ce qui veut dire que xy−1=1/2(y2−2) modI où I est l’idéal engendré par la base de Gröbner [x2−y2,2xy−y2,y3], puisque y2−2 est le reste de la division euclidienne de 2(xy−1) par G2=2x y−y2.
Remarque
La constante multiplicative peut être déterminnée en regardant comment le coefficient constant est transformé. Dans l’exemple, le terme constant `-1` est transformé en le terme constant `-2`, donc le coefficient multiplicatif est `1/2`.

On peut donner des arguments supplémentaires à `greduce` comme pour `gbasis` (`plex`(par défaut),`tdeg`,`plex`...cf. 6.31.1), c’est d’ailleurs nécessaire si on a calculé une base de Gröbner avec un ordre différent de celui par défaut, dans ce cas `greduce` doit utiliser le même ordre.
On tape :

`greduce(x1^2*x3^2,[x3^3-1,-x2^2-x2*x3-x3^2,x1+x2+x3],`
`[x1,x2,x3],tdeg)`

On obtient

`x2`