# The computation of Groebner basis not correct?

I was trying to compute a Groebner basis for the ideal I=<xz-y, y^2+z,x+1/2yz>, using lex order.

I used the following code:

P.<x,y,z>=PolynomialRing(QQ,'lex')
I=ideal(x*z-y,y^2+z,x+(1/2)*y*z)
G=I.groebner_basis();G


The result is

[z^3 + 2*z, x^2 - 1/2*z, x*y - 1/2*z^2, y^2 + z, x*z - y, y*z + 2*x]


Since the computation is easy, I checked by hands but got different result. So I checked by Singular and got the same result as mine, which is

> groebner(I);
_=z3+2z
_=yz2+2y
_=y2+z
_=2x+yz


So the result from Sage is wrong, since yz^2+2y is in the ideal I, but is not in the Groebner basis from the first computation using I.groebner_basis(). Did I miss something in my command? Or is there a bug that needs to be fixed?

edit retag close merge delete

Sort by » oldest newest most voted

I tried with various engines (you can set the algoritmh parameter, see I.groebner_basis?), including singular itself, giac, naive implementation and they all agree. Are you sure about the meaning of lex order in Sage ?

more

Thanks for your answer! I never set parameters. So what is the default? I thought 'lex' means lexicographical order, with whichever order placed in the '< >'. I will check the instructions.

I realized I forgot to put order='lex'. Sage must have identified the 'lex' as a variable. Thanks.