Is this a bug in greduce?

Bugs

Modérateur : xcasadmin

jocaps
Messages : 120
Inscription : lun. avr. 17, 2017 4:32 pm

Is this a bug in greduce?

Message par jocaps » ven. août 25, 2017 9:50 am

Hi,

I am not sure if what I am asking is a bug. In any case, I did not find an appropriate thread where I can post my question. I hope you do not mind me posting here.

Consider the following code (giac, I ran both in giac and giacpy and got the same results):

Code : Tout sélectionner

h1:=x0-x1;
h2:=x2-x3;
h3:=d2*x2-y0-y1;
h4:=-d2*x0-y2-y3;
greduce(x0*y0+x1*y1+x2*y2+x3*y3,[h1,h2,h3,h4],[x0,x1,x2,x3,y0,y1,y2,y3]);
Giac will return the following polynomial:
x1*y0+x1*y1+x3*y2+x3*y3

But the polynomial x0*y0+x1*y1+x2*y2+x3*y3 is clearly in the ideal generated by h1,h2,h3,h4:
By inspecting their corresponding vanishing sets: substitute x1 with x0, substitute x3 with x2, substitute y1 for d2*x2-y0, substitute y3 for -d2*x0-y2 in the equation x0*y0+x1*y1+x2*y2+x3*y3 will yield 0 (so the vanishing set of <h1,h2,h3,h4> is in the vanishing set of the irreducible polynomial x0*y0+x1*y1+x2*y2+x3*y3).

I was expecting that Giac returns 0 because of Groebner reduction (this is what I get with other computer algebra system).
Could someone explain whether I am doing something wrong or whether this is indeed a bug?

frederic han
Messages : 1137
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: Is this a bug in greduce?

Message par frederic han » ven. août 25, 2017 5:04 pm

I think that greduce want a groebner basis in input (and don't compute it at all).

Code : Tout sélectionner

0>> h1:=x0-x1;
x0-x1
// Time 0
1>> h2:=x2-x3;
x2-x3
// Time 0
2>> h3:=d2*x2-y0-y1;
d2*x2-y0-y1
// Time 0
3>> h4:=-d2*x0-y2-y3;
-d2*x0-y2-y3
// Time 0
4>> greduce(x0*y0+x1*y1+x2*y2+x3*y3,[h1,h2,h3,h4],[x0,x1,x2,x3,y0,y1,y2,y3]);
x1*y0+x1*y1+x3*y2+x3*y3
// Time 0
5>> gb:=gbasis([h1,h2,h3,h4],[x0,x1,x2,x3,y0,y1,y2,y3]);

// Groebner basis computation time 0.000693 Memory 0.027564M
[x1*y0+x1*y1+x3*y2+x3*y3,x0-x1,x1*d2+y2+y3,x2-x3,x3*d2-y0-y1]
// Time 0
6>> greduce(x0*y0+x1*y1+x2*y2+x3*y3,gb,[x0,x1,x2,x3,y0,y1,y2,y3]);
0
// Time 0

jocaps
Messages : 120
Inscription : lun. avr. 17, 2017 4:32 pm

Re: Is this a bug in greduce?

Message par jocaps » ven. août 25, 2017 7:18 pm

frederic han a écrit :I think that greduce want a groebner basis in input (and don't compute it at all).
Ah, yes you are right. Thank you for clarifying. This makes more sense, otherwise greduce will need to compute the groebner basis all the time. Thank you.

Répondre