I'm new to singular. I'd like to compute the Betti numbers of a graded k[x,y]-module M arising as a homology module of a chain complex of free graded k[x,y]-modules, and I'm running into difficulties: I'm using the "homology" command to obtain a presentation of M, but this seems to discard information about the graded structure on M. I wonder if my trouble is related to bug #67 in the Singular issue tracker.
In any case, I'd appreciate your advice on how to circumvent this problem. Below is some Singular code which demonstrates the issue in detail:
Code:
LIB "homolog.lib";
ring R=2,(x,y),dp;
//d2 will represent a homomorphism of free graded k[x,y]-modules
module d2;
d2[1]=x*gen(3)+x*gen(2)+x*gen(1);
d2[2]=y*gen(3)+y*gen(2)+y*gen(1);
intvec grades_C1=1,1,1;
attrib(d2,"isHomog",grades_C1);
//d1 will also represent a homomorphism of free graded k[x,y]-modules
module d1;
d1[1]=gen(3)+gen(2);
d1[2]=gen(1)+gen(3);
d1[3]=gen(1)+gen(2);
intvec grades_C0=1,1,1;
attrib(d1,"isHomog",grades_C0);
module triv=0;
//Compute a presentation for M:=ker(d1)/im(d2)
def M=homology(d2,d1,triv,triv);
//Next command outputs the grade information for the generators of M.
//Note the null output; homology apparently is not returning a graded object, whereas
//the generator for M should live at grade 1.
attrib(M,"isHomog");
//Compute a free resolution of M
resolution resM=res(M,0);
//Since the grading was lost for M, the Betti numbers are off by 1.
print(betti(resM), "betti");