Definitions/Def_ModularCurve_EisensteinTwoCoeff.lean
Prime-to- divisor sums and weight-two Eisenstein coefficients
Two arithmetic functions of natural numbers are introduced. For natural numbers p and n, sigmaPrimeTo p n is the natural number \sum_{d \mid n,\ p \nmid d} d, the sum taken over those divisors d of n (in the sense of Nat.divisors, so over the positive divisors, and over the empty set when n = 0) that are not divisible by p. Thus sigmaPrimeTo p 0 = 0, and for n \ge 1 it is the prime-to-p part of the usual divisor sum \sigma_1(n), namely \sigma_1(n) with the terms divisible by p removed.
The second definition, eisensteinTwoCoeff p n, is an integer defined by cases on n: it is p - 1, computed in \mathbb{Z}, when n = 0, and 24 \cdot \mathrm{sigmaPrimeTo}(p, n) otherwise. This is the integral coefficient sequence of 24 times the weight-two Eisenstein series of level p, whose q-expansion is \tfrac{p-1}{24} + \sum_{n \ge 1} \big(\sum_{d \mid n,\ p \nmid d} d\big) q^n; multiplying by 24 clears the denominator of the constant term, so that all coefficients lie in \mathbb{Z}. What is defined here is exactly this integer sequence: no modular form, q-expansion or level structure is constructed, and no primality hypothesis on p is imposed. Two accompanying lemmas record the two branches of the definition, eisensteinTwoCoeff_zero giving the constant term p - 1 and eisensteinTwoCoeff_of_ne_zero giving 24\,\mathrm{sigmaPrimeTo}(p, n) for n \ne 0; small numerical values, for instance at p = 11 and p = 2, are checked by evaluation.
Relation to Mathlib
Mathlib supplies Nat.divisors and the divisor-sum functions; the prime-to-p restricted divisor sum and the associated integral coefficient sequence are the project's own definitions.
Where it is used
These coefficients provide the integral q-expansion data of the weight-two Eisenstein series at prime level, as used in arguments about the Eisenstein ideal and congruences between Eisenstein and cuspidal Hecke eigensystems; the constant term p-1 against the normalising factor 24 is what produces the numerator of (p-1)/12.
References
- B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186
- F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 25 lines
- 4 declarations
- used in the statements of 16 theorems and imported by 19 proofs
- imports 0 definition modules
Source file: Definitions/Def_ModularCurve_EisensteinTwoCoeff.lean
Declarations
- def
ModularCurve.sigmaPrimeTo - def
ModularCurve.eisensteinTwoCoeff - theorem
ModularCurve.eisensteinTwoCoeff_zero - theorem
ModularCurve.eisensteinTwoCoeff_of_ne_zero
Source
import Mathlib.NumberTheory.Divisors ↗ namespace ModularCurve def sigmaPrimeTo (p n : ℕ) : ℕ := ∑ d ∈ n.divisors.filter (fun d => ¬ p ∣ d), d def eisensteinTwoCoeff (p n : ℕ) : ℤ := if n = 0 then (p : ℤ) - 1 else 24 * (sigmaPrimeTo p n : ℤ) theorem eisensteinTwoCoeff_zero (p : ℕ) : eisensteinTwoCoeff p 0 = (p : ℤ) - 1 := by simp [eisensteinTwoCoeff] theorem eisensteinTwoCoeff_of_ne_zero (p : ℕ) {n : ℕ} (hn : n ≠ 0) : eisensteinTwoCoeff p n = 24 * (sigmaPrimeTo p n : ℤ) := by simp [eisensteinTwoCoeff, hn] example : eisensteinTwoCoeff 11 0 = 10 := by decide example : eisensteinTwoCoeff 11 1 = 24 := by decide example : eisensteinTwoCoeff 11 2 = 72 := by decide example : eisensteinTwoCoeff 11 11 = 24 := by decide example : eisensteinTwoCoeff 11 22 = 72 := by decide example : eisensteinTwoCoeff 2 0 = 1 := by decide example : eisensteinTwoCoeff 2 4 = 24 := by decide end ModularCurve
Statements phrased using this module (16)
- Eisenstein congruence mod m forces m ∣ n(p)
CuspForm.dvd_eisensteinNumerator_of_qCoeff_congr_sigmaPrimeTo572 below · depth 12 - Mod m Eisenstein recurrences force σ' coefficients
ModularCurve.dvd_sub_sigmaPrimeTo_mul_of_eisenstein_eigen_mod0 below · depth 12 - Eisenstein congruences on Γ₀(p) force m ∣ (p-1)/2
CuspForm.dvd_half_sub_one_of_qCoeff_congr_sigmaPrimeTo565 below · depth 13 - Eisenstein congruence forces m ∣ (p²-1)/24
CuspForm.dvd_sq_sub_one_div_of_qCoeff_congr_sigmaPrimeTo22 below · depth 13 - Eisenstein congruences detect m-divisibility in the Hecke algebra
CuspForm.eisenstein_injective_of_qCoeff_congr_sigmaPrimeTo2 below · depth 13 - Eisenstein congruence modulo n(p) for weight-two cusp forms
CuspForm.exists_qIntegral_qCoeff_congr_sigmaPrimeTo_eisensteinNumerator882 below · depth 13 - 24m divides a₁(p-1)τ(p) for Eisenstein congruences
CuspForm.dvd_mul_qCoeff_discriminant_prime_of_qCoeff_congr_sigmaPrimeTo10 below · depth 14 - 24m ∣ a₁(p-1)bigl(τ(p²)-p¹²bigr)
CuspForm.dvd_mul_qCoeff_discriminant_prime_sq_sub_pow_of_qCoeff_congr_sigmaPrimeTo10 below · depth 14 - Eisenstein congruence produces a weight-two form divisible by 24m
CuspForm.exists_modularForm_qCoeff_eq_of_qCoeff_congr_sigmaPrimeTo4 below · depth 14 - A prime p cannot divide the Eisenstein modulus
CuspForm.not_prime_dvd_of_qCoeff_congr_sigmaPrimeTo11 below · depth 14 - Divisibility forced by an Eisenstein congruence on Γ₀(p)
CuspForm.dvd_240_mul_qCoeff_one_sq_of_qCoeff_congr_sigmaPrimeTo8 below · depth 15 - Forcing 24m ∣ 504 a₁³(p-1)³(p²-1) from Eisenstein congruences
CuspForm.dvd_504_mul_qCoeff_one_cube_of_qCoeff_congr_sigmaPrimeTo8 below · depth 15 - Weight-two Eisenstein series on Γ₀(p) with prescribed q-expansion
ModularCurve.exists_modularForm_qCoeff_eq_eisensteinTwoCoeff3 below · depth 15 - q-expansion of pE₂(pτ)-E₂(τ)
ModularCurve.hasSum_eisensteinTwoCoeff_mul_cexp_pow0 below · depth 16 - Invariance of the Eisenstein coefficients under n ↦ np
ModularCurve.eisensteinTwoCoeff_mul_level0 below · depth 18 - Weight-two Eisenstein form on Γ₀(N) with prescribed q-coefficients
ModularCurve.exists_modularForm_qCoeff_eq_eisensteinTwoCoeff_of_neZero0 below · depth 19