Opened 8 years ago
Closed 8 years ago
#724 closed bug (fixed)
minAssGTZ: minimal associated prime not radical
Reported by: | 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 >
Note: See
TracTickets for help on using
tickets.
fixed with 78f5473d833f58e4d789d22b4bdd90725e6f52a4