Algebraic Geometry Codes: The Goppa Construction and the TVZ Bound
Anchor (Master): MacWilliams & Sloane 1977 The Theory of Error-Correcting Codes (North-Holland) Chapter 8; Tsfasman, Vladut & Nogin 2007 Algebraic Geometric Codes: Basic Notions (AMS); Hoholdt, van Lint & Pellikaan 1998 Algebraic Geometry Codes (Chapter in Handbook of Coding Theory)
Intuition Beginner
Reed-Solomon codes are powerful error-correcting codes built from polynomials. You evaluate a polynomial of degree less than at distinct points. The result is a codeword of length , and the code can correct up to errors. The trick is that two distinct polynomials of degree less than can agree on at most points.
Valery Goppa had an idea in 1970: what if instead of evaluating polynomials (which live on a line), you evaluate more general functions on a curve? A curve is a one-dimensional geometric object — a circle, an ellipse, or more exotic shapes defined over finite fields. Functions on a curve have more room than polynomials on a line, and this extra room translates into better codes.
The key parameter is the genus of the curve, written . The genus measures the complexity of the curve. A line (or any conic) has genus 0. An elliptic curve has genus 1. A curve of genus supports functions with up to about independent "holes" or constraints. The Riemann-Roch theorem tells you exactly how many independent functions a curve can support for a given level of complexity.
The Goppa construction evaluates these functions at rational points — points on the curve whose coordinates lie in the finite field . A curve of genus can have many rational points: by the Hasse-Weil bound, at least and at most . More rational points mean longer codes.
The breakthrough came in 1982 when Tsfasman, Vladut, and Zink showed that for sufficiently large finite fields (where is a perfect square at least 49), these curve-based codes beat the Gilbert-Varshamov bound — the best known lower bound on code performance. This was the first time any explicit construction was shown to exceed GV, and it shocked the coding theory community.
Visual Beginner
| Code family | Parameters | Asymptotic bound ( large) |
|---|---|---|
| Reed-Solomon | over , | Singleton bound (optimal) |
| Gilbert-Varshamov | Existence only | |
| AG codes (genus ) | , | |
| TVZ (1982) | a square | Beats GV for in certain range |
Figure: A graph showing the rate-distance trade-off. The horizontal axis is relative distance , the vertical axis is rate . The Gilbert-Varshamov lower bound curves upward from to . The TVZ line sits above the GV curve for roughly between 0.05 and 0.35 when . The Singleton bound is the absolute ceiling. The plot shows the TVZ line passing above the GV curve in the middle range, marking the first explicit construction to do so.
Worked example Beginner
Consider the Hermitian curve over where . The curve is defined by the equation .
This curve has genus (it is an elliptic curve over ). Let us count the rational points. Over , there are 4 possible -values and 4 possible -values, but not all pairs satisfy the equation. The Hasse-Weil bound gives and . Direct counting shows the curve has rational points (including the point at infinity).
For points and genus , the Goppa construction gives a code with parameters satisfying . If we choose , then . So we get a code over .
The code is constructed by evaluating functions in the Riemann-Roch space at the 5 rational points. For (three times the point at infinity), by the Riemann-Roch theorem. A basis is . Evaluating at each of the 5 rational points gives the 5 columns of the generator matrix, producing a code.
This is modest, but the power of the construction emerges at larger genus and larger fields. A curve of genus 50 over with many rational points produces codes whose parameters beat the GV bound.
Check your understanding Beginner
Formal definition Intermediate+
Let be a smooth projective algebraic curve of genus defined over the finite field . Let be the set of -rational points on .
Definition (Divisor). A divisor on is a formal finite sum where and only finitely many are nonzero. The degree of is .
Definition (Riemann-Roch space). For a divisor on , the Riemann-Roch space is:
where is the principal divisor of . The space is a finite-dimensional vector space over .
Definition (Goppa code / Algebraic geometry code). Let be the sum of distinct rational points, and let be a divisor with and . The Goppa code is the image of the evaluation map:
Theorem (Code parameters). The code has parameters where:
If , then (by the Riemann-Roch theorem), and:
Counterexamples to common slips
The genus is fixed, the length grows. For Reed-Solomon codes (genus 0), the length is bounded by . For higher-genus curves, the length can exceed because curves of positive genus can have more than rational points.
The minimum distance is a lower bound, not exact. The actual minimum distance may be larger than . Computing the exact distance requires knowledge of the specific curve and divisor.
The TVZ bound requires to be a perfect square at least 49. For small , AG codes do not beat GV. The construction uses modular curves whose existence is guaranteed only for certain field sizes.
Key theorem with proof Intermediate+
Theorem (TVZ bound, Tsfasman-Vladut-Zink 1982). For with a prime power, there exist sequences of AG codes over with asymptotic parameters satisfying:
This bound exceeds the Gilbert-Varshamov bound for certain values of when .
Proof sketch. The proof has three ingredients.
Step 1: Curves with many points. For , Ihara (1981) and Tsfasman-Vladut-Zink (1982) showed the existence of families of curves over of genus with:
where is the number of rational points. This is achieved using modular curves over , which have an exceptional number of rational points due to the theory of complex multiplication.
Step 2: Goppa construction gives good codes. For each curve with rational points and genus , choose as the sum of rational points and with for some . The resulting code has:
Step 3: Asymptotic analysis. The rate is . The relative distance is . Since :
Substituting :
To show this beats GV, compare numerically. For : TVZ gives . The GV bound at gives , so . Since , TVZ beats GV at this .
Bridge. The TVZ bound builds toward the general theory of asymptotically good codes 40.06.06, where the central question is whether explicit constructions can match the GV existence lower bound. The Riemann-Roch theorem appears again in the theory of zeta functions of curves over finite fields 04.01.01 as the functional equation relating the number of rational points to the genus. The foundational reason AG codes beat GV is that curves over can have many more rational points than expected from the Hasse-Weil bound alone — the Ihara constant reaches for square . The central insight is that the geometric constraint weakens as , and this is exactly the condition satisfied by curves with many rational points. Putting these together, the TVZ bound converts the existence of curves with many points into the existence of codes that beat the best known combinatorial lower bound.
Exercises Intermediate+
Lean formalization Intermediate+
Mathlib has CommRing, Field, FiniteField, Polynomial, and the beginnings of algebraic geometry (ProjectiveSpace, AffineVariety), but it does not define algebraic curves over finite fields, divisors on curves, Riemann-Roch spaces, or the evaluation map for Goppa codes. The genus of a curve, the Riemann-Roch theorem ( for ), the Hasse-Weil bound, and the TVZ construction using modular curves are all absent. The modular curve theory (level structures on elliptic curves, the theory of complex multiplication) is far beyond current Mathlib. A Codex.CodingTheory.AlgebraicGeometry module defining curves, divisors, and Riemann-Roch spaces over finite fields, with the evaluation map and code parameter bounds, would be the load-bearing first step. This unit ships without formalization.
Advanced results Master
The Riemann-Roch theorem
The Riemann-Roch theorem is the engine that drives AG code parameters. For a smooth projective curve of genus over and a divisor :
where is the canonical divisor (the divisor of any nonzero differential form), with . When , the term (since and no nonzero function can have poles bounded by a negative-degree divisor), giving the simplified formula .
For the Goppa construction, we need in the range . This ensures is exactly computable and the evaluation map is injective. The code parameters then satisfy:
Eliminating : . Compare with the Singleton bound . The "gap" is exactly the genus . For genus 0 (the projective line), AG codes achieve the Singleton bound (these are RS codes). For positive genus, the gap reduces the achievable parameters but allows longer codes (more rational points than the field size).
The Drinfeld-Vladut bound
The asymptotic performance of AG codes depends on the ratio — the number of rational points per unit of genus. The Drinfeld-Vladut bound (1983) shows:
This means no family of curves can have exceeding . For square , this bound is tight (achieved by modular curves), giving . For non-square , the exact value of is unknown but believed to be strictly less than .
The TVZ bound follows from : the code rate satisfies , and with , we get .
Decoding AG codes: the Skorobogatov-Vladut algorithm
Decoding AG codes is more involved than for RS codes, but polynomial-time algorithms exist. The fundamental approach (Skorobogatov and Vladut, 1988) extends the Berlekamp-Massey algorithm to the curve setting.
The key idea: to correct errors, find a function in a Riemann-Roch space for a suitable divisor that vanishes at the error positions. The divisor must satisfy , and the error positions are determined by the zeros of . The algorithm runs in time for fixed and genus.
More efficient algorithms (Guruswami-Sudan, 1999) can correct up to errors for RS codes and have analogues for AG codes. The basic Goppa decoding algorithm corrects up to errors, where the genus reduces the correction capability by compared to a Singleton-bound-achieving code.
Hermitian codes in detail
The Hermitian curve over is the workhorse of AG code constructions because it has the maximum possible number of rational points for its genus. The genus is and the number of rational points is (including the point at infinity).
For (): , . For (): , . For (): , . The ratio approaches as , which for fields gives , far below the Drinfeld-Vladut bound .
Hermitian codes are popular in practice because the curve has a simple equation, the rational points can be enumerated efficiently, and the Riemann-Roch spaces have explicit bases (monomials with ).
Synthesis. Algebraic geometry codes convert the existence of curves with many rational points into codes whose parameters beat the best known combinatorial lower bounds; the Riemann-Roch theorem is the central insight that determines the code parameters from the curve geometry. The TVZ bound is the bridge between algebraic geometry and coding theory: for a square, exceeds the Gilbert-Varshamov bound. This generalises the RS construction from genus 0 to positive genus, where the penalty in the Singleton-like bound is compensated by the ability to have rational points. The Drinfeld-Vladut bound shows that is the absolute ceiling on , and the TVZ construction reaches it. Putting these together, AG codes demonstrate that algebraic structure (the geometry of curves) can produce codes that purely combinatorial methods cannot match, and the foundational reason is that the Riemann-Roch theorem translates geometric data (genus, divisor degree) directly into coding-theoretic data (dimension, minimum distance).
Full proof set Master
Proposition (Minimum distance of Goppa codes). The minimum distance of the Goppa code satisfies .
Proof. Let be a nonzero codeword, so is nonzero. The weight of is the number of positions where . The number of zero positions is the number of where , which is the number of in the support of the divisor of zeros of .
Since : , so . The zeros of contribute positively to , and the poles contribute negatively. The total degree . The number of zeros is , which equals . Since , the poles are bounded by : . Therefore .
Each rational point where contributes at least 1 to the zero count. So the number of zero positions is at most . The weight (number of nonzero positions) is at least .
Proposition (Injectivity of the evaluation map). If and , then is injective.
Proof. Suppose and for all . Then each is a zero of of order at least 1, so . Since : . Combining: for some effective divisor related to the poles. The degree of is 0, and the degree of the effective divisor (from the zeros) is . The poles of have degree at most (from ). Since : degree of zeros degree of poles, so . But by hypothesis. Contradiction. Therefore and the map is injective.
Connections Master
46.07.01— Weight enumerators and the LP bound provide the benchmark that AG codes beat; the MacWilliams identity gives the algebraic machinery for analysing AG code weight distributions.40.06.06— The Gilbert-Varshamov bound is the classical lower bound; AG codes are the first explicit family shown to exceed it for .04.01.01— Algebraic varieties are the geometric substrate; the Riemann-Roch theorem is the key result from algebraic geometry that determines code parameters.46.01.01— Entropy and the -ary entropy function appear in the GV bound; the TVZ line is compared against the GV curve in the rate-distance plane.46.03.01— Channel capacity provides the Shannon limit; AG codes approach it with algebraic structure rather than random coding.
Historical & philosophical context Master
Valery Goppa introduced the construction of codes from algebraic curves in a series of papers starting in 1970. His insight was that the evaluation of functions on a curve — the same construction that gives Reed-Solomon codes from the projective line — could be generalised to arbitrary curves, with the Riemann-Roch theorem replacing the polynomial degree count. The initial papers (published in Russian in Problemy Peredachi Informatsii) attracted little attention outside the Soviet Union.
The breakthrough came in 1982 when Michael Tsfasman, Sergei Vladut, and Thomas Zink published their result showing that AG codes beat the Gilbert-Varshamov bound for . Their paper "Modular Curves, Shimura Curves, Goppa Codes, and Algebraic Geometry Codes" (appearing in Math. USSR Izvestiya 20, 317-330) used modular curves over to construct curves with an exceptional number of rational points. The result stunned the coding theory community because the GV bound had been believed to be tight for decades.
Yuri Ihara had independently established in 1981 that for square , using the same modular curve construction. The Drinfeld-Vladut bound (1983) then showed this was optimal. The combination of these results with Goppa's construction gave the TVZ bound as a corollary.
The philosophical significance is that purely combinatorial reasoning (counting arguments, sphere packing, linear programming) could not produce codes beating GV. The geometric approach — using the deep structure of curves over finite fields — provided the extra leverage. This demonstrated that coding theory is fundamentally connected to number theory and algebraic geometry, not merely an applied branch of combinatorics.
The practical impact was initially limited because the TVZ construction uses modular curves whose explicit equations are hard to compute. Later work by Garcia and Stichtenoth (1995, 1996) gave recursive tower constructions of curves with many points, making AG codes more practical. These towers are defined by simple recursive equations and reach the Drinfeld-Vladut bound without modular curves.
Bibliography Master
@book{macwilliams-sloane1977,
author = {MacWilliams, F. J. and Sloane, N. J. A.},
title = {The Theory of Error-Correcting Codes},
publisher = {North-Holland},
year = {1977},
}
@article{tsfasman-vladut-zink1982,
author = {Tsfasman, M. A. and Vladut, S. G. and Zink, T.},
title = {Modular Curves, Shimura Curves, and Goppa Codes, Better Than {Varshamov-Gilbert} Bound},
journal = {Math. USSR Izvestiya},
volume = {20},
pages = {317--330},
year = {1983},
note = {Russian original 1982},
}
@incollection{hoholdt-vanlint-pellikaan1998,
author = {H{\o}holdt, T. and van Lint, J. H. and Pellikaan, R.},
title = {Algebraic Geometry Codes},
booktitle = {Handbook of Coding Theory},
editor = {Pless, V. S. and Huffman, W. C.},
publisher = {Elsevier},
year = {1998},
}
@article{garcia-stichtenoth1995,
author = {Garcia, A. and Stichtenoth, H.},
title = {A Tower of Artin-Schreier Extensions of Function Fields Attaining the {Drinfeld-Vladut} Bound},
journal = {Inventiones Mathematicae},
volume = {121},
pages = {211--222},
year = {1995},
}
@article{drinfeld-vladut1983,
author = {Drinfeld, V. G. and Vladut, S. G.},
title = {The Number of Points of an Algebraic Curve},
journal = {Funktsional. Anal. i Prilozhen.},
volume = {17},
pages = {68--69},
year = {1983},
}
@book{tsfasman-vladut-nogin2007,
author = {Tsfasman, M. A. and Vladut, S. G. and Nogin, D.},
title = {Algebraic Geometric Codes: Basic Notions},
publisher = {American Mathematical Society},
year = {2007},
}