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

Branched Covers & the Riemann-Hurwitz Formula

Every nonconstant map between compact Riemann surfaces is a covering — except over a handful of branch points where sheets crash together. Track that crashing carefully and a single bookkeeping equation, Riemann-Hurwitz, ties the genus of the top surface to the genus of the bottom one.

From meromorphic functions to maps of surfaces

Guide 1 taught you to read a meromorphic function f on a compact Riemann surface X not as a function but as a holomorphic map to the Riemann sphere, f: X -> P^1, where a pole is simply the place mapping to the point at infinity. This guide takes that one step further and studies any nonconstant holomorphic map f: X -> Y between two compact Riemann surfaces. The sphere case (Y = P^1) is the headline example, but nothing in the story needs Y to be the sphere. The first miracle, which we lean on throughout, is that such a map is almost a covering map: over most of Y it looks exactly like stacking d disjoint copies of a disk.

Why almost? Because a nonconstant holomorphic map has a rigid local form. Around any point p in X, choose a coordinate chart z centered at p (so p is z = 0) and a chart w centered at f(p) on Y. Then f, written in these coordinates, is forced to look like w = z^e for a unique integer e >= 1, after an analytic change of coordinates. That integer e is the local degree or ramification index of f at p, written e_p. When e_p = 1 the map is a local biholomorphism — it is invertible near p and behaves like the identity. When e_p >= 2 something genuinely different happens: the map wraps e_p times around as you circle p once, like z^2 doubling every angle.

Fix the vocabulary now, because the next two sections live or die by it. In the normal form w = z^(e_p), the case e_p = 1 is a clean unbranched sheet — a local biholomorphism. The case e_p >= 2 is a ramification point, where e_p sheets pinch down to one; its image f(p) in Y, the place you can see the pinch from below, is the corresponding branch point. Keep the two on opposite floors: ramification points live upstairs in X, branch points live downstairs in Y.

The degree is constant — count the fiber

Here is the single fact that makes everything quantitative. For a nonconstant holomorphic map f: X -> Y of compact Riemann surfaces, the number of preimages of a point q in Y, counted with the right multiplicity, is the same for every q. That common value is the degree d of the map. The honest counting rule is this: over q, sum the ramification indices e_p over all p in the fiber f^(-1)(q). For almost every q each e_p = 1 and the fiber simply has d distinct points; over a special branch point some sheets have pinched, the indices exceed 1, but the weighted sum still adds back up to d.

Two important refinements keep you honest. First, ramification points are rare: since z^e has nonvanishing derivative except at z = 0, the points where e_p >= 2 are exactly where the derivative of f vanishes, and on a compact surface a nonzero holomorphic object has only finitely many zeros. So there are finitely many ramification points upstairs in X, and hence finitely many branch points downstairs in Y. Away from those branch points, f genuinely is a covering map of degree d — a stack of d disjoint sheets, the topologist's covering space, with no pinching at all. Second, do not confuse the two words: a ramification point lives in X (where sheets pinch), its image a branch point lives in Y (where you see the pinch from below).

Euler characteristic, triangulated and pulled back

Riemann-Hurwitz is really a statement about Euler characteristic, so recall the one number that controls the topology of a compact orientable surface. By the classification you met in the earlier rung, such a surface is determined up to homeomorphism by its genus g — the number of handles — and its Euler characteristic is chi = 2 - 2g. The sphere has g = 0, chi = 2; the torus has g = 1, chi = 0; a genus-2 surface has chi = -2. Compute chi from any triangulation as V - E + F (vertices minus edges plus faces); the magic is that this alternating count is independent of which triangulation you draw.

Now the strategy of the whole proof, in one breath. Triangulate the base Y so cleverly that every branch point is one of the vertices. Then pull this triangulation back through f to a triangulation of X. The point of putting branch points at vertices is that f, away from branch points, is an honest degree-d covering — so each edge of Y lifts to exactly d edges of X, and each face lifts to exactly d faces. Edges and faces multiply by d cleanly. The ONLY place the simple multiplication breaks is at the vertices sitting over branch points, where sheets have merged: there, fewer than d points lie above a single vertex of Y. All the subtlety of Riemann-Hurwitz hides in that vertex deficit.

Assembling Riemann-Hurwitz

  1. Triangulate Y with V vertices, E edges, F faces, arranged so that all branch points are vertices; then chi(Y) = V - E + F = 2 - 2*g_Y.
  2. Lift through the degree-d map. Away from branch points f is a covering, so edges and faces multiply exactly: X gets d*E edges and d*F faces.
  3. Count the lifted vertices honestly. A generic vertex q of Y has d preimages, but over a branch point the fiber has only sum over the fiber of 1 = d - (sum of (e_p - 1)) points, since e_p sheets fused into one. So the total vertex count upstairs is d*V minus the ramification deficit R = sum over all p in X of (e_p - 1).
  4. Form chi(X) = (d*V - R) - d*E + d*F = d*(V - E + F) - R = d*chi(Y) - R, and rewrite with genus: 2 - 2*g_X = d*(2 - 2*g_Y) - R.
RIEMANN-HURWITZ  (compact Riemann surfaces, nonconstant f: X -> Y of degree d)

   chi(X)  =  d * chi(Y)  -  R,        R  =  sum over p in X of ( e_p - 1 )

   in genus form:

   2 - 2 g_X  =  d * ( 2 - 2 g_Y )  -  R

   ramification term R is a sum of NONNEGATIVE integers, finite support
   ( e_p = 1 contributes 0 ; the sum runs over the few ramification points )
The Riemann-Hurwitz formula. The 'd * chi(Y)' part is pure covering-space multiplication; the correction R is the total pinching, summed as e_p - 1 over all ramification points.

Read the formula as conservation with a correction term. If there were no ramification (R = 0), Euler characteristic would simply multiply by the degree, exactly as for an honest unbranched cover — a clean d-sheeted cover of a torus is again a torus, since d * 0 = 0. Every unit of ramification, each e_p - 1, subtracts from chi(X), which means it adds to the genus g_X. Branching makes the top surface more complicated, never less. And there is a beautiful rigidity hidden here: because g_X >= 0, the formula constrains how much ramification a cover of given degree over a given base can carry — you cannot pinch sheets together arbitrarily.

Worked examples: spheres, tori, and hyperelliptic curves

Lead with the smallest example. Take f(z) = z^2 as a map P^1 -> P^1; here Y is the sphere, g_Y = 0, and the degree is d = 2. The derivative 2z vanishes only at z = 0, and a careful look at infinity (in the coordinate u = 1/z, the map is u -> u^2) shows it ramifies there too. So there are exactly two ramification points, 0 and infinity, each with e_p = 2, giving R = (2-1) + (2-1) = 2. Plug in: 2 - 2*g_X = 2*(2 - 0) - 2 = 2, so g_X = 0. The total space is again a sphere — correct, since z^2 just folds the sphere over itself, branched at the two poles, like wrapping a balloon twice around a smaller balloon.

Now the example that opens the next guide. A hyperelliptic curve is a double cover of the sphere, defined by y^2 = h(x) where h is a polynomial with distinct roots; the map (x,y) -> x is degree d = 2 to P^1. Over each root of h the two y-values y = +/- sqrt(h(x)) collide into one, so each root is a branch point with a single ramification point of index 2. If h has degree 2k, there are 2k such branch points, plus we must check infinity. A short computation shows infinity ramifies exactly when deg h is odd; arranging deg h = 2k even keeps infinity unramified, so R = 2k. Riemann-Hurwitz gives 2 - 2*g_X = 2*(2) - 2k, hence g_X = k - 1.

One last sanity check ties the formula to a constraint you should always exploit: the ramification count R = sum (e_p - 1) is always an EVEN number when the base is the sphere and we want g_X >= 0 to come out an integer. More usefully, Riemann-Hurwitz forbids the impossible. There is no nonconstant holomorphic map from a sphere to a torus, for instance: with g_X = 0 and g_Y = 1 the formula reads -2 = d*0 - R = -R, forcing R = -2, impossible since R >= 0. So lower genus cannot map nonconstantly onto higher genus — the formula encodes this rigidity automatically. This is the same principle that, pushed further with the tools of algebraic curves, begins to classify which surfaces can cover which, and it is the bridge into the divisor-and-Riemann-Roch machinery of the next guide.