next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc :: betti(GradedModule)

betti(GradedModule) -- display of degrees in a graded module

Synopsis

Description

The diagram can be used to determine the degrees of the entries in the matrices of the differentials in a chain complex (which is a type of graded module) provided they are homogeneous maps of degree 0.

Here is a sample diagram.

i1 : R = ZZ/101[a..h]

o1 = R

o1 : PolynomialRing
i2 : p = genericMatrix(R,a,2,4)

o2 = | a c e g |
     | b d f h |

             2       4
o2 : Matrix R  <--- R
i3 : q = generators gb p

o3 = | g e c a 0     0     0     0     0     0     |
     | h f d b fg-eh dg-ch bg-ah de-cf be-af bc-ad |

             2       10
o3 : Matrix R  <--- R
i4 : C = resolution cokernel leadTerm q

      2      10      14      7      1
o4 = R  <-- R   <-- R   <-- R  <-- R  <-- 0
                                           
     0      1       2       3      4      5

o4 : ChainComplex
i5 : betti C

            0  1  2 3 4
o5 = total: 2 10 14 7 1
         0: 2  4  6 4 1
         1: .  6  8 3 .

o5 : BettiTally

Column j of the top row of the diagram gives the rank of the free module C_j. (Columns are numbered from 0.) The entry in column j in the row labelled i is the number of basis elements of (weighted) degree i+j in the free module C_j. When the chain complex is the resolution of a module the entries are the total and the graded Betti numbers of the module.

If the numbers are needed in a program, then they are accessible, because the value returned is a Betti tally, and the diagram you see on the screen is just the way it prints out.

The heft vector is used, by default, as the weight vector for weighting the components of the degree vectors of basis elements.

i6 : R = QQ[a,b,c,Degrees=>{-1,-2,-3}];
i7 : heft R       

o7 = {-1}

o7 : List
i8 : betti res coker vars R

            0 1 2 3
o8 = total: 1 3 3 1
         0: 1 1 . .
         1: . 1 1 .
         2: . 1 1 .
         3: . . 1 1

o8 : BettiTally
i9 : betti(oo, Weights => {1})

            0 1 2 3
o9 = total: 1 3 3 1
        -9: . . . 1
        -8: . . . .
        -7: . . 1 .
        -6: . . 1 .
        -5: . . 1 .
        -4: . 1 . .
        -3: . 1 . .
        -2: . 1 . .
        -1: . . . .
         0: 1 . . .

o9 : BettiTally
i10 : R = QQ[a,b,c,d,Degrees=>{{1,0},{2,1},{0,1},{-2,1}}];
i11 : heft R       

o11 = {1, 3}

o11 : List
i12 : b = betti res coker vars R

             0 1 2 3 4
o12 = total: 1 4 6 4 1
          0: 1 2 1 . .
          1: . . . . .
          2: . 1 2 1 .
          3: . . . . .
          4: . 1 2 1 .
          5: . . . . .
          6: . . 1 2 1

o12 : BettiTally
i13 : betti(b, Weights => {1,0})

             0 1 2 3 4
o13 = total: 1 4 6 4 1
         -4: . . 1 1 .
         -3: . 1 1 1 1
         -2: . . 1 1 .
         -1: . 1 1 . .
          0: 1 1 1 1 .
          1: . 1 1 . .

o13 : BettiTally
i14 : betti(b, Weights => {0,1})

             0 1 2 3 4
o14 = total: 1 4 6 4 1
         -1: . 1 3 3 1
          0: 1 3 3 1 .

o14 : BettiTally