This chapter describes the Magma functionality for working with coherent sheaves on ordinary projective schemes. The emphasis in this initial version is on invertible sheaves and on computing associated cohomological invariants and explicit divisor maps. Important examples include canonical and anticanonical maps and adjunction maps on varieties of arbitrary dimension. The tools provided in Magma enable the user to compute these in a general and reasonably efficient way. There is also functionality for computing an invertible sheaf corresponding to the class of an effective Cartier divisor given as a closed subscheme as well as a basis for the Riemann-Roch space of that divisor as ambient rational functions. The correspondence between divisors (or their classes) and invertible sheaves will be expanded in later releases. A standard reference for the definition and basic properties of coherent sheaves on Noetherian schemes is Section 5, Chapter II of [Har77].
The package is based on Magma's functionality for graded modules over polynomial rings and relies heavily on Gr{öbner basis computations. A coherent sheaf is represented by a graded module over the coordinate ring of the ambient projective space. The key difference between the category of sheaves and the category of modules is that a sheaf is not represented uniquely. However, there is a unique maximal graded module representing it, which is finitely generated (with certain provisos). For certain algorithms -- computing cohomology, for example -- any module representing the sheaf may be used. However for other calculations, such as explicit Riemann-Roch spaces or divisor maps, the full maximal module, containing the full space of global sections of the sheaf and its small Serre twists, is often required.
One of the basic operations, therefore, is the computation of the maximal module of a sheaf from its initial defining module. We have tried to do this efficiently in reasonable generality. The basic condition is that the support of the sheaf has irreducible components all of the same non-zero dimension. This will be described in more detail in the function descriptions that follow. The user does not have to explicitly make a call to perform the computation, but it may be carried out in the background and the result stored by several other functions.
A coherent sheaf Para is defined by a graded module M over the polynomial ring R = k[x0, ..., xn] and a subscheme X of Prjn = Proj(R) on which M is supported. That is, the defining ideal I ⊆R of X annihilates M. In some contexts, X is unimportant and it doesn't matter whether Para is thought of as a sheaf on X or on Prjn. In other cases, X plays a role: we can test whether Para is locally free as a sheaf on X or take its dual. The sheaf Para is just the coherent sheaf tilde(M) on X as described in Prop. 5.11, Section 5, Chapter II of [Har77], with M considered as a graded module over the homogeneous coordinate ring of X.
Sheaves are of type ShfCoh. There is also a type ShfHom for homomorphisms between sheaves supported on the same scheme X.
The algorithms used in the package are based on a number of computational commutative algebra tricks well-known to the experts.