Opened 8 years ago

Closed 8 years ago

# minAssGTZ: minimal associated prime not radical

Reported by: Owned by: kroeker@… somebody minor 4-1-0 and higher dontKnow 4-0-2 minAssGTZ bug

### 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;
```
```> 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
_[1]=y+z
_[2]=x+z+1
_[3]=z2+z+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;

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
>
_[1]=y+1
_[2]=x+z
_[3]=z2+z+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
>
```

### comment:1 Changed 8 years ago by hannes

Resolution: → fixed new → closed
Note: See TracTickets for help on using tickets.