Group law on Weierstrass curves #
This file proves that the nonsingular rational points on a Weierstrass curve forms an abelian group
under the geometric group law defined in Mathlib.AlgebraicGeometry.EllipticCurve.Affine
.
Mathematical background #
Let W
be a Weierstrass curve over a field F
given by a Weierstrass equation $W(X, Y) = 0$ in
affine coordinates. As in Mathlib.AlgebraicGeometry.EllipticCurve.Affine
, the set of nonsingular
rational points $W(F)$ of W
consist of the unique point at infinity $0$ and nonsingular affine
points $(x, y)$. With this description, there is an addition-preserving injection between $W(F)$
and the ideal class group of the coordinate ring $F[W] := F[X, Y] / \langle W(X, Y)\rangle$ of W
.
This is defined by mapping the point at infinity $0$ to the trivial ideal class and an affine point
$(x, y)$ to the ideal class of the invertible fractional ideal $\langle X - x, Y - y\rangle$.
Proving that this is well-defined and preserves addition reduce to checking several equalities of
integral ideals, which is done in WeierstrassCurve.Affine.CoordinateRing.XYIdeal_neg_mul
and in
WeierstrassCurve.Affine.CoordinateRing.XYIdeal_mul_XYIdeal
via explicit ideal computations.
Now $F[W]$ is a free rank two $F[X]$-algebra with basis ${1, Y}$, so every element of $F[W]$ is
of the form $p + qY$ for some $p, q \in F[X]$, and there is an algebra norm $N : F[W] \to F[X]$.
Injectivity can then be shown by computing the degree of such a norm $N(p + qY)$ in two different
ways, which is done in WeierstrassCurve.Affine.CoordinateRing.degree_norm_smul_basis
and in the
auxiliary lemmas in the proof of WeierstrassCurve.Affine.Point.instAddCommGroupPoint
.
Main definitions #
WeierstrassCurve.Affine.CoordinateRing
: the coordinate ringF[W]
of a Weierstrass curveW
.WeierstrassCurve.Affine.CoordinateRing.basis
: the power basis ofF[W]
overF[X]
.
Main statements #
WeierstrassCurve.Affine.CoordinateRing.instIsDomainCoordinateRing
: the coordinate ring of a Weierstrass curve is an integral domain.WeierstrassCurve.Affine.CoordinateRing.degree_norm_smul_basis
: the degree of the norm of an element in the coordinate ring in terms of the power basis.WeierstrassCurve.Affine.Point.instAddCommGroupPoint
: the type of nonsingular rational points on a Weierstrass curve forms an abelian group under addition.
References #
https://drops.dagstuhl.de/storage/00lipics/lipics-vol268-itp2023/LIPIcs.ITP.2023.6/LIPIcs.ITP.2023.6.pdf
Tags #
elliptic curve, group law, class group
Weierstrass curves in affine coordinates #
The coordinate ring $R[W] := R[X, Y] / \langle W(X, Y) \rangle$ of W
.
Equations
- W.CoordinateRing = AdjoinRoot W.polynomial
Instances For
The function field $R(W) := \mathrm{Frac}(R[W])$ of W
.
Equations
- W.FunctionField = FractionRing W.CoordinateRing
Instances For
Ideals in the coordinate ring over a ring #
Equations
- (_ : IsDomain W.CoordinateRing) = (_ : IsDomain (Polynomial (Polynomial R) ⧸ Ideal.span {W.polynomial}))
An element of the coordinate ring R[W]
of W
over R
.
Equations
- WeierstrassCurve.Affine.CoordinateRing.mk W = AdjoinRoot.mk W.polynomial
Instances For
The class of the element $X - x$ in $R[W]$ for some $x \in R$.
Equations
- WeierstrassCurve.Affine.CoordinateRing.XClass W x = (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.C (Polynomial.X - Polynomial.C x))
Instances For
The class of the element $Y - y(X)$ in $R[W]$ for some $y(X) \in R[X]$.
Equations
- WeierstrassCurve.Affine.CoordinateRing.YClass W y = (WeierstrassCurve.Affine.CoordinateRing.mk W) (Polynomial.X - Polynomial.C y)
Instances For
The ideal $\langle X - x \rangle$ of $R[W]$ for some $x \in R$.
Equations
Instances For
The ideal $\langle Y - y(X) \rangle$ of $R[W]$ for some $y(X) \in R[X]$.
Equations
Instances For
The ideal $\langle X - x, Y - y(X) \rangle$ of $R[W]$ for some $x \in R$ and $y(X) \in R[X]$.
Equations
Instances For
Ideals in the coordinate ring over a field #
The non-zero fractional ideal $\langle X - x, Y - y \rangle$ of $F(W)$ for some $x, y \in F$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coordinate ring as an R[X]
-algebra #
Equations
- (_ : IsScalarTower R (Polynomial R) W.CoordinateRing) = (_ : IsScalarTower R (Polynomial R) (Polynomial (Polynomial R) ⧸ Ideal.span {W.polynomial}))
Equations
- (_ : Subsingleton W.CoordinateRing) = (_ : Subsingleton W.CoordinateRing)
The $R$-algebra isomorphism from $R[W] / \langle X - x, Y - y(X) \rangle$ to $R$ obtained by evaluation at $y(X)$ and at $x$ provided that $W(x, y(x)) = 0$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The basis ${1, Y}$ for the coordinate ring $R[W]$ over the polynomial ring $R[X]$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Norms on the coordinate ring #
The axioms for nonsingular rational points on a Weierstrass curve #
The set function mapping an affine point $(x, y)$ of W
to the class of the non-zero fractional
ideal $\langle X - x, Y - y \rangle$ of $F(W)$ in the class group of $F[W]$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The group homomorphism mapping an affine point $(x, y)$ of W
to the class of the non-zero
fractional ideal $\langle X - x, Y - y \rangle$ of $F(W)$ in the class group of $F[W]$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- WeierstrassCurve.Affine.Point.instAddCommGroupPoint = AddCommGroup.mk (_ : ∀ (P Q : W.Point), P + Q = Q + P)
Elliptic curves in affine coordinates #
An affine point on an elliptic curve E
over R
.
Equations
- E.mk h = WeierstrassCurve.Affine.Point.some (_ : E.toAffine.nonsingular x y)