If M is a bigraded module over a bigraded polynomial ring representing a sheaf F on Pn1 x Pn2, the script returns a block of the cohomology table, represented as a table of "cohomology polynomials" in ℤ[h,k] of the form
in each position {c1,c2}for a1 ≤c1 ≤b1 and a2 ≤c2 ≤b2. In case M corresponds to an object in the derived category Db(Pn1x Pn2), then hypercohomology polynomials are returned, with the convention that k stands for k=h -1.
The polynomial for {b1,b2}sits in the north-east corner, the one corresponding to (a1,a2) in the south-west corner.
In the case of a product of more (or fewer) projective spaces, or if a hash table output is desired, use cohomologyHashTable or eulerPolynomialTable instead.
The script computes a sufficient part of the Tate resolution for F, and then calls itself in the version for a Tate resolution. More generally, If T is part of a Tate resolution of F the function returns a matrix of cohomology polynomials corresponding to T.
If T is not a large enough part of the Tate resolution, such as W below, then the function collects only the contribution of T to the cohomology table of the Tate resolution, according to the formula in Corollary 0.2 of Tate Resolutions on Products of Projective Spaces.
i1 : (S,E) = productOfProjectiveSpaces{1,2}
o1 = (S, E)
o1 : Sequence
|
i2 : M = S^1
1
o2 = S
o2 : S-module, free
|
i3 : low = {-3,-3};high={0,0};
|
i5 : cohomologyMatrix(M,low,high)
o5 = | 2h h 0 1 |
| 0 0 0 0 |
| 0 0 0 0 |
| 2h3 h3 0 h2 |
4 4
o5 : Matrix (ZZ[h, k]) <--- (ZZ[h, k])
|
As a second example, consider the structure sheaf OE of a nonsingular cubic contained in (point)xP2. The corresponding graded module is
i6 : M = S^1/ideal(x_(0,0), x_(1,0)^3+x_(1,1)^3+x_(1,2)^3)
o6 = cokernel | x_(0,0) x_(1,0)^3+x_(1,1)^3+x_(1,2)^3 |
1
o6 : S-module, quotient of S
|
i7 : low = {-3,-3};high={0,0};
|
i9 : cohomologyMatrix(M,low,high)
o9 = | h+1 h+1 h+1 h+1 |
| 3h 3h 3h 3h |
| 6h 6h 6h 6h |
| 9h 9h 9h 9h |
4 4
o9 : Matrix (ZZ[h, k]) <--- (ZZ[h, k])
|
and the "1+h" in the Northeast (= upper right) corner signifies that that h0(OE) = h1(OE) = 1.