Macaulay2 » Documentation
Packages » Varieties :: HH^ZZ SumOfTwists
next | previous | forward | backward | up | index | toc

HH^ZZ SumOfTwists -- coherent sheaf cohomology module

Synopsis

Description

The command computes a module over the homogeneous coordinate ring of the variety X which agrees, at least in degrees n greater than or equal to the given d, with the graded module that in degree n is thei-th cohomology group of F(n).

To discard the part of the module M of degree less than d, use the truncate(ZZ,Module) command as truncate(d,M).

Use HH^i(F(>d)) to request the twists strictly greater than n.

Note: use HH^i(F(*)) to try to compute the whole graded module. The computation will fail if the module is not finitely generated.

As a first example we look at the cohomology of line bundles on the projective plane
i1 : X = Proj(QQ[x_0..x_2])

o1 = X

o1 : ProjectiveVariety
i2 : HH^0(OO_X^1(>=0))

                 1
o2 = (QQ[x ..x ])
          0   2

o2 : QQ[x ..x ]-module, free
         0   2
i3 : HH^1(OO_X^1(>=0))

o3 = 0

o3 : QQ[x ..x ]-module
         0   2
i4 : HH^2(OO_X^1(>=-3)) -- this should change to * once implemented

o4 = cokernel {-3} | x_2 x_1 x_0 |

                                                1
o4 : QQ[x ..x ]-module, quotient of (QQ[x ..x ])
         0   2                           0   2
i5 : TruncDual = HH^2(OO_X^1(>=-4))

o5 = cokernel {-4} | x_2 x_1 0   0   x_0  0    0   0   |
              {-4} | 0   0   x_2 x_0 0    x_1  0   0   |
              {-4} | 0   0   0   0   -x_2 -x_2 x_1 x_0 |

                                                3
o5 : QQ[x ..x ]-module, quotient of (QQ[x ..x ])
         0   2                           0   2
i6 : hilbertFunction(-4, TruncDual)

o6 = 3
i7 : hilbertFunction(-3, TruncDual)

o7 = 1

As a second example we compute the H^1 cohomology module T of the Horrocks-Mumford bundle on the projective fourspace. T is an artinian module with Hilbert function (5,10,10,2):
i8 : R = QQ[x_0..x_4];
i9 : a = {1,0,0,0,0}

o9 = {1, 0, 0, 0, 0}

o9 : List
i10 : b = {0,1,0,0,1}

o10 = {0, 1, 0, 0, 1}

o10 : List
i11 : c = {0,0,1,1,0}

o11 = {0, 0, 1, 1, 0}

o11 : List
i12 : M1 = matrix table(5,5, (i,j)-> x_((i+j)%5)*a_((i-j)%5))

o12 = | x_0 0   0   0   0   |
      | 0   x_2 0   0   0   |
      | 0   0   x_4 0   0   |
      | 0   0   0   x_1 0   |
      | 0   0   0   0   x_3 |

              5      5
o12 : Matrix R  <-- R
i13 : M2 = matrix table(5,5, (i,j)-> x_((i+j)%5)*b_((i-j)%5))

o13 = | 0   x_1 0   0   x_4 |
      | x_1 0   x_3 0   0   |
      | 0   x_3 0   x_0 0   |
      | 0   0   x_0 0   x_2 |
      | x_4 0   0   x_2 0   |

              5      5
o13 : Matrix R  <-- R
i14 : M3 = matrix table(5,5, (i,j)-> x_((i+j)%5)*c_((i-j)%5))

o14 = | 0   0   x_2 x_3 0   |
      | 0   0   0   x_4 x_0 |
      | x_2 0   0   0   x_1 |
      | x_3 x_4 0   0   0   |
      | 0   x_0 x_1 0   0   |

              5      5
o14 : Matrix R  <-- R
i15 : M = M1 | M2 | M3;

              5      15
o15 : Matrix R  <-- R
i16 : betti (C=res coker M)

             0  1  2  3  4 5
o16 = total: 5 15 29 37 20 2
          0: 5 15 10  2  . .
          1: .  .  4  .  . .
          2: .  . 15 35 20 .
          3: .  .  .  .  . 2

o16 : BettiTally
i17 : N = transpose submatrix(C.dd_3,{10..28},{2..36});

              35      19
o17 : Matrix R   <-- R
i18 : betti (D=res coker N)

              0  1  2  3  4 5
o18 = total: 35 19 19 35 20 2
         -5: 35 15  .  .  . .
         -4:  .  4  .  .  . .
         -3:  .  .  .  .  . .
         -2:  .  .  .  .  . .
         -1:  .  .  .  .  . .
          0:  .  .  4  .  . .
          1:  .  . 15 35 20 .
          2:  .  .  .  .  . 2

o18 : BettiTally
i19 : Pfour = Proj(R)

o19 = Pfour

o19 : ProjectiveVariety
i20 : HorrocksMumford = sheaf(coker D.dd_3);
i21 : T = HH^1(HorrocksMumford(>=-1))

o21 = cokernel {-1} | x_4 x_2  0   0   x_0  0   0    0    x_3 0   0   0    0   0    x_1 |
               {-1} | 0   -x_3 x_1 0   0    x_4 x_2  0    0   0   0   x_0  0   0    0   |
               {-1} | 0   0    0   x_3 -x_2 x_0 0    x_1  0   0   0   0    0   -x_4 0   |
               {-1} | 0   0    0   0   0    0   -x_4 -x_2 x_1 x_0 x_3 0    0   0    0   |
               {-1} | 0   0    0   0   0    0   0    0    0   0   x_4 -x_3 x_2 x_1  x_0 |

                             5
o21 : R-module, quotient of R
i22 : apply(-1..2, i-> hilbertFunction(i,T))

o22 = (5, 10, 10, 2)

o22 : Sequence

Caveat

The computation will fail if the module is not finitely generated. Also the version HH^i(F(*)) is not yet implemented.

See also

Ways to use this method: