Macaulay2 » Documentation
Packages » Macaulay2Doc > modules > Hilbert functions and free resolutions > betti
next | previous | forward | backward | up | index | toc

betti -- display or modify a Betti diagram

Synopsis

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:

i, the column labels, representing the homological degree;

d, a list of integers giving a multidegree; and

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: .          . a*b+a^(-2)*b^2           .     .
       5: .      a^2*b              .  a^(-1)*b^2     .
       6: .          .      a^3*b+b^2           .     .
       7: .          .              .       a*b^2     .
       8: .          .        a^2*b^2           .     .
       9: .          .              . a^3*b^2+b^3     .
      10: .          .              .           . a*b^3

o15 : MultigradedBettiTally

Betti table of a Groebner basis

  • Usage:
    betti G
  • Inputs:
  • Outputs:
    • a Betti tally, 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:
  • Outputs:
    • a Betti tally, 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

  • Usage:
    betti M
  • Inputs:
  • Outputs:
    • a Betti tally, 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

Also see betti(CoherentSheaf) (missing documentation) .

Betti diagram showing the degrees of generators of a homogeneous ideal

  • Usage:
    betti I
  • Inputs:
  • Outputs:
    • a Betti tally, 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

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.

See also

Ways to use betti :

For the programmer

The object betti is a method function with options.

Menu