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
- P Deligne, Courbes Elliptiques: Formulaire (d'après J. Tate)
- J Silverman, The Arithmetic of Elliptic Curves
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.