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

## Synopsis

• Usage:
betti C
• Function: betti
• Inputs:
• C,
• Optional inputs:
• Weights => a list, default value null, a list of integers whose dot product with the multidegree of a basis element is enumerated in the display returned. The default is the heft vector of the ring. See heft vectors.
• Minimize => ..., -- minimal betti numbers of a non-minimal free resolution
• Outputs:
• , a diagram showing the degrees of the generators of the modules in C

## 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 , 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```