JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Divisors, the Canonical Class & the Riemann-Roch Theorem

How many functions can have poles only here, of bounded order? Riemann-Roch turns that bookkeeping question into a single equation balancing analysis against the genus. We build divisors, meet the canonical class, and watch dimensions become topology.

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.
Riemann-Roch with two consistency checks at D = 0 and D = K, plus the large-degree regime where the correction term vanishes and l(D) is pinned 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]).

  1. 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.
  2. 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.
  3. 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).
  4. 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.