Opened 11 years ago

Last modified 9 years ago

#362 new bug

problem with syzygies over Z/nZ in the presence of zerodivisors

Reported by: anne@… Owned by: wienand
Priority: minor Milestone: 3-1-4 and higher
Component: singular-kernel Version: 3-1-3
Keywords: syzygies over rings with zerodivisors Cc:

Description

Bug originally found by Eva Zerz:

In the following example over Z/4Z, 'syz' does not return the generator of the
syzygy module, but only 2*generator:

                     SINGULAR                                 /
 A Computer Algebra System for Polynomial Computations       / version 3-1-3
                                                           0<
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \   March 2011
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \

> ring r=(integer,4),(x,y,z),lp;
> module m=[x,0],[2*y,1],[y,z];
> syz(m);
_[1]=2xz*gen(2)+2x*gen(3)+2y*gen(1)
 
The correct generator can be computed using:
> ring r=integer,(x,y,z),lp;
> module m=[x,0],[2*y,1],[y,z],[4,0],[0,4];
> syz(m);
_[1]=y*gen(1)+(2xz2+xz)*gen(2)-(2xz+x)*gen(3)

Change History (3)

comment:1 Changed 11 years ago by Oleksandr

Owner: changed from somebody to wienand

Please, have a look and try to help us if you have time.

comment:2 Changed 9 years ago by kroeker@…

when looking at this ticked again, I observe that the output for recent Singular version differs significantly. Which output is correct (or none?)

ring r=(integer,4),(x,y,z),lp;
>  module m=[x,0],[2*y,1],[y,z];
>  syz(m);
_[1]=2xz*gen(2)+2x*gen(3)+2y*gen(1)
_[2]=2xz2*gen(2)+2xz*gen(3)+xz*gen(2)+3x*gen(3)+y*gen(1)
>  
. 
.  ring r=integer,(x,y,z),lp;
// ** redefining r **
>  module m=[x,0],[2*y,1],[y,z],[4,0],[0,4];
>  syz(m);
_[1]=2z*gen(5)-gen(5)-8*gen(3)+4*gen(2)
_[2]=y*gen(4)+z*gen(5)-4*gen(3)
_[3]=x*gen(4)-4*gen(1)
_[4]=xz3*gen(5)-4xz2*gen(3)+2xz2*gen(2)-2xz*gen(3)+xz*gen(2)-x*gen(3)+y*gen(1)


comment:3 Changed 9 years ago by anne@…

Both sets of generators for the respective syzygy modules are correct.

_[1] of the first module is 2*_[2] modulo 4.

_[1],_[2] and _[3] of the second module are trivial syzygies in the sense that only gen(4) and gen(5) do not contain a factor 4 in their coefficient. _[4] is the syzygy _[2] of the first module.

Hence the two modules are the same (up to the different way of writing 'modulo 4'), just the set of generators differs.

Anne

Note: See TracTickets for help on using tickets.