# betti -- display or modify a Betti diagram

## Synopsis

• Usage:
betti M
• Optional inputs:
• Minimize => ..., default value false, minimal betti numbers of a non-minimal free resolution
• Weights => ..., default value null, view and set the weight vector of a Betti diagram

## Description

The function betti creates and displays the Betti diagram of mathematical objects that can be presented using graded free modules and graded maps between them, such as ideals, modules, and chain complexes. The returned BettiTally encapsulates the data from the entries of the displayed Betti diagram, in case they are needed in a program.

 i1 : S = QQ[x,y,z,w]; i2 : I = monomialCurveIdeal(S, {1,2,3}) 2 2 o2 = ideal (z - y*w, y*z - x*w, y - x*z) o2 : Ideal of S i3 : t = betti res I 0 1 2 o3 = total: 1 3 2 0: 1 . . 1: . 3 2 o3 : BettiTally i4 : peek oo o4 = BettiTally{(0, {0}, 0) => 1} (1, {2}, 2) => 3 (2, {3}, 3) => 2 i5 : t#(1, {2}, 2) o5 = 3

The keys are triples (i,d,h) encoding:

### h, the row labels, representing the dot product of a weight covector and d.

Only i and h are used in printing, and the weight covector can be modified by specifying the betti(...,Weights=>...) option. The heft vector of the ring of the input object is the default choice for the weight covector.

 i6 : R = QQ[a,b,c, Degrees => {-1,-2,-3}]; i7 : heft R o7 = {-1} o7 : List i8 : betti koszul 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

If the ring has no heft vector, then the weights vector is taken to be all zero. If the option betti(...,Weights=>...) is provided, the length of the given weight vector should be the same as the degree length of the ring of the input object.

 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

If the ring is multigraded, the function multigraded(BettiTally) may be used to extract information from all degree components of the Betti diagram at once.

 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 i15 : multigraded b 0 1 2 3 4 o15 = 0: 1 . . . . 1: . a+a^(-2)b . . . 2: . . a^(-1)b . . 3: . b . . . 4: . . ab+a^(-2)b2 . . 5: . a2b . a^(-1)b2 . 6: . . a3b+b2 . . 7: . . . ab2 . 8: . . a2b2 . . 9: . . . a3b2+b3 . 10: . . . . ab3 o15 : MultigradedBettiTally

## Betti table of a Groebner basis

• Usage:
betti G
• Inputs:
• G, ,
• Weights => ...
• Outputs:
• , a diagram showing the degrees of the generators of the source and target modules of the matrix of generators of G
 i16 : S = ZZ/10007[x,y]; i17 : G = gb ideal(x^3+y^3, x*y^4); i18 : gens G o18 = | x3+y3 xy4 y7 | 1 3 o18 : Matrix S <--- S i19 : betti G 0 1 o19 = total: 1 3 0: 1 . 1: . . 2: . 1 3: . . 4: . 1 5: . . 6: . 1 o19 : BettiTally

## Betti diagram showing the degrees of the target and source of a map

• Usage:
betti f
• Inputs:
• f, ,
• Weights => ...
• Outputs:
• , a diagram showing the degrees of the generators of the source and target modules of f

The diagram ignores the degree of the map itself.

 i20 : S = ZZ/10007[x,y]; i21 : betti matrix {{x^3, x*y^2}, {y*x, y^2}} 0 1 o21 = total: 2 2 0: 2 . 1: . . 2: . 2 o21 : BettiTally

## Betti diagram showing the degrees of generators and relations of a homogeneous module or coherent sheaf

• Usage:
betti M
• Inputs:
• M, or ,
• Weights => ...
• Outputs:
• , showing the zero-th, first graded, and total Betti numbers of $M$.

Note that the Betti numbers are not minimized.

 i22 : S = ZZ/10007[x,y]; i23 : betti coker matrix{{x^3, x*y^2}, {y*x^2, y^3}} 0 1 o23 = total: 2 2 0: 2 . 1: . . 2: . 2 o23 : BettiTally i24 : betti coker map(S^{0,-1}, , matrix{{x^2, y}, {y^3, x^2}}) 0 1 o24 = total: 2 2 0: 1 . 1: 1 . 2: . 1 3: . 1 o24 : BettiTally

## Betti diagram showing the degrees of generators of a homogeneous ideal

• Usage:
betti I
• Inputs:
• I, an ideal or ,
• Weights => ...
• Outputs:
• , showing the degrees of the generators and relations of the quotient of the ambient ring by $I$

Note that the Betti numbers are not minimized.

 i25 : S = ZZ/10007[x,y]; i26 : I = ideal(x,x^2,y^3); o26 : Ideal of S i27 : betti I 0 1 o27 = total: 1 3 0: 1 1 1: . 1 2: . 1 o27 : BettiTally i28 : betti comodule I 0 1 o28 = total: 1 3 0: 1 1 1: . 1 2: . 1 o28 : BettiTally

## Betti diagram showing the of degrees in a graded module or chain complex

• Usage:
betti C
• Inputs:
• C, or ,
• Weights => ...
• Minimize => ...
• Outputs:
• , showing the degrees of the generators of the modules in C

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.

 i29 : R = ZZ/101[a..h] o29 = R o29 : PolynomialRing i30 : p = genericMatrix(R,a,2,4) o30 = | a c e g | | b d f h | 2 4 o30 : Matrix R <--- R i31 : q = generators gb p o31 = | 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 o31 : Matrix R <--- R i32 : C = resolution cokernel leadTerm q 2 10 14 7 1 o32 = R <-- R <-- R <-- R <-- R <-- 0 0 1 2 3 4 5 o32 : ChainComplex i33 : betti C 0 1 2 3 4 o33 = total: 2 10 14 7 1 0: 2 4 6 4 1 1: . 6 8 3 . o33 : BettiTally

Column j of the top row of the diagram gives the rank of the free module C_j. 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.

• minimalBetti -- minimal betti numbers of (the mininimal free resolution of) a homogeneous ideal or module
• multigraded -- convert a Betti tally into a multigraded Betti tally
• regularity -- compute the Castelnuovo-Mumford regularity
• pdim -- calculate the projective dimension

## Ways to use betti :

• "betti(ChainComplex)"
• "betti(CoherentSheaf)"
• "betti(GroebnerBasis)"
• "betti(Ideal)"
• "betti(Matrix)"
• "betti(Module)"
• "betti(MonomialIdeal)"
• betti(BettiTally) -- view and set the weight vector of a Betti diagram

## For the programmer

The object betti is .