The category of elliptic curves (over a field or a PID) #
We give a working definition of elliptic curves which is mathematically accurate in many cases, and also good for computation.
Mathematical background #
S be a scheme. The actual category of elliptic curves over
S is a large category,
whose objects are schemes
E equipped with a map
E → S, a section
S → E, and some
axioms (the map is smooth and proper and the fibres are geometrically connected group varieties
of dimension 1). In the special case where
Spec R for some commutative ring
whose Picard group is trivial (this includes all fields, all principal ideal domains, and many
other commutative rings) then it can be shown (using rather a lot of algebro-geometric machinery)
that every elliptic curve is, up to isomorphism, a projective plane cubic defined by
aᵢ : R, and such that the discriminant
of the aᵢ is a unit in
Some more details of the construction can be found on pages 66-69 of N. Katz and B. Mazur, Arithmetic moduli of elliptic curves or pages 53-56 of P. Deligne, Courbes elliptiques: formulaire d'après J. Tate.
The definition in this file makes sense for all commutative rings
R, but it only gives
a type which can be beefed up to a category which is equivalent to the category of elliptic
Spec R in the case that
R has trivial Picard group or, slightly more generally,
when the 12-torsion of Pic(R) is trivial. The issue is that for a general ring R, there
might be elliptic curves over Spec(R) in the sense of algebraic geometry which are not
globally defined by a cubic equation valid over the entire base.
Define the R-points (or even A-points if A is an R-algebra). Care will be needed at infinity if R is not a field. Define the group law on the R-points. (hard) prove associativity.
The discriminant of the plane cubic
R is a field
then this polynomial vanishes iff the cubic curve cut out by this equation is singular.
- EllipticCurve.disc_aux a1 a2 a3 a4 a6 = (-432) * a6 ^ 2 + ((288 * a2 + 72 * a1 ^ 2) * a4 + ((-216) * a3 ^ 2 + ((144 * a1) * a2 + 36 * a1 ^ 3) * a3 + ((-64) * a2 ^ 3 - (48 * a1 ^ 2) * a2 ^ 2 - (12 * a1 ^ 4) * a2 - a1 ^ 6))) * a6 + ((-64) * a4 ^ 3 + (((-96) * a1) * a3 + (16 * a2 ^ 2 + (8 * a1 ^ 2) * a2 + a1 ^ 4)) * a4 ^ 2 + ((72 * a2 - 30 * a1 ^ 2) * a3 ^ 2 + ((16 * a1) * a2 ^ 2 + (8 * a1 ^ 3) * a2 + a1 ^ 5) * a3) * a4 + ((-27) * a3 ^ 4 + ((36 * a1) * a2 + a1 ^ 3) * a3 ^ 3 + ((-16) * a2 ^ 3 - (8 * a1 ^ 2) * a2 ^ 2 - (a1 ^ 4) * a2) * a3 ^ 2))
- a1 : R
- a2 : R
- a3 : R
- a4 : R
- a6 : R
- disc_unit : units R
- disc_unit_eq : ↑(self.disc_unit) = EllipticCurve.disc_aux self.a1 self.a2 self.a3 self.a4 self.a6
The category of elliptic curves over
R (note that this definition is only mathematically
correct for certain rings, for example if
R is a field or a PID).
The discriminant of an elliptic curve. Sometimes only defined up to sign in the literature; we choose the sign used by the LMFDB. See the LMFDB page on discriminants for more discussion.