Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.Affine.FunctionField.GenericPoint.Basic

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 #

Main results #

References #

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.

noncomputable def WeierstrassCurve.Affine.genericX {R : Type u_1} [CommRing R] (W : Affine R) :

The generic x-coordinate: the class of X in the function field.

Equations
Instances For
    noncomputable def WeierstrassCurve.Affine.genericY {R : Type u_1} [CommRing R] (W : Affine R) :

    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.

      theorem WeierstrassCurve.Affine.FunctionField.ringHom_ext {R : Type u_1} [CommRing R] {W : Affine R} {S : Type u_2} [Semiring S] {f g : W.FunctionField →+* S} (hc : ∀ (a : R), f ((algebraMap R W.FunctionField) a) = g ((algebraMap R W.FunctionField) a)) (hx : f W.genericX = g W.genericX) (hy : f W.genericY = g W.genericY) :
      f = g

      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.

      @[simp]

      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).

        @[simp]

        The class of X - x in the function field is genericX - x.

        @[simp]

        The class of Y - y in the function field is genericY - y.

        The coordinate function x takes no constant value, being transcendental.

        @[simp]

        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.

        theorem WeierstrassCurve.Affine.eq_of_baseChange_eq_sub_map_genericPoint {F : Type u_2} [Field F] (W : Affine F) [WeierstrassCurve.IsElliptic W] [DecidableEq F] {Ω : Type u_3} [Field Ω] [Algebra F Ω] [DecidableEq Ω] {ι : Type u_4} (e : ι → W.FunctionField →ₐ[F] Ω) (σ₀ : W.FunctionField →ₐ[F] Ω) {f : ι → (toAffine (W.baseChange F)).Point} (hf : ∀ (i : ι), (Point.baseChange F Ω) (f i) = (Point.map (e i)) W.genericPoint - (Point.map σ₀) W.genericPoint) {i j : ι} (h : f i = f j) :
        e i = e j

        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.