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

HH^ZZ SumOfTwists -- coherent sheaf cohomology module

Description

Given a coherent sheaf F on a projective variety $X$, the notation F(>=d) creates an object representing the sum of twists $\bigoplus_{a=d}^\infty\mathcal F(a)$.

This command computes a graded module $M$ over the homogeneous coordinate ring of the variety $X$ such that the graded component $M_a$ for $a\geq d$ is isomorphic to the cohomology group HH^i(F(a)).

To discard the part of the module $M$ of degree less than $d$, truncate the module with truncate(d, M).

Use HH^i(F(>d)) to compute the cohomology of the twists strictly greater than $d$ and HH^i(F(*)) to try to compute the whole graded module. When $i=0$, this is known as the module of twisted global sections $$ \Gamma_*(\mathcal F) = \bigoplus_{a\in\mathbf Z}(X, \mathcal F(a)).$$ Note that this 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, which 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 of HH^0(F(*)) will fail if the module is not finitely generated. Also the version HH^i(F(*)) for $i>0$ is not yet implemented.

See also

Ways to use this method:

  • HH^ZZ SumOfTwists -- coherent sheaf cohomology module
  • HH^ZZ(ProjectiveVariety,SumOfTwists)

The source of this document is in Varieties/doc-functors.m2:600:0.