The generic point of an affine Weierstrass curve #
The coordinate ring W.CoordinateRing is R[X][Y] modulo the Weierstrass relation, so the
classes of X and Y in the function field are a pair satisfying that relation over
W.FunctionField. They are the generic point: a point of W base-changed to its own function
field.
What is proved here is that the pair is a point (equation_genericX_genericY), that evaluating a
bivariate polynomial at it is reduction modulo the Weierstrass relation
(evalEval_genericX_genericY), and that on an elliptic curve over a nontrivial base ring the
resulting solution is nonsingular, cutting out a point genericPoint of W⁄F(W). The
coordinate-ring image also lies in the subalgebra generated by the two coordinates
(algebraMap_mem_adjoin_genericX_genericY).
Over a field the generic x-coordinate is transcendental, and on an elliptic curve the partial
derivative W_Y = 2Y + a₁X + a₃ is nonzero at the generic point
(evalEval_polynomialY_genericX_genericY_ne_zero); in characteristic two the latter holds because
Δ ≠ 0 rules out a₁ = a₃ = 0.
The word "generic" is the usual geometric one, but no specialisation property is established:
nothing below says that a statement about this point transfers to the points of W, and no
consumer may rely on that.
Main definitions #
WeierstrassCurve.Affine.genericX,WeierstrassCurve.Affine.genericY: the coordinates.WeierstrassCurve.Affine.genericPoint: the point ofW⁄F(W)cut out by the generic coordinates.
Main results #
WeierstrassCurve.Affine.equation_genericX_genericY: the generic coordinates satisfy the equation.WeierstrassCurve.Affine.nonsingular_genericX_genericY: they are nonsingular, on an elliptic curve.WeierstrassCurve.Affine.evalEval_genericX_genericY: evaluation there is reduction.WeierstrassCurve.Affine.aeval_genericY_polynomial: the genericy-coordinate is a root of the Weierstrass polynomial.WeierstrassCurve.Affine.isIntegral_genericY: it is integral over any commutativeR[X]-algebra mapping compatibly to the function field.WeierstrassCurve.Affine.FunctionField.ringHom_ext: a ring homomorphism out of the function field is determined by the constants and the generic coordinates.WeierstrassCurve.Affine.algebraMap_eq_aeval_genericX: the image ofR[X]in the function field is the polynomials in the genericx-coordinate.WeierstrassCurve.Affine.algebraMap_mem_adjoin_genericX_genericY: the coordinate ring, read inside the function field, lies in theR-subalgebra generated by the generic coordinates.WeierstrassCurve.Affine.algebraMap_XClassandWeierstrassCurve.Affine.algebraMap_YClass: the classes ofX - xandY - yaregenericX - xandgenericY - y.WeierstrassCurve.Affine.transcendental_genericXandWeierstrassCurve.Affine.genericX_ne_algebraMap: the coordinatexis transcendental over the base field, so it takes no constant value.WeierstrassCurve.Affine.evalEval_polynomialY_genericX_genericY_ne_zero: on an elliptic curve over a field the partial derivativeW_Yis nonzero at the generic point.WeierstrassCurve.Affine.map_genericPoint_injective: anF-algebra homomorphism from the function field into a field extension is determined by the point it sends the generic point to.WeierstrassCurve.Affine.eq_of_baseChange_eq_sub_map_genericPoint: an embedding is likewise determined by the rational point it displaces the generic point by.
References #
- J. Silverman, The Arithmetic of Elliptic Curves, II.1, II.2.
Provenance #
The generic coordinates and their equation are adapted from the AINTLIB HasseWeil project
(Chris Birkbeck), Apache-2.0, HasseWeil/MulByIntPullback.lean at commit
513e83879e2f8cbc626eb9e04d660e92be16ccba, declarations x_gen, y_gen, W_KE, and
generic_equation. Its transcendence statement is reproved here as transcendental_genericX.
The bundled genericPoint and its coordinate-accessor API are not ported from that source.
map_genericPoint_injective adapts the statement of that project's
HasseWeil/GapSpines.lean declaration emb_le_card_kernel, same commit and license, which
assigns a point to each embedding and shows the assignment injective. The proof differs: the
source works with points over AlgebraicClosure K(E) and with an isogeny carrying its own point
map, while here the point is the image of the generic point and injectivity comes from
CoordinateRing.algHom_ext and IsFractionRing.ringHom_ext.
The generic x-coordinate: the class of X in the function field.
Equations
Instances For
The generic y-coordinate: the class of Y in the function field.
Equations
Instances For
The generic coordinate x is the image of the coordinate-ring class of X in the function
field.
The generic coordinate y is the image of the coordinate-ring class of Y in the function
field.
The generic coordinate x is the image of polynomial X under the induced map from R[X]
to the function field.
Ring homomorphisms out of the function field are determined by the constants and the generic
coordinates. The function field is a localization of the coordinate ring, which is generated
over R by the classes of x and y.
Evaluating at the generic point is reduction modulo the Weierstrass relation. A bivariate
polynomial over R, pushed to the function field and evaluated at (genericX, genericY), is the
image of its class in the coordinate ring.
This is the workhorse: it converts any polynomial expression at the generic point into the image of a coordinate-ring element, where the ring's own API applies.
The generic coordinate functions satisfy the equation of the curve. (X, Y) satisfies
the equation of W base-changed to the function field, because the Weierstrass polynomial is
precisely what the coordinate ring quotients out.
The generic y-coordinate is a root of the Weierstrass polynomial.
This is AINTLIB's root_aeval_polynomial_map of projects/HasseWeil/HasseWeil/Ramification.lean
at revision 513e83879e2f, Apache-2.0, stated over R[X] rather than over a fraction field.
The generic y-coordinate is integral over any commutative R[X]-algebra L mapping
compatibly to the function field. L need not embed: no injectivity is assumed.
The image of R[X] in the function field consists of the polynomials in the generic
x-coordinate.
Scalars pass through the inclusion of the coordinate ring into the function field. An
R[X]-scalar acting on R[W] becomes multiplication by its image in R(W).
The coordinate ring, read inside the function field, lies in the subalgebra generated by the
generic point. Every affine function of W is a polynomial in x and y over R, so its
image lies in the R-subalgebra R[x, y] of R(W). The proof uses that R[W] is free of rank
two over R[X] with basis {1, y}.
The generic coordinates are nonsingular, so they define an affine point of the base-changed curve.
Beyond the ambient [CommRing R] this needs [W.IsElliptic], which turns the equation into
nonsingularity, and [Nontrivial R], which is what supplies Nontrivial W.FunctionField to
equation_iff_nonsingular.
The generic point of W: the tautological point of W with coordinates in its own
function field.
Equations
Instances For
The generic point is the affine point whose coordinates are genericX W and genericY W.
The coordinate function x is transcendental over the base field.
A constant of the function field is the class of the constant polynomial C (C c).
The class of X - x in the function field is genericX - x.
The class of Y - y in the function field is genericY - y.
The coordinate function x takes no constant value, being transcendental.
The partial derivative W_Y is nonzero at the generic point of an elliptic curve.
An F-embedding of the function field into a field extension is determined by the image of
the generic point. The generic point's two coordinates generate the function field over F, so
an embedding is recoverable from the point it induces.
An embedding is determined by the rational point it displaces the generic point by. If
each index i carries a rational point whose base change is e i's displacement of the generic
point from a fixed embedding σ₀, then that point determines e i.
This is the injectivity step shared by the embedding counts of the isogenies whose kernels are counted this way: they differ in why the displacement is rational, not in this step.