Definitions/Def_WeierstrassCurve_ConductorLevel.lean
Conductor level: radical of a Weierstrass discriminant
For a Weierstrass curve W over \mathbb{Z} (Mathlib's WeierstrassCurve ℤ, i.e. a chosen integral Weierstrass presentation rather than an abstract elliptic curve), WeierstrassCurve.conductorLevel W is defined to be radical W.Δ.natAbs, the radical in the unique factorisation monoid \mathbb{N} of the absolute value of the discriminant \Delta(W): the product of the distinct primes dividing \Delta(W). It is thus an invariant of the model, not of the isomorphism class, and it is by construction a squarefree positive natural number supported exactly on the primes dividing \Delta(W); note the degenerate case \Delta(W)=0, where the radical of 0 is 1, so the definition returns 1.
Three accompanying facts are recorded. WeierstrassCurve.conductorLevel_pos states 0 < \operatorname{conductorLevel}(W) for every W, and an instance derived from it registers NeZero W.conductorLevel, so that the conductor level may be used wherever a nonzero modulus or level is required (for instance as the modulus of a cyclotomic or congruence-subgroup level). WeierstrassCurve.squarefree_conductorLevel states that \operatorname{conductorLevel}(W) is squarefree. WeierstrassCurve.prime_dvd_conductorLevel_iff states that for W with \Delta(W) \neq 0 and a prime natural number q, one has q \mid \operatorname{conductorLevel}(W) if and only if (q : \mathbb{Z}) \mid \Delta(W); the hypothesis \Delta(W) \neq 0 is needed precisely because of the degenerate case above. No minimality of the model, and no semistability, is assumed anywhere in this module: the number defined here agrees with the arithmetic conductor N_E only under such additional hypotheses, and in general it is merely the squarefree integer whose prime support is that of the discriminant of the given model.
Relation to Mathlib
Built directly on Mathlib's WeierstrassCurve and UniqueFactorizationMonoid.radical; the notion of "conductor level" of an integral Weierstrass model is the project's own packaging, and is not Mathlib's conductor of an elliptic curve.
Where it is used
The conductor level supplies the squarefree level at which modularity statements for Frey-type curves are instantiated: it is the modulus fed to the project's exact-conductor-level modularity predicate, and hence to the modularity lifting (R = \mathbb{T}) statements used in the Frey–Serre–Ribet–Wiles argument.
References
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
- J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 2nd ed., 2009
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 31 lines
- 5 declarations
- used in the statements of 3 theorems and imported by 3 proofs
- imports 0 definition modules
Source file: Definitions/Def_WeierstrassCurve_ConductorLevel.lean
Declarations
- def
WeierstrassCurve.conductorLevel - theorem
WeierstrassCurve.conductorLevel_pos - theorem
WeierstrassCurve.squarefree_conductorLevel - theorem
WeierstrassCurve.prime_dvd_conductorLevel_iff
Source
import Mathlib set_option autoImplicit false noncomputable section namespace WeierstrassCurve open UniqueFactorizationMonoid def conductorLevel (W : WeierstrassCurve ℤ) : ℕ := radical W.Δ.natAbs theorem conductorLevel_pos (W : WeierstrassCurve ℤ) : 0 < W.conductorLevel := Nat.radical_pos _ instance (W : WeierstrassCurve ℤ) : NeZero W.conductorLevel := ⟨W.conductorLevel_pos.ne'⟩ theorem squarefree_conductorLevel (W : WeierstrassCurve ℤ) : Squarefree W.conductorLevel := squarefree_radical theorem prime_dvd_conductorLevel_iff (W : WeierstrassCurve ℤ) (hΔ : W.Δ ≠ 0) {q : ℕ} (hq : q.Prime) : q ∣ W.conductorLevel ↔ (q : ℤ) ∣ W.Δ := by rw [conductorLevel, dvd_radical_iff_of_irreducible hq.prime.irreducible (Int.natAbs_ne_zero.mpr hΔ)] exact Int.natCast_dvd.symm end WeierstrassCurve end
Statements phrased using this module (3)
- landmark Descent to the conductor level when p² ∤ N
WeierstrassCurve.isModularModelOfLevel_conductorLevel_of_not_cube_dvd_of_modRepIsIrreducible_of_not_sq_dvd11,044 below · depth 7 - Level rad|Δ| modularity gives exact-conductor-level modularity
WeierstrassCurve.isModularModelOfExactConductorLevel_of_level_conductorLevel0 below · depth 7 - Descent to the conductor level for a semistable model
WeierstrassCurve.isModularModelOfLevel_conductorLevel_of_not_cube_dvd_of_modRepIsIrreducible_of_factorization_eq10,966 below · depth 8