The coordinate pullback of multiplication by n, for every nonzero n #
Isogeny/Basic.lean gives the identity coordinate pullback and Isogeny/Frobenius/Basic.lean gives
the Frobenius one. This file gives [n]: multiplication by n pulls back to a map
W.CoordinateRing →ₐ[F] W.FunctionField wherever ψₙ does not vanish at the generic point.
That non-vanishing is available for every n ≠ 0 once the curve is nonsingular, so this
file constructs [n] in every characteristic, [p] in characteristic p included. Two lemmas
discharge it and neither subsumes the other: psiFunctionField_ne_zero from (n : F) ≠ 0,
which needs no nonsingularity, and psiFunctionField_ne_zero_of_Δ_ne_zero from W.Δ ≠ 0 and
n ≠ 0, which needs no hypothesis on the characteristic. mulByIntPullback itself, and
everything it is built from, carry neither: they ask for psiFunctionField W n ≠ 0 directly.
The construction is the division-polynomial formula read at the generic point. The coordinate
ring W.CoordinateRing is F[X][Y] modulo the Weierstrass relation, so the pair (X, Y) is
itself a point of W over the function field W.FunctionField — the generic point. n times
it has coordinates φₙ / ψₙ² and ωₙ / ψₙ³ by the division-polynomial formulas, and sending
X and Y there is exactly a coordinate pullback.
What is not here #
The MapsInfinity condition, and so [n] as an Isogeny W W, are not proved here. Neither
criterion Isogeny/Basic.lean offers applies directly: mapsInfinity_of_pow wants a fixed
power of every coordinate function to be pulled back, which is the Frobenius shape and not this
one, and mapsInfinity_iff_isEquiv_comap_infinityPlace wants the induced map of function
fields, which is available only after the pullback below is known injective. That chain —
injectivity, the function-field map, then the place comparison — is its own topic and its own
file. Note the order of dependence: Isogeny/FunctionField.lean proves transcendence,
injectivity and the field pullback for any isogeny, but each of those consumes
mapsInfinity, so none of them can be used to establish it.
Every definition here is paired with a _def equation lemma, because a def's body is not
exposed across the module boundary even inside a public section: a downstream
simp only [mulByIntX] is rejected with Expected a definition with an exposed body. Without
them the file cannot be computed with from outside at all.
One fact is the whole content here: equation_mulByInt, that the pair (φₙ/ψₙ², ωₙ/ψₙ³)
satisfies the equation of the base-changed curve. It is not a polynomial identity to be
checked; it holds because n • P is a point of the curve whenever P is, which is
WeierstrassCurve.zsmul_point_eq_smulEval at the generic point.
That the generic point is itself a point of the curve — the other half of the argument — lives
in Affine/FunctionField/GenericPoint/Basic.lean as
WeierstrassCurve.Affine.equation_genericX_genericY,
since it is about W and not about [n].
Main definitions #
TauCeti.Isogeny.mulByIntX,TauCeti.Isogeny.mulByIntY: the rational expressionsφₙ/ψₙ²andωₙ/ψₙ³, the coordinates of[n]at the generic point whereψₙ ≠ 0.TauCeti.Isogeny.mulByIntPullback: the coordinate pullback of[n], givenψₙ ≠ 0.TauCeti.Isogeny.mulByIntPullbackOfNeZero: its specialisation ton ≠ 0on an elliptic curve, where the non-vanishing is discharged.
The generic point itself (genericX, genericY) is not defined here; it
is WeierstrassCurve.Affine's, in Affine/FunctionField/GenericPoint/Basic.lean.
Main results #
TauCeti.Isogeny.equation_mulByInt: the coordinates of[n]satisfy the equation ofWover its function field.TauCeti.Isogeny.psiFunctionField_two_mul:ψ_{2n} = preΨ_{2n} · ψ₂at the generic point.TauCeti.Isogeny.psiFunctionField_ne_zero:ψₙdoes not vanish at the generic point when(n : F) ≠ 0, needing no nonsingularity.TauCeti.Isogeny.psiFunctionField_ne_zero_of_Δ_ne_zero: the same conclusion fromW.Δ ≠ 0andn ≠ 0, with no hypothesis on the characteristic. These are the two discharges ofmulByIntPullback's hypothesis; neither subsumes the other.TauCeti.Isogeny.phiFunctionField_eq_algebraMap:Φₙat the generic point is the image of the univariateΦₙ, the companion ofpsiFunctionField_sqfor the numerator.TauCeti.Isogeny.mulByIntX_mul_aeval_ΨSq: the coordinate identity[n]*x · ΨSqₙ(x) = Φₙ(x)at the generic point, whereψₙdoes not vanish.TauCeti.Isogeny.mulByIntPullback_mk: the pullback of an arbitrary class, as evaluation of a bivariate polynomial at(φₙ/ψₙ², ωₙ/ψₙ³), withTauCeti.Isogeny.mulByIntPullback_XandTauCeti.Isogeny.mulByIntPullback_Yits values on the two coordinates.TauCeti.Isogeny.tautologicalPoint_mulByIntPullback: the tautological point of[n]isn •the generic point. It lives here, next to the Jacobian-coordinate lemmas it is proved from, which stay private.
References #
- J. Silverman, The Arithmetic of Elliptic Curves, III.4 and the division-polynomial formulas of Exercise 3.7.
- Adapted from the AINTLIB
HasseWeilproject (Chris Birkbeck),HasseWeil/MulByIntPullback.lean, Apache-2.0, at commit513e83879e2f8cbc626eb9e04d660e92be16ccba, declarationsx_gen,y_gen,W_KE,generic_equation,Φ_ff,ΨSq_ff,ψ_ff,ω_ff,mulByInt_x,mulByInt_y,mulByInt_xHom,mulByInt_weierstrassandmulByInt_coordHom. The source stops at aRingHomout of the coordinate ring and then builds its own function-field pullback, injectivity and transcendence statements by hand; here the ring hom is upgraded to theAlgHomthatTauCeti.CoordinatePullbackalready asks for. The source's function-field pullback, injectivity and transcendence are not ported and not reproved here: they are deferred untilMapsInfinityis available, because each of the corresponding general results inIsogeny/FunctionField.leanconsumes it. See "What is not here".
The image of the division polynomial ψₙ in the function field, i.e. ψₙ evaluated at the
generic point. Its non-vanishing is the hypothesis every construction below carries.
Equations
Instances For
The image of the division polynomial ωₙ in the function field.
Equations
Instances For
The image of the division polynomial φₙ in the function field.
Equations
Instances For
The image of the complementary division polynomial ψcₙ in the function field. It is the
numerator of the pullback of 2y + a₁x + a₃ along [n], by the defining identity ω_spec.
Equations
Instances For
The rational division-polynomial expression φₙ / ψₙ².
This is the x-coordinate of [n] at the generic point exactly when ψₙ does not vanish
there; at a zero of ψₙ the quotient is junk, since [n] sends that point to infinity, which
has no affine coordinate. Every result about it below therefore carries ψₙ ≠ 0.
Equations
Instances For
The rational division-polynomial expression ωₙ / ψₙ³, the y-coordinate of [n] at the
generic point under the same proviso as mulByIntX: exactly when ψₙ does not vanish there.
Equations
Instances For
The defining equation of psiFunctionField.
The defining equation of omegaFunctionField.
The defining equation of phiFunctionField.
The defining equation of psicFunctionField.
Φₙ at the generic point is the image of the univariate Φₙ.
The defining equation of mulByIntX: the x-coordinate of [n] is φₙ / ψₙ².
The defining equation of mulByIntY: the y-coordinate of [n] is ωₙ / ψₙ³.
ψₙ² = ΨSqₙ in the function field: the division polynomial's square is the univariate
ΨSq, already known in the coordinate ring as mk_ψ followed by mk_Ψ_sq.
ψ_{2n} = preΨ_{2n} · ψ₂ at the generic point. Ψ at an even argument is
C (preΨ) * ψ₂, and ψ and Ψ agree in the coordinate ring, so an even-indexed
psiFunctionField splits off its preΨ factor.
Φₙ at the generic point is φₙ: the univariate division polynomial evaluated at the
generic coordinate is its image in the function field.
ΨSqₙ at the generic point is ψₙ².
The coordinate identity at the generic point: [n]*x · ΨSqₙ(x) = Φₙ(x).
The coordinates of [n] satisfy the equation of W over its function field.
This is the fact that makes [n] a coordinate pullback at all, and it is not a polynomial
identity: it holds because n • P is again a point of the curve whenever P is. Concretely,
zsmul_point_eq_smulEval identifies n • (generic point) with the Jacobian class of
(φₙ : ωₙ : ψₙ), that class is nonsingular because it is a point, and ψₙ ≠ 0 lets it be read
in affine coordinates — where it becomes exactly this equation.
ψₙ does not vanish at the generic point when the image of n in F is nonzero.
The hypothesis is on n in F, not on n in ℤ: in characteristic p it excludes n = p.
It asks nothing about nonsingularity, which is what keeps it useful where
psiFunctionField_ne_zero_of_Δ_ne_zero does not apply; neither of the two subsumes the other.
The restriction is inherited from Mathlib.ΨSq_ne_zero, and every non-vanishing lemma in
Mathlib's division-polynomial development is conditional the same way — preΨ_ne_zero,
ΨSq_ne_zero, Ψ₃_ne_zero, preΨ₄_ne_zero — because each is proved from a leading coefficient
((W.ΨSq n).coeff (n.natAbs ^ 2 - 1) = n ^ 2), exactly what vanishes when p ∣ n.
ψₙ does not vanish at the generic point of a nonsingular curve, for every n ≠ 0 — in
every characteristic, p ∣ n included.
This is the characteristic-free discharge of mulByIntPullback's hypothesis, and it is what lets
this file construct [p] in characteristic p. It trades the condition on the characteristic for
nonsingularity: ΨSq_ne_zero_of_Δ_ne_zero gets ΨSqₙ ≠ 0 from W.Δ ≠ 0 by way of
IsCoprime (W.Φ n) (W.ΨSq n) (Silverman, Exercise III.3.7), which reads the non-vanishing off
coprimality rather than off a leading coefficient. Δ ≠ 0 is stated as a hypothesis rather than
taken as [W.IsElliptic] so that the lemma matches its supplier; mulByIntPullbackOfNeZero
supplies it from the instance.
The coordinate pullback of [n]. The point (φₙ/ψₙ², ωₙ/ψₙ³) over W.FunctionField,
which equation_mulByInt says lies on W, defines a pullback through
WeierstrassCurve.Affine.CoordinateRing.evalAlgHom.
The hypothesis is the weakest one the construction uses: ψₙ must not vanish at the generic
point, which is what makes φₙ/ψₙ² and ωₙ/ψₙ³ defined. Two lemmas discharge it —
psiFunctionField_ne_zero and psiFunctionField_ne_zero_of_Δ_ne_zero — and
mulByIntPullbackOfNeZero is the packaged form.
Equations
Instances For
The coordinate pullback of [n] for every n ≠ 0, the non-vanishing hypothesis of
mulByIntPullback being discharged by psiFunctionField_ne_zero_of_Δ_ne_zero. This is the
specialisation to use unless you can supply ψₙ ≠ 0 yourself.
The hypothesis is on n in ℤ, so this does give [p] in characteristic p. Nonsingularity
comes from the [W.IsElliptic] instance the definition already carried, which is why taking
n ≠ 0 here is a strict weakening of the earlier (n : F) ≠ 0 and costs nothing.
Equations
Instances For
The pullback of [n] on an arbitrary class: the class of a bivariate polynomial p goes
to p evaluated at (φₙ/ψₙ², ωₙ/ψₙ³) over the function field. This is the general evaluation
rule; mulByIntPullback_X and mulByIntPullback_Y are its two special cases.
The pullback of [n] sends the class of X to φₙ/ψₙ².
Stated with AdjoinRoot.of, not algebraMap F[X] W.CoordinateRing, because
AdjoinRoot.algebraMap_eq is itself a simp lemma: a goal mentioning the class of X is
already normalised this way by the time this fires.
The pullback of [n] sends the class of Y to ωₙ/ψₙ³.
The tautological point of [n] is n times the generic point.