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^2 + a_1XY + a_3Y = X^3 + a_2X^2 + a_4X + a_6$ for
some $a_i$ 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 $\mathrm{Spec}(R)$ of R in the case that R has trivial Picard
group $\mathrm{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 $\mathrm{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^2 + a_1XY + a_3Y = X^3 + a_2X^2 + a_4X + a_6$ with parameters $a_i$.
- 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
Equations
- WeierstrassCurve.instInhabited = { default := { a₁ := default, a₂ := default, a₃ := default, a₄ := default, a₆ := default } }
Standard quantities #
The b₂ coefficient of a Weierstrass curve.
Instances For
The b₄ coefficient of a Weierstrass curve.
Instances For
The b₆ coefficient of a Weierstrass curve.
Instances For
The c₄ coefficient of a Weierstrass curve.
Instances For
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 φ : R →+* A.
Equations
- W.map φ = { a₁ := φ W.a₁, a₂ := φ W.a₂, a₃ := φ W.a₃, a₄ := φ W.a₄, a₆ := φ W.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.
- isUnit : IsUnit W.Δ
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.
Equations
- W.Δ' = ⋯.unit
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.