# coherent sheaves

The main reason to implement algebraic varieties is support the computation of sheaf cohomology of coherent sheaves, which doesn't have an immediate description in terms of graded modules.

In this example, we use cotangentSheaf to produce the cotangent sheaf on a K3 surface and compute its sheaf cohomology.

 i1 : R = QQ[a,b,c,d]/(a^4+b^4+c^4+d^4); i2 : X = Proj R o2 = X o2 : ProjectiveVariety i3 : Omega = cotangentSheaf X o3 = cokernel {2} | c 0 0 d 0 a3 b3 0 | {2} | a d 0 0 b3 -c3 0 0 | {2} | -b 0 d 0 a3 0 c3 0 | {2} | 0 b a 0 -d3 0 0 c3 | {2} | 0 -c 0 a 0 -d3 0 b3 | {2} | 0 0 -c -b 0 0 d3 a3 | 6 o3 : coherent sheaf on X, quotient of OO (-2) X i4 : HH^1(Omega) 20 o4 = QQ o4 : QQ-module, free
Use the function sheaf to convert a graded module to a coherent sheaf, and module to get the graded module back again.
 i5 : F = sheaf coker matrix {{a,b}} o5 = cokernel | a b | 1 o5 : coherent sheaf on X, quotient of OO X i6 : module F o6 = cokernel | a b | 1 o6 : R-module, quotient of R