Opened 15 years ago

Closed 13 years ago

Last modified 13 years ago

#171 closed proposed feature (invalid)

PLURAL::nres seems to miss some syzygies

Reported by: Mohamed Barakat Owned by: Oleksandr
Priority: major Milestone: 3-1-1
Component: singular-kernel Version: 3-1-0
Keywords: PLURAL, res, syz Cc: Oleksandr

Description

reorted on Oct 18, 2009, by: name=Mohamed Barakat email=barakat@… type=computational version=3-0-4, 3-1-0 platform=Mac OS X, Linux request=

Plural's nres misses some syzygies in the below example: compare var_7 and var_8

Best regards,

Mohamed

/ begin / option(noredefine);option(redSB);LIB "matrix.lib";LIB "control.lib";LIB "ring.lib";LIB "involut.lib";LIB "nctools.lib";LIB "poly.lib";LIB "finvar.lib";

ring var_3 = 0,(x,y,z,Dx,Dy,Dz),dp; def var_4 = Weyl(); setring var_4; option(redTail);short=0;

matrix var_6[1][3] = 3*Dy-Dz,2*x,3*Dx+3*Dz; matrix var_7 = syz(var_6); matrix var_8 = nres(var_6,2)[2];

Change History (8)

comment:1 Changed 15 years ago by Oleksandr

Cc: Oleksandr added
Owner: changed from somebody to levandov
Priority: minormajor

comment:2 Changed 15 years ago by levandov

  1. Alex set me the owner without even asking myself; my time constraints are tough during next 4 weeks, though I will try to figure the things out.
  2. The problem is correctly stated: some syzygies got lost on the way.

Computing e.g.

 resolution R3 = nres(var_6,3); print(std(R3[2]));

gives the same as

print(std(var_7));

Hence computing 3 steps of the resolution is ok, while 2 is not enough.

  1. I suspect that the problem is in treating homogeneous generators in a G-algebra with non-homogeneous relations as one does the homogeneous case over commutative polynomial ring (which has homogeneous relations by definition). In the code for syResolvente isHomog is again taken without taking into account non-comm situation.

Justification: modify one of the generators, making it non-homogeneous, then everything must be fine. In the following I replace the second entry in the matrix var_6, what is 2x, by 2x+1 - and the results are coherent.

option(noredefine);option(redSB);
LIB "matrix.lib";LIB "control.lib";LIB "ring.lib";LIB "involut.lib";
LIB "nctools.lib";LIB "poly.lib";LIB "finvar.lib";

ring var_3 = 0,(x,y,z,Dx,Dy,Dz),dp; def var_4 = Weyl(); setring var_4; option(redTail);short=0;

matrix var_6[1][3] = 3*Dy-Dz,2*x+1,3*Dx+3*Dz; matrix var_7 = syz(var_6); 
matrix var_8 = nres(var_6,2)[2]; 

Now,

print(std(var_7));
print(std(var_8));

deliver the same correct answer.

  1. Suggestion: Alex Motsak dealt a lot with the homogeneous case and he is much better expert in these things, he recently worked with resolutions over sca algebras. Are there ints from this area? Is there a procedure, determining, if a G-algebra is given by homogeneous relations? This might be an important invariant, easy to analyze during the setup of the algebra.

comment:3 Changed 15 years ago by Oleksandr

the problem occures after/within the resolution minimization

comment:4 Changed 14 years ago by levandov

As I have written before, this bug has been fixed by myself 11.March.2010. Funny enough I cannot see my message in the trac system... The only thing why it was left open is "Alex Motsak muss mal schauen ob SCA Ringe richtig damit behoben werden.".
Besides, the answers of var_7 and var_8 are though looking different, they have the same Groebner basis, so the world is ok with this example.

comment:5 Changed 14 years ago by levandov

Owner: changed from levandov to Oleksandr

My work is done, so I reassign the remaining (SCA issues) to Alex Motsak.

comment:6 Changed 13 years ago by Oleksandr

Keywords: res syz added; syzygies removed
Resolution: invalid
Status: newclosed
Type: bugproposed feature

As Viktor noted: "though looking different, they have the same Groebner basis" i don't see any problem with this example.

comment:7 Changed 13 years ago by Oleksandr

Some more test results:

> slimgb(I);
_[1]=S-1
_[2]=V
_[3]=U
LIB "teachstd.lib";
> printlevel = 0;
> standard(I);   
_[1]=UV-V+S-1
_[2]=U-VT-V
_[3]=U-VS+V
_[4]=(q)*V2T+(q)*V2-V+S-1
_[5]=(q)*V2S+(-q)*V2-V+S-1
_[6]=VS-VT-2*V
_[7]=(q-1)/(q)*VT2+(2q-2)/(q)*VT+(q-1)/(q)*V+(q-1)/(q2)*S+(-q+1)/(q2)
_[8]=(-q+1)*V+(-q+1)/(q)*S+(q-1)/(q)
_[9]=S2+(-q2-2q+2)/(q2)*ST+(-q2-4q+2)/(q)*S+(q2+2q-2)/(q)*T+(q2+3q-2)/(q)
_[10]=(q2+q-2)/(q2)*ST+(q2+q-2)/(q)*S+(-q2-q+2)/(q)*T+(-q2-q+2)/(q)
_[11]=(q+1)/(q2)*S+(-q-1)/(q2)

> simplify(_, 1+2+4);
_[1]=UV-V+S-1
_[2]=U-VT-V
_[3]=U-VS+V
_[4]=V2T+V2-1/(q)*V+1/(q)*S-1/(q)
_[5]=V2S-V2-1/(q)*V+1/(q)*S-1/(q)
_[6]=VS-VT-2*V
_[7]=VT2+2*VT+V+1/(q)*S-1/(q)
_[8]=V+1/(q)*S-1/(q)
_[9]=S2+(-q2-2q+2)/(q2)*ST+(-q2-4q+2)/(q)*S+(q2+2q-2)/(q)*T+(q2+3q-2)/(q)
_[10]=ST+(q)*S+(-q)*T+(-q)
_[11]=S-1

> ideal II = _;
> slimgb(II);
_[1]=S-1
_[2]=V
_[3]=U


> std(II);                               
_[1]=T
_[2]=S-1
_[3]=V
_[4]=U

> std(ideal(II[1..6], II[8..11]));       
_[1]=S-1
_[2]=V
_[3]=U

> std(ideal(II[1..6], II[8..11]) + II[7]); 
_[1]=T
_[2]=S-1
_[3]=V
_[4]=U

> std(std(ideal(II[1..6], II[8..11])), II[7]);
_[1]=S-1
_[2]=V
_[3]=U

> II[7];                                  
VT2+2*VT+V+1/(q)*S-1/(q)
Version 0, edited 13 years ago by Oleksandr (next)

comment:8 Changed 13 years ago by Oleksandr

Last edited 13 years ago by Oleksandr (previous) (diff)
Note: See TracTickets for help on using tickets.