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 [Sil09], 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.ofJ
is equal to j.
References #
Tags #
elliptic curve, weierstrass equation, j invariant
The Weierstrass curve $Y^2 + Y = X^3$. 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^2 = X^3 + 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^2 + (j - 1728)XY = X^3 - 36(j - 1728)^3X - (j - 1728)^5$. It is a modification of the curve in [Sil09], 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^2 + Y = X^3$ is an elliptic curve.
It is of j-invariant 0 (see WeierstrassCurve.ofJ0_j
).
When 2 is a unit, $Y^2 = X^3 + X$ is an elliptic curve.
It is of j-invariant 1728 (see WeierstrassCurve.ofJ1728_j
).
When j and j - 1728 are both units,
$Y^2 + (j - 1728)XY = X^3 - 36(j - 1728)^3X - (j - 1728)^5$ 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, ⋯⟩ }