Normal forms in Macaulay2 are done using the remainder operator
%.
i1 : R = QQ[x,y,z];
|
i2 : f = x^2*y*z+x*y^2*z+y^2*z+z^3+x*y;
|
i3 : f1 = x*y+y^2-1
2
o3 = x*y + y - 1
o3 : R
|
i4 : f2 = x*y
o4 = x*y
o4 : R
|
i5 : G = ideal(f1,f2)
2
o5 = ideal (x*y + y - 1, x*y)
o5 : Ideal of R
|
Macaulay2 computes a Groebner basis of G, and uses that to find the normal form of f. In Macaulay2, all remainders are reduced normal forms (at least for non-local orders).
i6 : f % G
3
o6 = z + z
o6 : R
|
In order to reduce using a non Groebner basis, use
forceGB
i7 : f % (forceGB gens G)
2 3 2
o7 = y z + z - y + x*z + 1
o7 : R
|
This is a different answer from the SINGULAR book, since the choice of divisor affects the answer.
i8 : f % (forceGB matrix{{f2,f1}})
2 3
o8 = y z + z
o8 : R
|