Singular
https://www.singular.uni-kl.de/forum/

How to use primdecGTZ
https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=1894
Page 1 of 1

Author:  daniel [ Fri Dec 03, 2010 2:28 pm ]
Post subject:  How to use primdecGTZ

I calculated an ideal H as follows
Code:
ideal H=intersect(J,F);

where J and F are ideals arising from maximal tori.
Then
Code:
primdecGTZ(H);

just returns
Code:
[1]:
   [1]:
      _[1]=1
   [2]:
      _[1]=1

Which would mean, that H equals the whole ring.
However
Code:
NFMora(x(1)(1),H)

is not zero. [The variables in my ring are labelled x(1..3)(1..3)].

What am i missing? Is there something wrong with my approach?

Author:  greuel [ Sat Dec 04, 2010 1:57 pm ]
Post subject:  Re: How to use primdecGTZ

As always:
Please provide the full input and output of your computation, otherwise we cannot help you.

Author:  daniel [ Mon Dec 06, 2010 11:39 am ]
Post subject:  Re: How to use primdecGTZ

Input:
Code:
LIB "primdec.lib";
LIB "linalg.lib";
LIB "teachstd.lib";

int n=3;
ring r=0,(x(1..n)(1..n),T),lp;
matrix M[n][n];

// generate a diagnoal matrix with variables as entries
// this is the general maximal torus
for(int j=1; j<=n; j=j+1){
for (int i=1; i<=n; i=i+1)
{
        M[i,j]=0;
if(i==j)
   {M[i,j]=x(i)(j);}
}}

// generate another maximal torus by conjugating
// with an invertible matrix N:
matrix N[n][n];
N[1,1..3]=1,1,1;
N[2,1..3]=0,1,1;
N[3,1..3]=0,0,1;

matrix S=inverse(N)*M*N;
// define the ideal generated by the matrix entries
ideal J=det(M)*T-1;
for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){
         J[i+j*n]=x(i)(j)-S[i,j];
}}

// as above to obtain another maximal torus
N[1,1..3]=1,0,0;
N[2,1..3]=1,1,0;
N[3,1..3]=1,1,1;

matrix S=inverse(N)*M*N;
ideal F=det(M)*T-1;
for(int j=1; j<=n; j=j+1){for(int i=1; i<=n; i=i+1){
         F[i+j*n]=x(i)(j)-S[i,j];
}}
print("det(N)=");
det(N);



ideal H=intersect(J,F);
primdecGTZ(H);
NFMora(x(1)(1),H);



Output:
Code:
det(N)=
1
[1]:
   [1]:
      _[1]=1
   [2]:
      _[1]=1
x(1)(3)-x(2)(1)+x(2)(2)


As I understand this output, it means, that the primary decomposition of the intersection of J and F is trivial (consist only of one pair (R,R), with R the whole ring). But also the intersection does not contain the polynomial x(1)(1), because the normalform leaves a non-zero remainder.

Author:  greuel [ Tue Dec 14, 2010 4:41 am ]
Post subject:  Re: How to use primdecGTZ

You are right, primdecGTZ gives a wrong answer in your example. Thank you for the bug report!
The bug will be fixed in the next release of Singular.

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/