Opened 9 years ago

Closed 9 years ago

#572 closed bug (fixed)

where is the bug; does intersect() not respect monomial ordering?

Reported by: kroeker@… Owned by: somebody
Priority: major Milestone: 4-1-0 and higher
Component: dontKnow Version: 4-0-0
Keywords: intersect isSB attrib ordering Cc:

Description

intersect sets attribute "isSB" while it is not true?

Here is the example:

ring rng = 0,(xp,xl,xh),dp;

ideal I=
-4*xp*xh+3*xl^2,
4*xp^2*xh-9*xl*xh,
xp^2*xl-3*xp*xh;

def J = intersect(I,I);
J;
//J[1]=3*xl^2-4*xp*xh
//J[2]=4*xp^2*xh-9*xl*xh
//J[3]=xp^2*xl-3*xp*xh

attrib(J); // attr:isSB, type int
attrib(J,"isSB"); // =1, 
groebner(J);
//_[1]=3*xl^2-4*xp*xh
//_[2]=4*xp^2*xh-9*xl*xh
//_[3]=xp^2*xl-3*xp*xh


ring rng = 0,(xp,xl,xh),lp;

ideal I= -4*xp*xh+3*xl^2, 4*xp^2*xh-9*xl*xh, xp^2*xl-3*xp*xh;

def J = intersect(I,I);
J;
//J[1]=-4*xp*xh+3*xl^2
//J[2]=4*xp^2*xh-9*xl*xh
//J[3]=xp^2*xl-3*xp*xh

attrib(J); // attr:isSB, type int
attrib(J,"isSB"); // =1, incorrect ?

groebner(J);
//_[1]=xl^4-4*xl*xh^2
//_[2]=4*xp*xh-3*xl^2
//_[3]=xp*xl^2-3*xl*xh
//_[4]=xp^2*xl-3*xp*xh

reduce(groebner(J),J);
//_[1]=y^4-4*y*z^2
//_[2]=0
//_[3]=x*y^2-3*y*z
//_[4]=0

Change History (2)

comment:1 Changed 9 years ago by kroeker@…

Remark: bug was found by throwing random ideals at radEHV and looking at the primary decomposition of the result (of course not by hand!) Since the isSB attrib (set by intersect in radEHV) is probably incorrect (didn't check) , primdecGTZ gives an invalid and unexpected result: ( [4][1][2] <> [4][2][2] )

> ring rng = 0,(xp,xl,xh),lp;
// ** redefining rng **
> 
. ideal I= -4*xp*xh+3*xl^2, 4*xp^2*xh-9*xl*xh, xp^2*xl-3*xp*xh;
> ideal rIehv = radEHV(I);
//options: redSB intStrategy redefine loadLib usage prompt
//options: redSB intStrategy redefine loadLib usage prompt
> primdecGTZ(rIehv);
// ** redefining gnir1 **
[1]:
   [1]:
      _[1]=xh
      _[2]=xl
   [2]:
      _[1]=xh
      _[2]=xl
[2]:
   [1]:
      _[1]=xl^3-4*xh^2
      _[2]=4*xp*xh-3*xl^2
      _[3]=xp*xl-3*xh
      _[4]=4*xp^2-9*xl
   [2]:
      _[1]=xl^3-4*xh^2
      _[2]=4*xp*xh-3*xl^2
      _[3]=xp*xl-3*xh
      _[4]=4*xp^2-9*xl
[3]:
   [1]:
      _[1]=xl
      _[2]=xp
   [2]:
      _[1]=xl
      _[2]=xp
[4]:
   [1]:
      _[1]=xh
      _[2]=xl^2
      _[3]=xp
   [2]:
      _[1]=xp
      _[2]=xl
      _[3]=xh
> 

comment:2 Changed 9 years ago by hannes

Resolution: fixed
Status: newclosed

the result of intersect is a generating set. see 0a6bb08c6f0682a52c5e101d9181d755a4c063c9

Note: See TracTickets for help on using tickets.