Weierstrass equations of elliptic curves #
This file defines the structure of an elliptic curve as a nonsingular Weierstrass curve given by a Weierstrass equation, which is mathematically accurate in many cases but also good for computation.
Mathematical background #
Let 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 one-dimensional group varieties). In
the special case where S is the spectrum of some commutative ring R whose Picard group is zero
(this includes all fields, all PIDs, and many other commutative rings) it can be shown (using a lot
of algebro-geometric machinery) that every elliptic curve E is a projective plane cubic isomorphic
to a Weierstrass curve given by the equation Y² + a₁XY + a₃Y = X³ + a₂X² + a₄X + a₆ for some aᵢ
in R, and such that a certain quantity called the discriminant of E is a unit in R. If R is
a field, this quantity divides the discriminant of a cubic polynomial whose roots over a splitting
field of R are precisely the X-coordinates of the non-zero 2-torsion points of E.
Main definitions #
WeierstrassCurve: a Weierstrass curve over a commutative ring.WeierstrassCurve.Δ: the discriminant of a Weierstrass curve.WeierstrassCurve.map: the Weierstrass curve mapped over a ring homomorphism.WeierstrassCurve.twoTorsionPolynomial: the 2-torsion polynomial of a Weierstrass curve.WeierstrassCurve.IsElliptic: typeclass asserting that a Weierstrass curve is an elliptic curve.WeierstrassCurve.j: the j-invariant of an elliptic curve.
Main statements #
WeierstrassCurve.twoTorsionPolynomial_disc: the discriminant of a Weierstrass curve is a constant factor of the cubic discriminant of its 2-torsion polynomial.
Implementation notes #
The definition of elliptic curves 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 curves over the spectrum Spec(R) of R in the case that R has trivial Picard group
Pic(R) or, slightly more generally, when its 12-torsion 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.
References #
- [N Katz and B Mazur, Arithmetic Moduli of Elliptic Curves][katz_mazur]
- [P Deligne, Courbes Elliptiques: Formulaire (d'après J. Tate)][deligne_formulaire]
- [J Silverman, The Arithmetic of Elliptic Curves][silverman2009]
Tags #
elliptic curve, weierstrass equation, j invariant
Weierstrass curves #
A Weierstrass curve Y² + a₁XY + a₃Y = X³ + a₂X² + a₄X + a₆ with parameters aᵢ.
- a₁ : R
The
a₁coefficient of a Weierstrass curve. - a₂ : R
The
a₂coefficient of a Weierstrass curve. - a₃ : R
The
a₃coefficient of a Weierstrass curve. - a₄ : R
The
a₄coefficient of a Weierstrass curve. - a₆ : R
The
a₆coefficient of a Weierstrass curve.
Instances For
Standard quantities #
The discriminant Δ of a Weierstrass curve. If R is a field, then this polynomial vanishes
if and only if the cubic curve cut out by this equation is singular. Sometimes only defined up to
sign in the literature; we choose the sign used by the LMFDB. For more discussion, see
the LMFDB page on discriminants.
Instances For
Maps and base changes #
The Weierstrass curve mapped over a ring homomorphism f : R →+* A.
Instances For
The Weierstrass curve base changed to an algebra A over R.
Equations
- W.baseChange A = W.map (algebraMap R A)
Instances For
2-torsion polynomials #
A cubic polynomial whose discriminant is a multiple of the Weierstrass curve discriminant. If
W is an elliptic curve over a field R of characteristic different from 2, then its roots over a
splitting field of R are precisely the X-coordinates of the non-zero 2-torsion points of W.
Instances For
Elliptic curves #
WeierstrassCurve.IsElliptic is a typeclass which asserts that a Weierstrass curve is an
elliptic curve: that its discriminant is a unit. Note that this definition is only mathematically
accurate for certain rings whose Picard group has trivial 12-torsion, such as a field or a PID.
Instances
The discriminant Δ' of an elliptic curve over R, which is given as a unit in R.
Note that to prove two equal elliptic curves have the same Δ', you need to use simp_rw,
as rw cannot transfer instance WeierstrassCurve.IsElliptic automatically.
Instances For
The discriminant Δ' of an elliptic curve is equal to the
discriminant Δ of it as a Weierstrass curve.
The j-invariant j of an elliptic curve, which is invariant under isomorphisms over R.
Note that to prove two equal elliptic curves have the same j, you need to use simp_rw,
as rw cannot transfer instance WeierstrassCurve.IsElliptic automatically.
Instances For
A variant of WeierstrassCurve.j_eq_zero_iff without assuming a reduced ring.
A variant of WeierstrassCurve.j_eq_zero_iff_of_char_two without assuming a reduced ring.
A variant of WeierstrassCurve.j_eq_zero_iff_of_char_three without assuming a reduced ring.