Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: How to use primdecGTZ
PostPosted: Fri Dec 03, 2010 2:28 pm 

Joined: Thu Dec 02, 2010 8:53 pm
Posts: 4
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?


Report this post
Top
 Profile  
Reply with quote  
 Post subject: Re: How to use primdecGTZ
PostPosted: Sat Dec 04, 2010 1:57 pm 

Joined: Mon Aug 29, 2005 9:22 am
Posts: 41
Location: Kaiserslautern, Germany
As always:
Please provide the full input and output of your computation, otherwise we cannot help you.


Report this post
Top
 Profile  
Reply with quote  
 Post subject: Re: How to use primdecGTZ
PostPosted: Mon Dec 06, 2010 11:39 am 

Joined: Thu Dec 02, 2010 8:53 pm
Posts: 4
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.


Report this post
Top
 Profile  
Reply with quote  
 Post subject: Re: How to use primdecGTZ
PostPosted: Tue Dec 14, 2010 4:41 am 

Joined: Mon Aug 29, 2005 9:22 am
Posts: 41
Location: Kaiserslautern, Germany
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.


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

It is currently Fri May 13, 2022 11:08 am
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group