Nonsingular points and the group law in affine coordinates #
Let W be a Weierstrass curve over a field F given by a Weierstrass equation W(X, Y) = 0 in
affine coordinates. The type of nonsingular points in affine coordinates is an inductive, consisting
of the unique point at infinity ๐ and nonsingular affine points (x, y). It can be endowed with a
group law, with ๐ as the identity nonsingular point, which is uniquely determined by the formulae
in Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean.
With this description, there is an addition-preserving injection from the nonsingular points to the
ideal class group of the affine coordinate ring F[W] := F[X, Y] / โจW(X, Y)โฉ. This is given by
mapping ๐ to the trivial ideal class and a nonsingular affine point (x, y) to the ideal class of
the invertible ideal โจX - x, Y - yโฉ. Proving that this is well-defined and preserves addition
reduces to equalities of ideals checked 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] โ 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.instAddCommGroup.
This file defines the group law on nonsingular points in affine coordinates.
Main definitions #
WeierstrassCurve.Affine.CoordinateRing: the affine coordinate ringF[W].WeierstrassCurve.Affine.CoordinateRing.basis: the power basis ofF[W]overF[X].WeierstrassCurve.Affine.Point: a nonsingular point in affine coordinates.WeierstrassCurve.Affine.Point.neg: the negation of a nonsingular point in affine coordinates.WeierstrassCurve.Affine.Point.add: the addition of a nonsingular point in affine coordinates.
Main statements #
WeierstrassCurve.Affine.CoordinateRing.instIsDomainCoordinateRing: the affine 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 affine coordinate ring in terms of its power basis.WeierstrassCurve.Affine.Point.instAddCommGroup: the type of nonsingular points in affine coordinates forms an abelian group under addition.
References #
- J Silverman, The Arithmetic of Elliptic Curves
- https://drops.dagstuhl.de/storage/00lipics/lipics-vol268-itp2023/LIPIcs.ITP.2023.6/LIPIcs.ITP.2023.6.pdf
Tags #
elliptic curve, affine, point, group law, class group
The affine coordinate ring #
The affine coordinate ring R[W] := R[X, Y] / โจW(X, Y)โฉ of a Weierstrass curve W.
Equations
- W'.CoordinateRing = AdjoinRoot W'.polynomial
Instances For
The function field R(W) := Frac(R[W]) of a Weierstrass curve W.
Equations
Instances For
The natural ring homomorphism mapping R[X][Y] to R[W].
Equations
Instances For
The power basis {1, Y} for R[W] over R[X].
Equations
- WeierstrassCurve.Affine.CoordinateRing.basis W' = โฏ.by_cases (fun (x : Subsingleton R) => default) fun (x : Nontrivial R) => (AdjoinRoot.powerBasis' โฏ).basis.reindex (finCongr โฏ)
Instances For
The ring homomorphism R[W] โ+* S[W.map f] induced by a ring homomorphism f : R โ+* S.
Equations
- WeierstrassCurve.Affine.CoordinateRing.map W' f = AdjoinRoot.lift ((AdjoinRoot.of (W'.map f).polynomial).comp (Polynomial.mapRingHom f)) (AdjoinRoot.root (W'.map f).polynomial) โฏ
Instances For
Ideals in the affine coordinate ring #
The class of the element X - x in R[W] for some x in R.
Equations
Instances For
The class of the element Y - y(X) in R[W] for some y(X) in R[X].
Equations
Instances For
The ideal โจX - xโฉ of R[W] for some x in R.
Equations
Instances For
The ideal โจY - y(X)โฉ of R[W] for some y(X) in R[X].
Equations
Instances For
The ideal โจX - x, Y - y(X)โฉ of R[W] for some x in R and y(X) in R[X].
Equations
Instances For
The R-algebra isomorphism from R[W] / โจX - x, Y - y(X)โฉ to R obtained by evaluation at
some y(X) in R[X] and at some x in R provided that W(x, y(x)) = 0.
Equations
Instances For
The non-zero fractional ideal โจX - x, Y - yโฉ of F(W) for some x and y in F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Norms on the affine coordinate ring #
Nonsingular points in affine coordinates #
A nonsingular point on a Weierstrass curve W in affine coordinates. This is either the unique
point at infinity WeierstrassCurve.Affine.Point.zero or a nonsingular affine point
WeierstrassCurve.Affine.Point.some (x, y) satisfying the Weierstrass equation of W.
- zero {R : Type r} [CommRing R] {W' : Affine R} : W'.Point
- some {R : Type r} [CommRing R] {W' : Affine R} (x y : R) (h : W'.Nonsingular x y) : W'.Point
Instances For
Equations
- One or more equations did not get rendered due to their size.
- WeierstrassCurve.Affine.instDecidableEqPoint.decEq WeierstrassCurve.Affine.Point.zero WeierstrassCurve.Affine.Point.zero = isTrue โฏ
- WeierstrassCurve.Affine.instDecidableEqPoint.decEq WeierstrassCurve.Affine.Point.zero (WeierstrassCurve.Affine.Point.some x_2 y h) = isFalse โฏ
- WeierstrassCurve.Affine.instDecidableEqPoint.decEq (WeierstrassCurve.Affine.Point.some x_2 y h) WeierstrassCurve.Affine.Point.zero = isFalse โฏ
Instances For
The equivalence between the nonsingular points on a Weierstrass curve W in affine coordinates
satisfying a predicate and the set of pairs โจx, yโฉ satisfying W.Nonsingular x y with zero.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the nonsingular points on a Weierstrass curve W in affine coordinates
and the set of pairs โจx, yโฉ satisfying W.Nonsingular x y with zero.
Equations
Instances For
A point on an elliptic curve W over R.
Equations
Instances For
The equivalence between the points on an elliptic curve W in affine coordinates satisfying a
predicate and the set of pairs โจx, yโฉ satisfying W.Equation x y with zero.
Equations
Instances For
The equivalence between the rational points on an elliptic curve E and the set of pairs
โจx, yโฉ satisfying E.Equation x y with zero.
Equations
Instances For
Group law in affine coordinates #
Equations
Equations
The negation of a nonsingular point on a Weierstrass curve in affine coordinates.
Given a nonsingular point P in affine coordinates, use -P instead of neg P.
Equations
- WeierstrassCurve.Affine.Point.zero.neg = 0
- (WeierstrassCurve.Affine.Point.some x_1 y h).neg = WeierstrassCurve.Affine.Point.some x_1 (W'.negY x_1 y) โฏ
Instances For
Equations
Equations
- WeierstrassCurve.Affine.Point.instInvolutiveNeg = { toNeg := WeierstrassCurve.Affine.Point.instNeg, neg_neg := โฏ }
The addition of two nonsingular points on a Weierstrass curve in affine coordinates.
Given two nonsingular points P and Q in affine coordinates, use P + Q instead of add P Q.
Equations
- One or more equations did not get rendered due to their size.
- WeierstrassCurve.Affine.Point.zero.add xโ = xโ
- xโ.add WeierstrassCurve.Affine.Point.zero = xโ
Instances For
Equations
Equations
- WeierstrassCurve.Affine.Point.instAddZeroClass = { toZero := WeierstrassCurve.Affine.Point.instZero, toAdd := WeierstrassCurve.Affine.Point.instAdd, zero_add := โฏ, add_zero := โฏ }
The group homomorphism mapping a nonsingular affine point (x, y) of a Weierstrass curve W to
the class of the non-zero fractional ideal โจX - x, Y - yโฉ in the ideal class group of F[W].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- WeierstrassCurve.Affine.Point.instAddCommSemigroup = { toAdd := WeierstrassCurve.Affine.Point.instAdd, add_assoc := โฏ, add_comm := โฏ }
Equations
- One or more equations did not get rendered due to their size.
Maps and base changes #
The group homomorphism on nonsingular points induced by an algebra homomorphism f : F โโ[S] K,
where W is defined over a subring of a ring S, and F and K are field extensions of S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The group homomorphism on nonsingular points induced by the base change from F to K, where
W is defined over a subring of a ring S, and F and K are field extensions of S.
Equations
Instances For
The x-coordinate map to โยน #
We define the map from points on an affine Weierstrass curve over R to the projective line
by producing a coordinate vector in Fin 2 โ R that represents the projective point.
This map sends a point P on a Weierstrass curve W' in affine coordinates
to a representative of its image on โยน under the x-coordinate map.
We take ![1, 0] for the point at infinity and ![x, 1],
where x is the x-coordinate of P, for an affine point.
We define it in the general setting of a commutative base ring, even though the definition of points in this setting is not really correct. For Weierstrass curves over fields, this gives the correct notion.