Documentation

TauCeti.AlgebraicGeometry.EllipticCurve.MordellWeil.BadPrimes

The bad primes of a Weierstrass curve, and the arithmetic away from them #

Let W : y² = f(x) = x³ + a₂x² + a₄x + a₆ be an elliptic curve in characteristic ≠ 2 normal form over a field K, and let R be a Dedekind domain with fraction field K. The bad primes of W over R are the primes dividing 2 or the discriminant Δ, together with those occurring in a denominator of a₂, a₄ or a₆. There are finitely many of them, and away from them the Weierstrass equation is as well behaved as it can be: the coefficients are integral, the root θ of f in a field factor K[X] ⧸ (p) of the étale algebra is integral, and — this is the point of putting Δ in the set — the derivative f' θ = 3θ² + 2a₂θ + a₄ is a unit.

That last statement is the arithmetic heart of Step 6 of the weak Mordell–Weil theorem. It is proved by evaluating at θ the Bézout identity behind separable_f, which exhibits Δ as f' θ times an explicit quadratic in θ. Both factors are integral at a good prime and their product is a unit, so both are units.

Everything here is stated at a prime w of the ring of integers of a field factor that does not lie above a bad prime of R. The estimates combine into even_valuationOfNeZero_sub_root: at such a prime the valuation of x - θ is even, for (x, y) any point of W with f x ≠ 0. That is the arithmetic content of Step 6 of the weak Mordell–Weil theorem with all the group theory stripped away; TauCeti.AlgebraicGeometry.EllipticCurve.MordellWeil.SelmerGroupA puts the group theory back and reads it as membership in a Selmer group.

Main definitions #

Main results #

Implementation notes #

The Valuation lemmas about the monic cubic t³ + at² + bt + c used to live here as private plumbing, on the grounds that this file and its sequel were their only consumers. The two public statements now sit with the general statements they specialize, in TauCeti.RingTheory.Valuation.RootMonic, and are used from here as Valuation dot notation; one of them, map_cubic_eq_of_one_lt, has since gained a consumer outside MordellWeil/. The coefficient helper they share stays private there. The Core section still lives in this file rather than in SelmerGroupA because it is the last consumer of the RingOfIntegers estimates above.

Roadmap #

TauCetiRoadmap/EllipticCurves/README.md, Layer 6 (Mordell–Weil), Step 6 of the weak Mordell–Weil theorem: the image of the descent map lies in A(S,2), where S is the set of bad primes defined here.

Provenance #

Adapted, with the author's proofs, from Michael Stoll's EllipticCurves project (github.com/MichaelStollBayreuth/EllipticCurves, Apache-2.0, pinned by TauCetiRoadmap/EllipticCurves/README.md at 66889eada51a), EllipticCurves/WeakMordellWeil.lean, sections BadPrimes, RingOfIntegers and Core (the source's Cubic section is now in TauCeti.RingTheory.Valuation.RootMonic). The source carries its own HeightOneSpectrum.below; at our Mathlib pin that map is HeightOneSpectrum.under, which is used here instead. The source is written against Lean v4.32.0; this is a forward port.

The set of bad primes of R: those dividing 2 or the discriminant of W, and those occurring in a denominator of a₂, a₄ or a₆ (the latter three are the supports of the coefficients in the sense of IsDedekindDomain.HeightOneSpectrum.Support). Away from these, the x - T map lands in the 2-Selmer group.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    There are only finitely many bad primes: 2 and W.Δ are nonzero, and the support of any element of K is finite.

    @[simp]

    Membership in badPrimes, as an arithmetic condition. A prime is bad exactly when 2 or Δ fails to be a unit there, or one of a₂, a₄, a₆ fails to be integral there.

    This is the characteristic lemma for badPrimes: the five projections below are read off from it, and it is what a consumer should use rather than unfolding the nested unions in the definition.

    The five good-prime conditions, packaged: at a prime that is not bad, 2 and Δ are units and a₂, a₄, a₆ are integral.

    At a good prime, a₂ is integral: a prime where it is not lies in its support, hence is bad.

    At a good prime, the discriminant is a unit. This is the half of badPrimes that makes the reduction of W nonsingular there, and it is what valuation_deriv_root_eq_one consumes.

    At a good prime, 2 is a unit: the 2-component of badPrimes, read off like the other four.

    Nothing in these files consumes it. Step 6 needs Δ to be a unit and a₂, a₄, a₆ to be integral at a good prime, and never the valuation of 2; it is recorded here so that the projections out of badPrimes are complete. In the source this file is adapted from, its uses are in the semilocal comparison (EllipticCurves/SelmerGroup.lean), a later rung of the descent.

    @[reducible, inline]
    noncomputable abbrev WeierstrassCurve.Affine.ringOfIntegersFactor {K : Type u_1} [Field K] (W : Affine K) (R : Type u_2) [CommRing R] [Algebra R K] (p : W.f.Factors) :
    Type u_1

    The ring of integers of the field factor K[X] ⧸ (p) over R.

    Equations
    Instances For

      The ring of integers of a field factor is a Dedekind domain: it is the integral closure of R in a finite separable extension of the fraction field K.

      A field factor is the fraction field of its ring of integers.

      The ring of integers of a field factor is torsion-free over R, as R embeds into it.

      A prime w not lying above a bad prime lies over a good prime of R.

      θ satisfies the Weierstrass cubic in the field factor K[X] ⧸ (p).

      theorem WeierstrassCurve.Affine.mk_fCofactor_eq {K : Type u_1} [Field K] (W : Affine K) (p : W.f.Factors) (x : K) :
      (AdjoinRoot.mk ↑p) (W.fCofactor x) = AdjoinRoot.root ↑p ^ 2 + ((algebraMap K (AdjoinRoot ↑p)) x + (algebraMap K (AdjoinRoot ↑p)) W.a₂) * AdjoinRoot.root ↑p + ((algebraMap K (AdjoinRoot ↑p)) x ^ 2 + (algebraMap K (AdjoinRoot ↑p)) W.a₂ * (algebraMap K (AdjoinRoot ↑p)) x + (algebraMap K (AdjoinRoot ↑p)) W.a₄)

      The cofactor f / (X - x), computed in the field factor K[X] ⧸ (p).

      At a prime w not above a bad prime, the root θ is integral: it satisfies the monic cubic f, whose coefficients are integral at w.

      An element of K with trivial valuation at the prime under w has trivial valuation at w.

      At a prime w not above a bad prime, f' θ = 3θ² + 2a₂θ + a₄ is a unit.

      This is where Δ earns its place in badPrimes: evaluating the Bézout identity behind separable_f at θ gives v(θ) * f' θ = Δ for an explicit quadratic v. Both factors are integral at w and the product is a unit, so both are units.

      At a prime w not above a bad prime, if x is w-integral and x - θ is not a w-unit, then the cofactor θ² + (x + a₂)θ + (x² + a₂x + a₄) is a w-unit: modulo x - θ it equals f' θ.

      Stated in the shape mk_fCofactor_eq produces, so that it applies to the image of fCofactor x in the field factor without reshaping.

      If x is a root of f, then at a prime w not above a bad prime the p-component of the x - T representative is a unit.

      Both x and θ are roots of f, so x - θ times the cofactor is 0 and, L being a field, one of the two factors vanishes. If x = θ the component is f' θ; if the cofactor vanishes the component is x - θ and f' θ = -(x - θ)(x + 2θ + a₂). Either way valuation_deriv_root_eq_one makes it a unit.

      The arithmetic core of Step 6, generic case, with all the group theory stripped away: for (x, y) on W with f x ≠ 0, and w a prime of the ring of integers of the field factor K[X] ⧸ (p) not lying above a bad prime, the w-adic valuation of x - θ is even.

      The proof splits on whether x has a pole at the prime of R under w.