Models of elliptic curves with prescribed j-invariant #
This file defines the Weierstrass equation over a field with prescribed j-invariant, proved that it is an elliptic curve, and that its j-invariant is equal to the given value. It is a modification of [silverman2009], Chapter III, Proposition 1.4 (c).
Main definitions #
WeierstrassCurve.ofJ0: an elliptic curve whose j-invariant is 0.WeierstrassCurve.ofJ1728: an elliptic curve whose j-invariant is 1728.WeierstrassCurve.ofJNe0Or1728: an elliptic curve whose j-invariant is neither 0 nor 1728.WeierstrassCurve.ofJ: an elliptic curve whose j-invariant equal to j.
Main statements #
WeierstrassCurve.ofJ_j: the j-invariant ofWeierstrassCurve.ofJis equal to j.
References #
- [J Silverman, The Arithmetic of Elliptic Curves][silverman2009]
Tags #
elliptic curve, weierstrass equation, j invariant
The Weierstrass curve Y² + Y = X³. It is of j-invariant 0 if it is an elliptic curve.
Equations
- WeierstrassCurve.ofJ0 R = { a₁ := 0, a₂ := 0, a₃ := 1, a₄ := 0, a₆ := 0 }
Instances For
The Weierstrass curve Y² = X³ + X. It is of j-invariant 1728 if it is an elliptic curve.
Equations
- WeierstrassCurve.ofJ1728 R = { a₁ := 0, a₂ := 0, a₃ := 0, a₄ := 1, a₆ := 0 }
Instances For
The Weierstrass curve Y² + (j - 1728)XY = X³ - 36(j - 1728)³X - (j - 1728)⁵.
It is a modification of the curve in [silverman2009], Chapter III, Proposition 1.4 (c) to avoid
denominators. It is of j-invariant j if it is an elliptic curve.
Equations
Instances For
When 3 is a unit, Y² + Y = X³ is an elliptic curve.
It is of j-invariant 0 (see WeierstrassCurve.ofJ0_j).
When 2 is a unit, Y² = X³ + X is an elliptic curve.
It is of j-invariant 1728 (see WeierstrassCurve.ofJ1728_j).
When j and j - 1728 are both units,
Y² + (j - 1728)XY = X³ - 36(j - 1728)³X - (j - 1728)⁵ is an elliptic curve.
It is of j-invariant j (see WeierstrassCurve.ofJNe0Or1728_j).
For any element j of a field F, there exists an elliptic curve over F
with j-invariant equal to j (see WeierstrassCurve.ofJ_j).
Its coefficients are given explicitly (see WeierstrassCurve.ofJ0, WeierstrassCurve.ofJ1728
and WeierstrassCurve.ofJNe0Or1728).
Equations
- WeierstrassCurve.ofJ j = if j = 0 then if 3 = 0 then WeierstrassCurve.ofJ1728 F else WeierstrassCurve.ofJ0 F else if j = 1728 then WeierstrassCurve.ofJ1728 F else WeierstrassCurve.ofJNe0Or1728 j
Instances For
Equations
- WeierstrassCurve.instInhabitedSubtypeIsElliptic = { default := ⟨WeierstrassCurve.ofJ 37, ⋯⟩ }