Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.DivisionPolynomial.Cusp

Division polynomials of the cusp curve #

The cusp curve Y² = X³ has every coefficient zero, so its low division polynomials collapse to their leading terms. Two different mechanisms produce that collapse: Ψ₂Sq, Ψ₃ and preΨ₄ are polynomials in the bᵢ, all of which vanish, leaving the one monomial that carries no bᵢ; whereas ψ₂ = 2Y + a₁X + a₃ contains no bᵢ at all and collapses directly because a₁ = a₃ = 0.

Main results #

Three of these parameterise the univariate family: preΨ' is generated from Ψ₂Sq ^ 2, Ψ₃ and preΨ₄, so collapsing those collapses preΨ, ΨSq and Φ on the cusp curve too — but only once the consumer unfolds whichever of those definitions it is working with, since they are definitions rather than simp lemmas and bare simp does not reduce them. ψ₂ is not one of the three; it serves the bivariate division polynomials.

Implementation notes #

cusp's definition body is unexposed, so these proofs do not unfold it — they project through the @[simp] lemmas cusp_a₁ … cusp_a₆ that Weierstrass.lean provides for exactly this purpose. Everything else here is unfolded, and each name is exposed by a different Mathlib module, which is worth recording separately since a future bump could move any one of them:

C_ofNat appears in two of the proofs because the Ψ₂Sq and ψ₂ normal forms end with a constant polynomial C 4 / C 2 that must be matched against the numeral in the statement.

Roadmap #

TauCetiRoadmap/EllipticCurves/README.md:99 — "[n] is division polynomials", which names ZSMul.lean and mathlib #13782 as "the mathlib-track anchor Layer 1 consumes". Three of these four are that file's cusp specialisation, used to evaluate the universal division polynomials at (1, 1); cusp_Ψ₂Sq completes the family. The onward consumer is Layer 6's "The torsion subgroup and Nagell–Lutz" (README.md:821), whose stated route is division polynomials.

Provenance #

Adapted from LutzNagell/ZSMul.lean in AINTLIB (github.com/CBirkbeck/AINTLIB, Apache-2.0) at dev/modular-curves @ 9fec8eba7652 — the revision TauCetiRoadmap/EllipticCurves/README.md pins for the NagellLutz project. Declarations cusp_ψ₂, cusp_Ψ₃, cusp_preΨ₄. That file's header reads Authors: David Kurniadi Angdinata, Junyan Xu; following this repository's convention for adapted material the upstream authorship is credited here rather than in the copyright header.

Three changes from the source. The statements are generalised from cusp ℤ to cusp R over any CommRing R — nothing in them is specific to ℤ. The source unfolds cusp directly (simp [cusp, ψ₂, …]), which is not available across a module boundary, so the projection lemmas are used instead. And cusp_Ψ₂Sq has no counterpart upstream: it is added here to complete the family, since without it simp leaves (cusp R).Ψ₂Sq irreducible and any consumer of preΨ, ΨSq or Φ on the cusp curve would have to re-derive it.

@[simp]

On the cusp curve Y² = X³, the 2-division polynomial is 2Y.

@[simp]

On the cusp curve Y² = X³, the univariate polynomial congruent to ψ₂² is 4X³.

@[simp]

On the cusp curve Y² = X³, the 3-division polynomial is 3X⁴.

@[simp]

On the cusp curve Y² = X³, the auxiliary polynomial preΨ₄ is 2X⁶.