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 := ⋯ }
A nonzero affine 2-torsion point some x y h of W (that is, P + P = 0) has X-coordinate
a root of W.twoTorsionPolynomial.
x is a root of the 2-torsion polynomial of a Weierstrass curve of characteristic
different from 2 with nonzero discriminant if and only if it is the X-coordinate of a nonzero
affine 2-torsion point.
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.
Equations
Instances For
We give an explicit expression for xRep of P + P when 2*P ≠ 0.
We give an explicit expression for xRep of P + Q when P ≠ ±Q.
We give an explicit expression for xRep of P - Q when P ≠ ±Q.