Riemann–Roch theorem for surfaces

The classical form of it was first given by Castelnuovo (1896, 1897), after preliminary versions of it were found by Max Noether (1886) and Enriques (1894).

One form of the Riemann–Roch theorem states that if D is a divisor on a non-singular projective surface then where χ is the holomorphic Euler characteristic, the dot .

The constant χ(0) is the holomorphic Euler characteristic of the trivial bundle, and is equal to 1 + pa, where pa is the arithmetic genus of the surface.

Noether's formula states that where χ=χ(0) is the holomorphic Euler characteristic, c12 = (K.K) is a Chern number and the self-intersection number of the canonical class K, and e = c2 is the topological Euler characteristic.

, so the Hirzebruch–Riemann–Roch theorem states that Fortunately this can be written in a clearer form as follows.

First putting D = 0 shows that For invertible sheaves (line bundles) the second Chern class vanishes.

The products of second cohomology classes can be identified with intersection numbers in the Picard group, and we get a more classical version of Riemann Roch for surfaces: If we want, we can use Serre duality to express h2(O(D)) as h0(O(K − D)), but unlike the case of curves there is in general no easy way to write the h1(O(D)) term in a form not involving sheaf cohomology (although in practice it often vanishes).

The earliest forms of the Riemann–Roch theorem for surfaces were often stated as an inequality rather than an equality, because there was no direct geometric description of first cohomology groups.

A typical example is given by Zariski (1995, p. 78), which states that where The difference between the two sides of this inequality was called the superabundance s of the divisor D. Comparing this inequality with the sheaf-theoretic version of the Riemann–Roch theorem shows that the superabundance of D is given by s = dim H1(O(D)).

The divisor D was called regular if i = s = 0 (or in other words if all higher cohomology groups of O(D) vanish) and superabundant if s > 0.