Opened 9 years ago

Closed 9 years ago

#724 closed bug (fixed)

minAssGTZ: minimal associated prime not radical

Reported by: kroeker@… Owned by: somebody
Priority: minor Milestone: 4-1-0 and higher
Component: dontKnow Version: 4-0-2
Keywords: minAssGTZ bug Cc:

Description

example:

LIB("primdec.lib");
system("random",1760203212);
ring rng = (2),(x(1),x(2)),(lp(1),lp(1),C);
ideal I = x(2)^2+x(2)+1,x(1)^2*x(2)+1,0;
def ML1 = minAssGTZ(I, "facstd"); //wrong!
def ML2 = minAssGTZ(I, "GTZ" );
ML1;
ML2;
reduce( ML1[1], std(ML2[1]) );
reduce( ML2[1], std(ML1[1]) );
def RML1 = radical( ML1[1]);
def RML2 = radical( ML2[1]);

reduce( RML1[1], std(RML2[1]) );
reduce( RML2[1], std(RML1[1]) );

output

> ring rng = (2),(x(1),x(2)),(lp(1),lp(1),C);
> ideal I = x(2)^2+x(2)+1,x(1)^2*x(2)+1,0;
> def ML1 = minAssGTZ(I, "facstd");
> def ML2 = minAssGTZ(I, "GTZ" );
> ML1;
[1]:
   _[1]=x(2)^2+x(2)+1
   _[2]=x(1)^2+x(2)+1
> ML2;
[1]:
   _[1]=x(2)^2+x(2)+1
   _[2]=x(1)+x(2)
> reduce( ML1[1], std(ML2[1]) );
_[1]=0
_[2]=0
> reduce( ML2[1], std(ML1[1]) );
_[1]=0
_[2]=x(1)+x(2)
> def RML1 = radical( ML1[1]);
> def RML2 = radical( ML2[1]);
> 
. reduce( RML1[1], std(RML2[1]) );
0
> reduce( RML2[1], std(RML1[1]) );
0
> 

another example

LIB("primdec.lib");
system("random",1416823952);
ring rng = (2),(x,y,z),(lp,C);
minpoly = 0;
ideal I = x^2*y+x*z^2+1,x^2*z+z^2,z^3+1;

def ML1 =   minAssGTZ(I, "GTZ" );
def ML2 =   minAssGTZ(I, "facstd");
ML1;
ML2;
radical(ML1[1]);
radical(ML2[1]);
> system("random",1416823952);
> ring rng = (2),(x,y,z),(lp,C);
> minpoly = 0;
> ideal I = x^2*y+x*z^2+1,x^2*z+z^2,z^3+1;
> 
. def ML1 =   minAssGTZ(I, "GTZ" );
> def ML2 =   minAssGTZ(I, "facstd"); //wrong!
> ML1;
[1]:
   _[1]=z2+z+1
   _[2]=y+z
   _[3]=x+z+1
[2]:
   _[1]=z+1
   _[2]=y
   _[3]=x+1
> ML2;
[1]:
   _[1]=z2+z+1
   _[2]=y2+z+1
   _[3]=x+yz+y+z
[2]:
   _[1]=z+1
   _[2]=y
   _[3]=x+1
> radical(ML1[1]);
_[1]=y+z
_[2]=x+z+1
_[3]=z2+z+1
> radical(ML2[1]);
_[1]=y+z
_[2]=x+z+1
_[3]=z2+z+1

third example:

LIB("primdec.lib");
system("random",2064787217);
ring rng = (2),(x,y,z),(lp,C);
ideal I = z^3+1,x^2*y+y*z^2,y+1;

def ML2 =   minAssGTZ(I); // wrong!
def ML3 =   minAssGTZ(I, "GTZ" );
ML2;
ML3;

radical(ML2[1]);
radical(ML3[1]);

idealsEqual( ML2[1], radical(ML2[1]) );
idealsEqual( ML3[1], radical(ML3[1]) );
> ring rng = (2),(x,y,z),(lp,C);
> ideal I = z^3+1,x^2*y+y*z^2,y+1;
> 
. def ML2 =   minAssGTZ(I); // wrong!
> def ML3 =   minAssGTZ(I, "GTZ" );
> ML2;
[1]:
   _[1]=z2+z+1
   _[2]=y+1
   _[3]=x2+z+1
[2]:
   _[1]=z+1
   _[2]=y+1
   _[3]=x+1
> ML3;
[1]:
   _[1]=z2+z+1
   _[2]=y+1
   _[3]=x+z
[2]:
   _[1]=z+1
   _[2]=y+1
   _[3]=x+1
> 
. radical(ML2[1]);
_[1]=y+1
_[2]=x+z
_[3]=z2+z+1
> radical(ML3[1]);
_[1]=y+1
_[2]=x+z
_[3]=z2+z+1
> 
. idealsEqual( ML2[1], radical(ML2[1]) );
0
> idealsEqual( ML3[1], radical(ML3[1]) );
1
> 

Change History (1)

comment:1 Changed 9 years ago by hannes

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.