Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Mordell's theorem: E(Q)E(\mathbb{Q})E(Q) is a finitely generated abelian group

Open
BSD.mordell

by korbonits · Sep 8, 2026 · Mathlib 0df444a (Lean v4.33.1)

arithmetic-geometrybirch-swinnerton-dyerelliptic-curvesl-functionsmillennium-prizenumber-theory

Wiles, p. 1: "In 1922 Mordell [15] proved that this group is finitely generated, thus fulfilling an implicit assumption of Poincaré. Theorem. If CCC is an elliptic curve over Q\mathbb{Q}Q, then C(Q)≃Zr⊕C(Q)torsC(\mathbb{Q}) \simeq \mathbb{Z}^r \oplus C(\mathbb{Q})_{\mathrm{tors}}C(Q)≃Zr⊕C(Q)tors​ for some integer r≥0r \ge 0r≥0, where C(Q)torsC(\mathbb{Q})_{\mathrm{tors}}C(Q)tors​ is a finite abelian group. The integer rrr is called the rank of CCC."

Let EEE be an elliptic curve over Q\mathbb{Q}Q, given by a Weierstrass equation y2+a1xy+a3y=x3+a2x2+a4x+a6y^2 + a_1xy + a_3y = x^3 + a_2x^2 + a_4x + a_6y2+a1​xy+a3​y=x3+a2​x2+a4​x+a6​ with ai∈Qa_i \in \mathbb{Q}ai​∈Q and non-zero discriminant. Then the abelian group E(Q)E(\mathbb{Q})E(Q) of rational points (rational solutions together with the point at infinity, under the chord-and-tangent law) is finitely generated: there are finitely many points P1,…,Pk∈E(Q)P_1, \dots, P_k \in E(\mathbb{Q})P1​,…,Pk​∈E(Q) such that every rational point is an integer combination n1P1+⋯+nkPkn_1 P_1 + \dots + n_k P_kn1​P1​+⋯+nk​Pk​.

By the structure theorem for finitely generated abelian groups this is equivalent to Wiles' formulation E(Q)≃Zr⊕TE(\mathbb{Q}) \simeq \mathbb{Z}^r \oplus TE(Q)≃Zr⊕T with TTT finite. The theorem is what makes the rank rrr a well-defined natural number, and hence what gives the Birch and Swinnerton-Dyer conjecture its meaning. Its proof (Mordell 1922; Weil 1929 over number fields) combines the weak Mordell–Weil theorem, the finiteness of E(Q)/2E(Q)E(\mathbb{Q})/2E(\mathbb{Q})E(Q)/2E(Q), with the theory of heights and the descent argument.

Formalization Note Module.Finite ℤ of the additive group of points is finite generation as an abelian group. The hypothesis IsElliptic is Δ≠0\Delta \neq 0Δ=0; no minimality or integrality of the model is assumed, and none is needed since the group of points is invariant under change of Weierstrass equation. The platform already contains the descent step (finite index of 2E(Q)2E(\mathbb{Q})2E(Q) implies finite generation) as WeierstrassCurve.Affine.Point.addGroup_fg_of_finiteIndex, so what remains is the weak Mordell–Weil theorem.

Preamble
import Definitions.Def_BSD
import Mathlib
Formal statement
namespace BSD
theorem mordell (W : WeierstrassCurve ℚ) [W.IsElliptic] :
    Module.Finite ℤ W.toAffine.Point := by sorry
end BSD
Source
A. Wiles, The Birch and Swinnerton-Dyer Conjecture, Clay Mathematics Institute Millennium Prize Problem description (2000), https://www.claymath.org/wp-content/uploads/2022/05/birchswin.pdf, p. 1, 'Theorem. If C is an elliptic curve over Q, then C(Q) ≃ Z^r ⊕ C(Q)_tors for some integer r ≥ 0, where C(Q)_tors is a finite abelian group', attributed to [15] L. Mordell, Proc. Cambridge Phil. Soc. 21 (1922–23), 179–192
Read-back

What the Lean code literally says, in plain math · claude-fable-5-1

Read-back

Declaration. BSD.mordell is a theorem (a proposition, currently with a placeholder proof) whose statement is: for every Weierstrass curve WWW over the field Q\mathbb{Q}Q of rational numbers satisfying the typeclass hypothesis "WWW is elliptic", the abelian group of nonsingular affine-coordinate points of WWW (including the point at infinity) is finitely generated as a Z\mathbb{Z}Z-module. Nothing from the bundle Definitions.Def_BSD (BSD.IsLFunction, BSD.rank) is used; every notion below is the Mathlib one.

Binders and hypotheses.

  1. WWW — an explicit, universally quantified variable of type WeierstrassCurve ℚ. Literally, WWW is any ordered quintuple of rational numbers
W=(a1,a2,a3,a4,a6)∈Q5,W = (a_1, a_2, a_3, a_4, a_6) \in \mathbb{Q}^5,W=(a1​,a2​,a3​,a4​,a6​)∈Q5,

thought of as the equation

Y2+a1XY+a3Y  =  X3+a2X2+a4X+a6.Y^2 + a_1 XY + a_3 Y \;=\; X^3 + a_2 X^2 + a_4 X + a_6 .Y2+a1​XY+a3​Y=X3+a2​X2+a4​X+a6​.

There is no hypothesis that the aia_iai​ are integers, that the model is minimal, reduced, or in short Weierstrass form, or anything else about the coefficients beyond item 2.

  1. [W.IsElliptic] — a typeclass (Prop-valued) hypothesis whose single field asserts that the discriminant Δ(W)\Delta(W)Δ(W) is a unit of the coefficient ring. Over the field Q\mathbb{Q}Q, "unit" means exactly Δ(W)≠0\Delta(W) \neq 0Δ(W)=0. Here Δ\DeltaΔ is the specific polynomial in the aia_iai​ defined in Mathlib (with the LMFDB sign convention):
b2=a12+4a2,b4=2a4+a1a3,b6=a32+4a6,b8=a12a6+4a2a6−a1a3a4+a2a32−a42,b_2 = a_1^2 + 4a_2,\quad b_4 = 2a_4 + a_1 a_3,\quad b_6 = a_3^2 + 4a_6,\quad b_8 = a_1^2 a_6 + 4a_2 a_6 - a_1 a_3 a_4 + a_2 a_3^2 - a_4^2,b2​=a12​+4a2​,b4​=2a4​+a1​a3​,b6​=a32​+4a6​,b8​=a12​a6​+4a2​a6​−a1​a3​a4​+a2​a32​−a42​, Δ(W)=− b22 b8  −  8 b43  −  27 b62  +  9 b2b4b6.\Delta(W) = -\,b_2^2\, b_8 \;-\; 8\, b_4^3 \;-\; 27\, b_6^2 \;+\; 9\, b_2 b_4 b_6 .Δ(W)=−b22​b8​−8b43​−27b62​+9b2​b4​b6​.

This hypothesis is satisfiable (e.g. a1=a2=a3=a6=0, a4=−1a_1=a_2=a_3=a_6=0,\ a_4=-1a1​=a2​=a3​=a6​=0, a4​=−1 gives Δ=64≠0\Delta = 64 \ne 0Δ=64=0), so the theorem is not vacuous; conversely, quintuples with Δ=0\Delta = 0Δ=0 are simply excluded from the statement.

No other hypotheses appear. In particular the theorem is only about points with coordinates in Q\mathbb{Q}Q itself; no field extension or base change is involved.

The set of points Waff(Q)W^{\mathrm{aff}}(\mathbb{Q})Waff(Q). W.toAffine is literally the same quintuple WWW, merely relabelled as "a Weierstrass curve viewed in affine coordinates" (the conversion is a definitional identity). Its type of points, W.toAffine.Point, is an inductive type with exactly two kinds of elements:

  • a single distinguished element OOO (the "point at infinity", the constructor with no data); and
  • for each pair (x,y)∈Q×Q(x, y) \in \mathbb{Q}\times\mathbb{Q}(x,y)∈Q×Q together with a proof hhh that (x,y)(x,y)(x,y) is nonsingular on WWW, one element P=(x,y)P = (x, y)P=(x,y). Two such elements are equal iff their xxx and yyy agree (the proof component is irrelevant by proof irrelevance).

Here "(x,y)(x,y)(x,y) is nonsingular on WWW" is the conjunction of two conditions:

(Equation)y2+a1xy+a3y−(x3+a2x2+a4x+a6)=0,\text{(Equation)}\qquad y^2 + a_1 x y + a_3 y - \bigl(x^3 + a_2 x^2 + a_4 x + a_6\bigr) = 0,(Equation)y2+a1​xy+a3​y−(x3+a2​x2+a4​x+a6​)=0, (Nonsingularity)a1y−(3x2+2a2x+a4)≠0or2y+a1x+a3≠0,\text{(Nonsingularity)}\qquad a_1 y - \bigl(3x^2 + 2a_2 x + a_4\bigr) \neq 0 \quad\text{or}\quad 2y + a_1 x + a_3 \neq 0,(Nonsingularity)a1​y−(3x2+2a2​x+a4​)=0or2y+a1​x+a3​=0,

i.e. the point lies on the curve and at least one of the two partial derivatives ∂X,∂Y\partial_X, \partial_Y∂X​,∂Y​ of the defining polynomial is nonzero there. So singular rational points on the cubic are literally excluded from the type. (Mathlib separately proves that, under the hypothesis Δ(W)≠0\Delta(W)\ne 0Δ(W)=0 of item 2 and over a nontrivial ring, the Equation alone already implies Nonsingularity, so in the presence of item 2 the type consists of OOO together with all rational solutions (x,y)(x,y)(x,y) of the Weierstrass equation.)

The type is never empty: OOO always belongs to it, even if the equation has no rational solutions.

The group structure. The additive commutative group structure on W.toAffine.Point that the statement uses is Mathlib's instance WeierstrassCurve.Affine.Point.instAddCommGroup, which exists because Q\mathbb{Q}Q is a field with decidable equality. Concretely it is the chord–tangent law given by explicit formulas:

  • 0:=O0 := O0:=O.
  • Negation: −O=O-O = O−O=O and −(x,y)=(x,  −y−a1x−a3)-(x,y) = (x,\; -y - a_1 x - a_3)−(x,y)=(x,−y−a1​x−a3​).
  • Addition: O+P=P+O=PO + P = P + O = PO+P=P+O=P. For P1=(x1,y1)P_1 = (x_1,y_1)P1​=(x1​,y1​), P2=(x2,y2)P_2 = (x_2,y_2)P2​=(x2​,y2​): if x1=x2x_1 = x_2x1​=x2​ and y1=−y2−a1x2−a3y_1 = -y_2 - a_1 x_2 - a_3y1​=−y2​−a1​x2​−a3​ (i.e. P1=−P2P_1 = -P_2P1​=−P2​), then P1+P2=OP_1 + P_2 = OP1​+P2​=O; otherwise P1+P2=(x3,y3)P_1 + P_2 = (x_3, y_3)P1​+P2​=(x3​,y3​) with
ℓ={y1−y2x1−x2x1≠x2,3x12+2a2x1+a4−a1y12y1+a1x1+a3x1=x2,x3=ℓ2+a1ℓ−a2−x1−x2,\ell = \begin{cases} \dfrac{y_1 - y_2}{x_1 - x_2} & x_1 \ne x_2,\\[1.2ex] \dfrac{3x_1^2 + 2a_2 x_1 + a_4 - a_1 y_1}{2y_1 + a_1 x_1 + a_3} & x_1 = x_2, \end{cases}\qquad x_3 = \ell^2 + a_1\ell - a_2 - x_1 - x_2,ℓ=⎩⎨⎧​x1​−x2​y1​−y2​​2y1​+a1​x1​+a3​3x12​+2a2​x1​+a4​−a1​y1​​​x1​=x2​,x1​=x2​,​x3​=ℓ2+a1​ℓ−a2​−x1​−x2​, y3=−(ℓ(x3−x1)+y1)−a1x3−a3.y_3 = -\bigl(\ell (x_3 - x_1) + y_1\bigr) - a_1 x_3 - a_3 .y3​=−(ℓ(x3​−x1​)+y1​)−a1​x3​−a3​.

Associativity and commutativity are theorems in Mathlib (proved via the ideal class group of the affine coordinate ring); the statement being audited simply inherits this structure. The Z\mathbb{Z}Z-module structure is the canonical one on any additive commutative group: n⋅Pn\cdot Pn⋅P is PPP added to itself nnn times for n≥0n \ge 0n≥0 and (−n)⋅P=−(n⋅P)(-n)\cdot P = -(n\cdot P)(−n)⋅P=−(n⋅P).

The conclusion Module.Finite ℤ W.toAffine.Point. By definition, this is the proposition that the top submodule of the Z\mathbb{Z}Z-module Waff(Q)W^{\mathrm{aff}}(\mathbb{Q})Waff(Q) is finitely generated, i.e.

∃ S⊆Waff(Q) finite,span⁡ZS  =  Waff(Q),\exists\, S \subseteq W^{\mathrm{aff}}(\mathbb{Q}) \text{ finite},\qquad \operatorname{span}_{\mathbb{Z}} S \;=\; W^{\mathrm{aff}}(\mathbb{Q}),∃S⊆Waff(Q) finite,spanZ​S=Waff(Q),

equivalently: there exist finitely many points P1,…,PnP_1,\dots,P_nP1​,…,Pn​ (with n≥0n \ge 0n≥0) such that every point of Waff(Q)W^{\mathrm{aff}}(\mathbb{Q})Waff(Q) can be written as m1P1+⋯+mnPnm_1 P_1 + \dots + m_n P_nm1​P1​+⋯+mn​Pn​ with mi∈Zm_i \in \mathbb{Z}mi​∈Z. Mathlib records that for an additive commutative group this is the same as being a finitely generated group.

What the statement does and does not say. In full:

For every (a1,a2,a3,a4,a6)∈Q5(a_1,a_2,a_3,a_4,a_6) \in \mathbb{Q}^5(a1​,a2​,a3​,a4​,a6​)∈Q5 with Δ≠0\Delta \neq 0Δ=0 (formula above), the abelian group consisting of the point at infinity together with all rational solutions (x,y)(x,y)(x,y) of Y2+a1XY+a3Y=X3+a2X2+a4X+a6Y^2 + a_1XY + a_3Y = X^3 + a_2X^2 + a_4X + a_6Y2+a1​XY+a3​Y=X3+a2​X2+a4​X+a6​ that satisfy the nonsingularity condition, under the chord–tangent addition above, is finitely generated.

The statement makes no claim about the rank of this group, its torsion, the number of generators, or any structure theorem; the degenerate case in which the group is {O}\{O\}{O} (no rational affine points) is included and is trivially finitely generated (take S=∅S = \varnothingS=∅ or S={O}S=\{O\}S={O}). It says nothing about curves with Δ=0\Delta = 0Δ=0, about points over any field other than Q\mathbb{Q}Q, or about any projective/Jacobian coordinate model.

Human review
  • Endorsed by Shuze Chen · Sep 8, 2026

  • Endorsed by korbonits · Sep 8, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me