BABY ALGEBRAIC GEOMETRY SEMINAR: AN ALGEBRAIC PROOF OF RIEMANN-ROCH

RAVI VAKIL

Contents

1. Introduction 1 2. Cohomology of sheaves 2 3. Statements of Riemann-Roch and Serre Duality; Riemann-Roch from

Serre Duality 4 4. Proof of Serre duality 5 4.1. Repartitions, I(D), and J(D) 5 4.2. Differentials enter the picture 7 4.3. Proving duality 7 References 8

1. Introduction

I’m going to present an algebraic proof of Riemann-Roch. This is a hefty task, especially as I want to say enough that you can genuinely fill in all the details yourself. There’s no way I can finish in an hour without making this less selfcontained, so what I’ll do is explain a bit about cohomology, and reduce Riemann-Roch to Serre duality. That should be do-able within an hour. Then I’ll give people a chance to leave, and after that I’ll prove Serre duality in the following half-hour.

Also, these notes should help. And you should definitely stop me and ask questions. For example, if I mention something I defined last semester in my class, and you’d like me to refresh your memory as to what the definition was, please ask.

The proof I’ll present is from Serre’s Groupes algébriques et corps de classes, Ch. 2, [S]. I found out this past Tuesday that this proof is originally due to Weil.

Throughout, C is a non-singular projective algebraic curve over an algebraically closed field \overline{k}.

Date: Friday, February 11, 2000.

2. Cohomology of sheaves

Definition. If S is a sheaf on C, define H^{0}(C, S) to be the set of global sections of S over C. If S is an O_{C}-module, then H^{0}(C, S) has the structure of a \overline{k}-vector space. In this situation, define h^{0}(C, S) to be the dimension of H^{0}(X, S) as a vector space. (I made this definition in the last class of last semester.)

I’ll now define H^{1}(C, S) (Cech cohomology), a little loosely. Here again, S is an O_{C}-module. Elements of H^{1}(C, S) are given by the following data. Let U_{1}, …, U_{n} be an open cover of C. Let U_{ij} = U_{i} ∩ U_{j}, U_{ijk} = U_{i} ∩ U_{j} ∩ U_{k} for convenience. Then the data (f_{ij} ∈ H^{0}(U_{ij}, S)) satisfying f_{ij} −f_{jk} +f_{ik} = 0 in H^{0}(U_{ijk}, S) (called a cocycle) gives an element of H^{1}(C, S).

This element is declared to be 0 if there are sections g_{i} ∈ H^{0}(U_{i}, S) such that f_{ij} = g_{i} − g_{j} in H^{0}(U_{ij}, S), and in general 2 cocyles give the same element of H^{1} if their difference is 0.

If you take a finer partition than U_{i}, and take the corresponding cocycle, then this is declared to be the same element of cohomology.

You can clearly add cocyles given using the same covering (describe); and any two coverings have a common refinement, so you can add any two cocycles.

The proper way to define H^{1}(C, S) is to take the direct limit over all coverings.

You can actually define H^{2}, H^{3}, etc. in an analogous way, but we won’t need them here. It is a fact (due to Grothendieck, see [H] Theorem III.2.7 for the pretty proof) that H^{i}(C, S) = 0 for all i > 1 (and more generally if X is a noetherian topological space of dimension n, then for all sheaves of abelian groups S on X and all i > n, H^{i}(X, F) = 0).

Define χ(C, S) = h^{0}(C, S) − h^{1}(C, S). (It would be better to define χ(C, S) = ∑_{i≥0} h^{i}(C, S), but that would make this proof longer.)

Example of a sheaf with no higher cohomology: a constant sheaf. Let G be an abelian group. Suppose \underline{G} is a constant sheaf over C, whose sections over any open set of C is G, with the restriction map being the identity.

Easy Exercise. Check from the definition that H^{1}(C, G) = 0.

Another example: a skyscraper sheaf. If P is a given point of C, define a sheaf \overline{k}_{P} as follows. The sections of \overline{k}_{P} over U (i.e. \overline{k}_{P} (U)) are 0 if P ∉ U, and \overline{k} if P ∈ U. This is clearly a sheaf. We make it an O_{C}-module in the only reasonable way we could: any section of O_{C}(U) (i.e. function on U) has a value at P, so the action of this section on the vector space \overline{k} = \overline{k}_{P} (U) is multiplication by this value.

We immediately have H^{0}(C, \overline{k}_{P}) = \overline{k}.

Easy Exercise. H^{1}(C, S) = 0.

Hence χ(\overline{k}_{P}) = h^{0}(C, \overline{k}_{P}) − h^{1}(C, \overline{k}_{P}) = 1 − 0 = 1.

Short exact sequences of sheaves. Suppose F, G, H are sheaves of O_{C}- modules on C. A morphism of sheaves F → G is given by morphisms F (U) → G(U) that agree with restriction maps:

F (U) → G(U)
↓  ↓
F (V) → G(V)

commutes. It is easy to check that a morphism of sheaves induces morphisms of all the stalks. Then we say that F → G → H is exact at G if the morphism of stalks is exact. (This isn’t the best way to say it, but it’ll work.)

Lemma/Exercise. Suppose 0 → F → G → H → 0 is a short exact sequence of sheaves of O_{C}-modules on C. Then the following sequence is exact.

0 → H^{0}(C, F) → H^{0}(C, G) → H^{0}(C, H) → H^{1}(C, F) → H^{1}(C, G) → H^{1}(C, H).

This just involves diagram chasing. As you have probably guessed, this sequence continues with H^{2}’s etc.

Example: an important short exact sequence of sheaves.

Let P be some point on C. Let O_{C}(−P) be the sheaf of functions vanishing on P; in other words, sections of O_{C}(−P) over an open set U are those functions on U vanishing on P.

Then there is a short exact sequence of sheaves

0 → O_{C}(−P) → O_{C} → \overline{k}_{P} → 0.

(Describe the morphisms.)

Similarly, if L is any invertible sheaf, there is a short exact sequence of sheaves

0 → L(−P) → L → \overline{k}_{P} → 0.

Again, sections of L(−P) over an open set U are sections of L that vanish at P.

We played around with these objects a fair bit in class, and we saw for example that L(−P) was an invertible sheaf too.

Taking the long exact sequence associated to that short exact sequence, we get:

0 → H^{0}(C, L(−P)) → H^{0}(C, L) → H^{0}(C, \overline{k}_{P})
→ H^{1}(C, L(−P)) → H^{1}(C, L) → H^{1}(C, \overline{k}_{P}) = 0.

In particular, χ(C, L(−P)) = χ(C, L) − χ(C, \overline{k}_{P}) = χ(C, L) − 1.

Lemma (Cheap Riemann-Roch). χ(C, L) = χ(C, O_{C}) + deg(L). Written explicitly (with L = O_{C}(D)):

h^{0}(C, O(D)) − h^{1}(C, O(D)) = d + 1 − h^{1}(C, O_{C}).

We’ll use this later in the proof of Serre duality.

Proof. Remember that every invertible sheaf was of the form O_{C}(p_{1} + ⋯ + p_{a} − q_{1} − ⋯ − q_{b}) for some points p_{1}, …, q_{b}, where a − b = deg L. Then just do it by induction on a + b. (Do the first step for them.)

That’s it for the background.

3. Statements of Riemann-Roch and Serre Duality; Riemann-Roch from Serre Duality

Recall the invertible sheaf of differentials Ω^{1}.

The Riemann-Roch Theorem (for nonsingular projective algebraic curves over an algebraically closed field). L a degree d invertible sheaf on C. Then h^{0}(C, L) − h^{0}(C, Ω^{1} ⊗ L^{∨}) = d − g + 1.

I’ll assume that you have some idea as to why this is such an incredibly important result. It is actually just the smallest case of important Riemann-Roch-type theorems. The hard part of the proof requires:

Serre duality (curve case). There is a natural perfect pairing H^{0}(C, Ω^{1} ⊗ L^{∨}) × H^{1}(C, L) → \overline{k}. Hence h^{1}(C, L) = h^{0}(C, Ω^{1} ⊗ L^{∨}).

The form we will prove is: there is a natural perfect pairing H^{0}(C, Ω_{C}^{1}(−D)) × H^{1}(C, O_{C}(D)) → \overline{k} (leave on board).

Proving Riemann-Roch using Serre duality. Recall that genus g of C was defined as g = h^{0}(C, Ω_{C}^{1}).

h^{0}(C, L) − h^{0}(C, Ω^{1} ⊗ L^{∨}) = h^{0}(C, L) − h^{1}(C, L)
= χ(C, L)
= d + χ(C, O_{C})
= d + h^{0}(C, O_{C}) − h^{1}(C, O_{C})
= d + 1 − h^{0}(C, Ω_{C}^{1})
= d + 1 − g.

So we’re left with proving Serre duality.

Let people leave!

4. Proof of Serre duality

4.1. Repartitions, I(D), and J(D). I’ve divided the proof into several parts. I think this first section is the hardest, so if it gets heavy, don’t lose heart! The main idea of this proof is to interpret H^{1}(C, O(D)) in the language of repartitions, or adeles. These are quite strange objects the first time you see them!

A repartition is an indexed set {r_{P} }_{P ∈C} where r_{P} is an element of k(C), and r_{P} ∈ O_{P} for all but finitely many P. This is a (hideously huge) ring; call it R. Notice that k(C) is naturally a subring of R (recall that an element of k(C) is regular at all but finitely many points of C). R is also a k(C)-algebra.

If D is a divisor on C, define R(D) as the (additive) subgroup of repartitions consisting of {r_{P} }_{P ∈C} where v_{P} (r_{P}) + v_{P} (D) ≥ 0. (This is analogous to O_{C}(D) being the sheaf of rational functions where, at each point, the valuation of the function plus the valuation of D is non-negative.) Note that if D′ ≥ D then that R(D) ⊂ R(D′); informally, “the bigger D is, the bigger R(D) is”.

(Pause for questions.)

Proposition. I(D) := H^{1}(C, O_{C}(D)) ≅ \frac{R}{R(D)+k(C)} (canonically). (Write I(D) with Serre duality statement.)

Proof. Let \underline{k(C)} be the constant sheaf whose sections are k(C). There’s a natural injection O_{C}(D) ↪ \underline{k(C)}; let S be the cokernel.

We have a short exact sequence

0 → O_{C}(D) → \underline{k(C)} → S → 0

so we have the long exact sequence in cohomology, which gives us:

k(C) → H^{0}(C, S) → H^{1}(C, O_{C}(D)) → H^{1}(C, \underline{k(C)}) = 0

To complete the proof of the proposition, we just need to check that the global sections of S are R/R(D).

To do this, we’ll need to know what a quotient sheaf really is; I didn’t do it in my class, but I think those who are taking Johan’s followup class may have seen it.

The stalk S_{P} of S at a point P is the quotient of the stalks of \underline{k(C)} by stalks of O_{C}(D), which is k(C) modulo those functions with valuation at P at least −v_{P} (D). This is the “P -part” of R/R(D), and R/R(D) = ⊕_{P} S_{P}. Let T_{P} be the skyscraper sheaf at P, with values in this stalk S_{P}. We’ll soon see that S = ⊕_{P} S_{P}. In other words, a section of S is a selection of values of S_{P} over all P, where almost all choices are 0. Then you can check that the global sections of S are indeed ⊕_{P} S_{P} = R/R(D).

The way we’ll check that S really is the direct sum of skyscraper sheaves, is by showing that if you’re given a point P ∈ C, and a local section s of S defined on a neighborhood U, there is a smaller neighborhood U′ such that the section s vanishes on U′ \ P. This proof is getting long, so perhaps this last statement is best left as an exercise: given a section s in the stalk of S_{P}, it has a lift (in some neighbourhood) to a section s′ of \underline{k(C)}, and this lift is an element of k(C). Let U′ be a smaller neighbourhood of P away from {supp D \ P } and also { the poles of s′ \ P }.

That was the first of two tricky parts.

Define J(D) := I(D)^{∗} = (R/(R(D)+k(C)))^{∗}. (Add to Serre duality statement.) An element of J(D) is a linear form on R, that is 0 on R(D) and k(C). Now if D′ ≥ D, R(D) ⊂ R(D′), so J(D′) ⊂ J(D). Let J := ∪_{D}J(D). (Elements of J are linear functionals on R that vanish on k(C), and also on some R(D).)

We next show that J is a k(C)-vector space. Suppose f ∈ k(C), α ∈ J. Consider fα : R → \overline{k}, r ↦ ⟨α, fr⟩. This is a linear functional on R, vanishing on k(C). If α ∈ J(D), and (f) = Δ then fα vanishes on R(D − Δ) (r ∈ R(D − Δ) ⇒ fr ∈ R(D) ⇒ ⟨α, fr⟩ = 0), so it belongs to J(D − Δ), and hence it belongs to J. Hence (f, α) → fα gives J the structure of a k(C)-vector space.

Proposition. dim_{k(C)} J ≤ 1.

Proof. (I’ll skip this argument if I’m short on time, which I likely will be.) Otherwise, suppose α and α′ are 2 elements of J that are linearly independent (over k(C)). Suppose α, α′ ∈ J(D), and let d = deg(D). Suppose Δ_{n} is any divisor of degree n (with n to be declared later, large enough to give a contradiction). Then for any f ∈ H^{0}(C, O(Δ_{n})), fα ∈ J(D − Δ_{n}), by the argument above, and ditto with f replaced by g and α replaced by α′. Now as α and α′ are linearly independent over k(C), we know that fα + gα′ = 0 ⇒ f = g = 0. Thus the map

(f, g) ↦ fα + gα′

is an injection of the direct sum H^{0}(C, O(Δ_{n})) ⊕ H^{0}(C, O(Δ_{n})) into J(D − Δ_{n}), so we have the inequality dim\overline{k} J(D − Δ_{n}) ≥ 2h^{0}(C, O(Δ_{n})).

Now let’s estimate both sides.

The left side is dim I(D − Δ_{n}) = H^{1}(C, O_{C}(D − Δ_{n})). By “cheap” Riemann-Roch, this is H^{0}(C, O_{C}(D − Δ_{n})) − (d − n) + constant = n + constant if we pick n big enough so the degree d − n of D − Δ_{n} is negative. (By constant, I mean that it doesn’t depend on n or Δ_{n}.)

By cheap Riemann-Roch, the right side is twice at least deg(Δ_{n}) + constant, which is at least 2n + constant. When n is chosen to be huge, there’s no way in which the left side can be bigger than the right.

That was the second tricky point.

4.2. Differentials enter the picture. Recall the invertible sheaf of differentials Ω_{C}^{1}; also the invertible sheaf Ω_{C}^{1}(D). Let M be the set of meromorphic differentials; note that it is a one-dimensional k(C)-vector space. Recall that one can define a residue map res_{P} : M → \overline{k}. It vanishes on any differential that has no pole at P.

Definitions / Proofs that res_{P} is well-defined. 1) If \overline{k} = ℂ, you can use the complex analytic definition and proof. 2) Otherwise, you can write it locally as (a_{−n}/t^{n} + ⋯ + a_{−1}/t)dt+ something regular, where t is a uniformizing parameter, define the residue as a_{−1}, and show that this definition is independent of t. If the characteristic is 0, this latter step isn’t too hard, but if the characteristic is positive, it can be tricky; see [S] for a proof, and [T] for a nicer proof.

Kiran also told me a slick proof that a_{−1} is indepenendent of choice of uniformizer t that I’ll put in the notes: the fact that ∑_{i=−n}^{−1} a_{n}t^{n}dt has the same (-1)-coefficient as ∑_{i=−n}^{−1} b_{n}u^{n}du for t = u + ∑_{k=2}^{∞} c_{k}u^{k} is (for a fixed choice of the pole order of the differential in question) a polynomial identity in the a’s and b’s with coefficients in ℤ. It holds identically over ℂ by the analytic proof 1), so it holds in every field.

Residue Theorem. For every meromorphic differential ω ∈ M, ∑_{P ∈C} res_{P} (ω) = 0.

Proofs. 1) If \overline{k} = ℂ, Stokes’ theorem works. 2) In characteristic 0, it isn’t hard.

3) In positive characteristic, see [S] or [T].

4.3. Proving duality. For every meromorphic differential ω ∈ M, define the divisor (ω) = ∑_{P ∈C} v_{P} (ω)P, so Ω^{1}(−D) is “the sheaf of differentials satisfying (ω) ≥ D”. Next define a pairing ⟨ω, r⟩ between meromorphic differentials ω and repartitions r given by ⟨ω, r⟩ = ∑_{P ∈C} res_{P} (r_{P} ω). (This is well-defined — only a finite number of terms in the sum are non-zero.)

Note that:

a) ⟨ω, r⟩ = 0 if r ∈ k(C) (Residue theorem).

b) ⟨ω, r⟩ = 0 if r ∈ R(D) and ω ∈ H^{0}(C, Ω^{1}(−D)) (as then r_{P} ω has no pole at P for all P ∈ C).

c) If f ∈ k(C), then ⟨fω, r⟩ = ⟨ω, fr⟩. (Both are ∑_{P ∈C} res_{P} (fωr).)

Hence for each differential ω in H^{0}(C, Ω^{1}(−D)), this defines a linear functional θ(ω) on R/(R(D) + k(C)). θ : H^{0}(C, Ω^{1}(−D)) → J(D). (Also θ : M → J.)

Lemma. If ω is a meromorphic differential such that θ(ω) ∈ J(D), then ω ∈ Ω^{1}(−D).

Proof. Otherwise, assume ω ∉ Ω^{1}(D). We’ll get a contradiction, and find an element of R(D) that θ(ω) doesn’t kill.

There’s some point P ∈ C such that v_{P} (ω) < v_{P} (−D) (i.e. ω has a bigger pole than allowed by D). Define a repartition r ∈ R(D) by r_{Q} = 0 for Q ≠ P, and r_{P} = 1/t^{v_{P} (ω)+1} (where t is some uniformizer). Then as v_{P} (r_{P} ω) = −1, ⟨ω, r⟩ = ∑_{Q} res(r_{Q}ω) ≠ 0, proving the lemma.

Theorem (Serre duality). θ gives an isomorphism from H^{0}(C, Ω^{1}(−D)) to J(D) = H^{1}(C, O_{C}(D))^{∗}.

Proof. First, θ is injective. Reason: if θ(ω) = 0, then by the lemma, ω ∈ Ω(−Δ) for every Δ, so ω = 0. (Explain.)

Next, θ is surjective. By c), θ is a k(C)-linear map from M to J. As M has dimension 1 (as a k(C)-vector space), and J has dimension at most 1 (earlier Proposition), we get surjectivity.

That’s it! The proof at first appears to be sleight of hand, but there’s a lot going on under the surface that one eventually finds quite enlightening.

I hope you’re not too shelshocked; if there are any parts of the argument I can elaborate on, please let me know. Thank you!

References

[F] W. Fulton, Algebraic curves. He gives a low-tech proof, but I didn’t find it enlightening. (The first five chapters are great.)

[H] R. Hartshorne, Algebraic geometry. His proof of duality is quite general, but you don’t need that big machinery if you’re just dealing with curves.

[S] J.-P. Serre, Groupes algébriques et corps de classes, see esp. Ch. II (on algebraic curves), pp. 17–35, and 76–81. Serre is, of course, a god. Caution: his Ω^{1}(D) is what people would now call Ω^{1}(−D).

[T] J. Tate, Residues of differentials on curves, Ann. Scient. Éc. Norm. Sup., 4e série, t. 1, 1968, 149–159. He gives a nice characteristic-free definition of residues of differentials on curves. His proof of invariance of the definition (in positive characteristic) is an improvement on [S].