Divisors: bookkeeping for zeros and poles
Guide 1 of this rung gave us a compact Riemann surface X of genus g, and taught us to read a meromorphic function f by the order ord_p(f) it has at each point p — positive at a zero, negative at a pole, zero elsewhere. The grand fact we proved there is that on a compact surface a nonconstant f has exactly as many zeros as poles, counted with order. The natural way to record all that local data at once is a divisor: a finite formal integer combination of points, D = sum n_p [p], where n_p is an integer and only finitely many are nonzero. Think of a divisor as a ledger that assigns an order to each point and zero to all but finitely many.
Two divisors built from functions matter most. Any nonzero meromorphic f has a principal divisor div(f) = sum_p ord_p(f) [p], recording all its zeros (with multiplicity) minus all its poles. The compact-surface theorem from Guide 1 now reads cleanly: the degree of a divisor, deg(D) = sum n_p, satisfies deg(div(f)) = 0 for every nonconstant f. So principal divisors always have degree zero — that single sentence is the entire content of 'zeros equal poles'. We also order divisors: write D >= 0 (an effective divisor) when every coefficient n_p >= 0, and D' >= D when D' - D >= 0.
Now the central object. To a divisor D attach the vector space of meromorphic functions whose poles are bounded by D, written L(D) = { f : div(f) + D >= 0 } together with the zero function. Unpack the inequality at a point p: if n_p > 0 the function is ALLOWED a pole of order up to n_p there; if n_p < 0 the function is REQUIRED to vanish to order at least |n_p|; if n_p = 0 the function must be holomorphic at p. So D is a permit slip — it licenses poles where its coefficients are positive and demands zeros where they are negative. The dimension of this finite-dimensional complex vector space is written l(D) = dim L(D), and computing l(D) is the question Riemann-Roch answers.
Linear equivalence and the degree invariant
Two divisors D and D' are linearly equivalent, written D ~ D', when their difference is principal: D - D' = div(f) for some meromorphic f. This is the natural equivalence because it leaves L(D) essentially unchanged — multiplying by that f gives a vector-space isomorphism L(D) -> L(D'), so l(D) = l(D'). And since principal divisors have degree zero, linearly equivalent divisors always share the same degree. Degree is therefore the first invariant of a divisor class, and l(D) is the second; Riemann-Roch is the bridge between them.
A few small consequences sharpen the intuition. If deg(D) < 0 then L(D) = {0}, so l(D) = 0: a nonzero f in L(D) would give div(f) + D >= 0, hence deg(div(f) + D) = deg(D) >= 0, contradiction. At the other end, on the genus-0 surface — the Riemann sphere CP^1 — every divisor of degree d >= 0 has l(D) = d + 1, because L(d[infinity]) is spanned by 1, z, z^2, ..., z^d, the polynomials of degree at most d. That tidy formula l(D) = deg(D) + 1 is the genus-0 face of Riemann-Roch; for higher genus a correction term appears, and naming it is the work of the next section.
Holomorphic differentials and the canonical class
Functions are not the only meromorphic objects on X; there are also meromorphic 1-forms. In a local coordinate z a such a form looks like omega = h(z) dz with h meromorphic, and the key check is that orders transform correctly under a coordinate change w = w(z): because dz = (dz/dw) dw, the orders ord_p(omega) of a 1-form are well defined independently of coordinate. So a meromorphic 1-form omega has its own divisor div(omega) = sum_p ord_p(omega) [p]. A holomorphic differential is one with no poles, div(omega) >= 0; on a compact surface the space of these has dimension exactly g, the genus — this is one of the clean facts from Guide 1, and it is the analytic incarnation of the genus.
Here is the beautiful collapse. Any two nonzero meromorphic 1-forms differ by a meromorphic function: omega' = f omega, so div(omega') = div(f) + div(omega), which means div(omega') ~ div(omega). All meromorphic 1-forms therefore have linearly equivalent divisors, and that single linear-equivalence class is the canonical class, written K. It is the most important divisor class on the surface, and it is intrinsic — it depends only on X, not on any choice of form. Its degree is forced by Guide 1's genus story: deg(K) = 2g - 2. On the sphere (g = 0) that is -2, matching div(dz) = -2[infinity]; on a torus (g = 1) it is 0, matching the nowhere-zero, nowhere-pole form dz on C/Lambda.
Why call attention to K? Because it secretly encodes the holomorphic differentials, and Riemann-Roch will use it as the exact correction term that genus-0 lacked. Notice already that l(K) = g: a function f in L(K) means div(f) + div(omega) >= 0 for a fixed reference form omega, i.e. f omega is a holomorphic differential, so L(K) is isomorphic to the g-dimensional space of holomorphic differentials. So the canonical class is the divisor whose linear system IS the holomorphic differentials. Keep both numbers in view — deg(K) = 2g - 2 and l(K) = g — because they are the two boundary values that pin down the theorem.
The Riemann-Roch theorem itself
We can now state the centerpiece. For any divisor D on a compact Riemann surface X of genus g, the Riemann-Roch theorem says l(D) - l(K - D) = deg(D) - g + 1. Read the left side as 'functions allowed by D, corrected by differentials allowed by K - D'; read the right side as 'naive count = degree, minus the genus penalty, plus one'. The term l(K - D) is the correction that the sphere did not need, and it is dual in nature: by the canonical-class identity above, K - D measures meromorphic 1-forms whose divisor dominates -D, i.e. holomorphic differentials with prescribed zeros along D. So Riemann-Roch balances a count of functions against a count of differentials.
RIEMANN-ROCH l(D) - l(K - D) = deg(D) - g + 1
Two built-in sanity checks (just plug in):
D = 0 : l(0) - l(K) = 0 - g + 1
1 - g = 1 - g (TRUE, since l(0)=1, l(K)=g)
D = K : l(K) - l(0) = deg(K) - g + 1
g - 1 = (2g-2) - g + 1 = g - 1 (TRUE)
Large-degree regime: if deg(D) > 2g - 2 then deg(K - D) < 0, so
l(K - D) = 0 and l(D) = deg(D) - g + 1 exactly.Two honest points about how to read the statement. First, the equation is an exact identity, but it does not by itself hand you l(D) — it gives l(D) in terms of the often-unknown l(K - D). It earns its power in regimes where one term is forced to vanish: when deg(D) < 0 we get l(D) = 0, and when deg(D) > 2g - 2 we get l(K - D) = 0 and hence l(D) = deg(D) - g + 1 outright. The mysterious middle range 0 <= deg(D) <= 2g - 2 is exactly where the geometry of the particular surface lives. Second, the correction term l(K - D) is not an ad hoc patch; the modern reading via Serre duality identifies it with a cohomology group, l(K - D) = dim H^1(X, O(D)), which is the structural reason the theorem is an equality rather than an inequality.
Cashing it in: a worked computation
Let us run the machine on the most famous higher-genus example: an elliptic curve, the genus-1 torus X = C/Lambda. Here g = 1, so 2g - 2 = 0 and K ~ 0 (the form dz is holomorphic and nowhere vanishing). Take D = n[O] for a base point O and a positive integer n. Since deg(D) = n > 0 = 2g - 2, the large-degree rule applies the moment n >= 1, giving l(n[O]) = n - g + 1 = n. So there is a 1-dimensional space of functions with a pole of order at most 1 at O (just the constants — a degree-1 map would force the genus to be 0), a 2-dimensional space allowing a double pole, a 3-dimensional space allowing a triple pole, and so on. Those jumps are exactly the structure of the Weierstrass functions: 1 and the Weierstrass-p give L(2[O]), and adding p' gives L(3[O]).
- Fix the data: a compact surface X of genus g, a divisor D, and the canonical class K with deg(K) = 2g - 2. Compute deg(D) = sum of coefficients.
- Check the degree against the thresholds. If deg(D) < 0, conclude l(D) = 0 and stop. If deg(D) > 2g - 2, conclude l(K - D) = 0, so l(D) = deg(D) - g + 1 directly.
- If deg(D) lies in the middle range 0 <= deg(D) <= 2g - 2, you cannot finish by degree alone; compute l(K - D) by hand (often via holomorphic differentials vanishing along D) and substitute into l(D) = deg(D) - g + 1 + l(K - D).
- Interpret the answer geometrically: l(D) - 1 is the dimension of the linear system |D|, which is exactly the dimension of the projective space of maps X -> CP^N attached to D — the door to embeddings.