riemann-roch: Riemann–Roch, l(K) = g, deg K = 2g − 2, the Riemann inequality #
Unit: riemann-roch (#28), per docs/design/serre-duality-tails.md §9.1 + the TailDuality root
docstring's export bank / consumer notes. A thin assembly unit (per the blueprint's own framing):
every proof below is omega-level ℤ-arithmetic combining TailDuality's tail-level ledger
(chiT_eq_chiT_zero_add_degree, the primary deliverable of the prerequisite pass) with its
Serre-duality export bank (l_sub_eq_h1T, h1T_zero_eq_genus, h1T_zero_eq_l_K) and
RS.l_zero. No new mathematics; no reference to T D/pairT/chi's internals (the interface
docs/design/serre-duality-tails.md §9.1 demands).
chiT_zero : TailDuality.chiT 0 = 1 - g.riemannRoch {ω₀} (h₀) (D) : l D - l(K − D) = deg D + 1 - g— the headline theorem.l_K_eq_genus {ω₀} (h₀) : l K = g.deg_canonical {ω₀} (h₀) : deg K = 2 * g - 2.riemann_inequality (D) : deg D + 1 - g ≤ l D— the forward-headline seedgenus-zero-headline(#30) consumes.
χT(0) = 1 - g, from Liouville (RS.l_zero) and the tail-duality genus identification
(h1T_zero_eq_genus).
Riemann–Roch. l(D) − l(K − D) = deg D + 1 − g for any canonical divisor K (seeded by a
nonzero reference form ω₀). Proof: the tail ledger chiT D = chiT 0 + deg D combined with
Serre duality l(K − D) = h1T D and chiT 0 = 1 - g; pure ℤ-arithmetic.
l(K) = g (Riemann–Roch's own dictionary at D = K, packaged directly from the tail-duality
export bank).
deg K = 2g − 2 (Riemann–Roch applied at D := K, then l K = g/l 0 = 1).
The Riemann inequality: deg D + 1 − g ≤ l D, unconditionally (no reference form needed
— chiT's ledger plus h1T ≥ 0). The forward-headline seed genus-zero-headline (#30) uses at
D := single P 1 in genus 0.