Documentation

TauCeti.NumberTheory.ModularForms.Newforms.Eigenform

Full Hecke eigenforms #

A full Hecke eigenform is a nonzero cusp form of nebentypus χ that is an eigenvector for T_n at every positive index n, including the primes dividing the level. This is the unqualified notion of eigenform: EigenformAwayFromLevel remains the weaker object carrying only the good-index eigenrelations.

The prime operators determine the full eigensystem. At a good prime the prime-power blocks satisfy the usual Hecke recurrence; at a prime dividing the level they are powers of U_p = T_p. The coprime multiplication law then combines the prime-power blocks, including a mixture of good and bad primes.

Main declarations #

Provenance #

The bundled layout specializes EigenformAwayFromLevel, whose shape is adapted from AINTLIB's LeanModularForms/HeckeRIngs/GL2/Newforms/Basic.lean (Chris Birkbeck, commit 2baa76f742bdb4fb8ee323fabba41203bd390e08, Apache-2.0). The eigencondition here is redesigned over Tau Ceti's positive-index heckeTCompositeGamma0 API and includes the bad indices; the prime-assembly proof composes Tau Ceti's good-prime recurrence, bad-prime power identity, and coprime product formula.

References #

A full Hecke eigenform. This is a nonzero cusp form in a fixed nebentypus space together with its eigenvalue at every positive index. In contrast with EigenformAwayFromLevel, no coprimality condition excludes the primes dividing the level.

Instances For

    A full eigenform is, in particular, an eigenform away from the level.

    Equations
    Instances For
      theorem HeckeRing.GL2.Eigenform.ext {N : ℕ} [NeZero N] {k : ℤ} {f g : Eigenform N k} (h : f.toCuspForm = g.toCuspForm) :
      f = g

      Extensionality. A full eigenform is determined by its underlying cusp form. The form determines the nebentypus, and nonvanishing makes every eigenvalue unique.

      noncomputable def HeckeRing.GL2.Eigenform.ofForallPrime {N : ℕ} [NeZero N] {k : ℤ} {f : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} {χ : (ZMod N)ˣ →* ℂˣ} (hχ : f ∈ cuspFormCharSpace k χ) (hf : f ≠ 0) (h : ∀ (p : ℕ), Nat.Prime p → ∃ (c : ℂ), ((heckeRingHomCuspCharSpace k χ) (heckeTGeneratorGamma0 N p)) ⟨f, hχ⟩ = c • ⟨f, hχ⟩) :

      Construct a full eigenform from its prime eigenrelations. Eigen-ness at every prime spreads through the prime-power recurrences and coprime multiplication to every positive index.

      Equations
      Instances For
        @[simp]
        theorem HeckeRing.GL2.Eigenform.ofForallPrime_χ {N : ℕ} [NeZero N] {k : ℤ} {f : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} {χ : (ZMod N)ˣ →* ℂˣ} (hχ : f ∈ cuspFormCharSpace k χ) (hf : f ≠ 0) (h : ∀ (p : ℕ), Nat.Prime p → ∃ (c : ℂ), ((heckeRingHomCuspCharSpace k χ) (heckeTGeneratorGamma0 N p)) ⟨f, hχ⟩ = c • ⟨f, hχ⟩) :
        (ofForallPrime hχ hf h).χ = χ

        At a prime, the classical operator acts on a full eigenform by its stored eigenvalue.

        Every positive-index coefficient of a full eigenform is its eigenvalue times a₁. The first coefficient of T_n f is a_n(f), at good and bad indices alike.

        The eigenvalue system #

        @[simp]
        theorem HeckeRing.GL2.Eigenform.eigenvalue_one {N : ℕ} [NeZero N] {k : ℤ} (f : Eigenform N k) :

        The eigenvalue at 1 is 1: the Hecke element at index 1 is the identity.

        theorem HeckeRing.GL2.Eigenform.eigenvalue_mul {N : ℕ} [NeZero N] {k : ℤ} (f : Eigenform N k) {m n : ℕ+} (hmn : (↑m).Coprime ↑n) :

        Multiplicativity on coprime indices: λ_{mn} = λ_m λ_n, the image of the coprime multiplication rule heckeTCompositeGamma0_mul_of_coprime. Unlike EigenformAwayFromLevel.eigenvalue_mul, the indices may share primes with the level.

        theorem HeckeRing.GL2.Eigenform.eigenvalue_prime_pow_add_two {N : ℕ} [NeZero N] {k : ℤ} (f : Eigenform N k) {p : ℕ+} (hp : Nat.Prime ↑p) (r : ℕ) :
        f.eigenvalue (p ^ (r + 2)) = f.eigenvalue p * f.eigenvalue (p ^ (r + 1)) - (MulChar.ofUnitHom f.χ) ↑↑p * ↑↑p ^ (k - 1) * f.eigenvalue (p ^ r)

        The recurrence along the powers of a prime: λ_{p^{r+2}} = λ_p λ_{p^{r+1}} − χ(p) p^{k−1} λ_{p^r}, with χ(p) read through Mathlib's zero-extension MulChar.ofUnitHom. At a good prime this is EigenformAwayFromLevel.eigenvalue_prime_pow_add_two; at a prime dividing the level the character term vanishes and the identity is T_{p^{r+2}} = T_p T_{p^{r+1}}, from T_{p^v} = T_p^v (heckeTCompositeGamma0_prime_pow_of_not_coprime).

        The Fourier coefficients of a normalised eigenform #

        With a₁ = 1 the coefficients are the eigenvalues, so they satisfy conditions (2) and (3) of Diamond–Shurman's Proposition 5.8.5 at every index, good or bad. These are exactly the hypotheses of the Euler product.

        The coefficients of a normalised full eigenform are its eigenvalues: a_n(f) = λ_n at every positive index n, when a_1(f) = 1.

        Multiplicativity of the coefficients of a normalised full eigenform: a_{mn} = a_m a_n for all coprime m, n (Diamond–Shurman Proposition 5.8.5 (3)).

        The prime-power recurrence for the coefficients of a normalised full eigenform: a_{p^{r+2}} = a_p a_{p^{r+1}} − χ(p) p^{k−1} a_{p^r} at every prime p, with χ(p) = 0 for p ∣ N (Diamond–Shurman Proposition 5.8.5 (2)).

        theorem HeckeRing.GL2.Eigenform.qExpansion_coeff_mem_of_forall_prime {N : ℕ} [NeZero N] {k : ℤ} {S : Type u_1} [SetLike S ℂ] [SubringClass S ℂ] (f : Eigenform N k) (h₁ : (PowerSeries.coeff 1) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) = 1) (s : S) (ha : ∀ (p : ℕ), Nat.Prime p → (PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) ∈ s) (hχ : ∀ (p : ℕ), Nat.Prime p → (MulChar.ofUnitHom f.χ) ↑p * ↑p ^ (k - 1) ∈ s) (n : ℕ) :

        The coefficients of a normalised full eigenform lie in every subring containing the prime data of its Hecke recurrence. If a₁ = 1 and a subring of ℂ contains a_p and χ(p) p^{k−1} for every prime p, with χ(p) = 0 for p ∣ N, then it contains every coefficient a_n.

        noncomputable def HeckeRing.GL2.EigenformAwayFromLevel.toEigenform {N : ℕ} [NeZero N] {k : ℤ} (f : EigenformAwayFromLevel N k) (hbad : ∀ (p : ℕ) (hp : Nat.Prime p), p ∣ N → ∃ (c : ℂ), (heckeTCuspNat k p) f.toCuspForm = c • f.toCuspForm) :

        Upgrade a good Hecke eigenform to a full eigenform from the bad-prime equations. The input supplies precisely what EigenformAwayFromLevel omits: at every prime dividing the level, the classical operator U_p = T_p acts by a scalar.

        Equations
        Instances For
          @[simp]
          theorem HeckeRing.GL2.EigenformAwayFromLevel.toEigenform_toCuspForm {N : ℕ} [NeZero N] {k : ℤ} (f : EigenformAwayFromLevel N k) (hbad : ∀ (p : ℕ) (hp : Nat.Prime p), p ∣ N → ∃ (c : ℂ), (heckeTCuspNat k p) f.toCuspForm = c • f.toCuspForm) :
          @[simp]
          theorem HeckeRing.GL2.EigenformAwayFromLevel.toEigenform_χ {N : ℕ} [NeZero N] {k : ℤ} (f : EigenformAwayFromLevel N k) (hbad : ∀ (p : ℕ) (hp : Nat.Prime p), p ∣ N → ∃ (c : ℂ), (heckeTCuspNat k p) f.toCuspForm = c • f.toCuspForm) :
          (f.toEigenform hbad).χ = f.χ
          theorem HeckeRing.GL2.EigenformAwayFromLevel.toEigenform_eigenvalue {N : ℕ} [NeZero N] {k : ℤ} (f : EigenformAwayFromLevel N k) (hbad : ∀ (p : ℕ) (hp : Nat.Prime p), p ∣ N → ∃ (c : ℂ), (heckeTCuspNat k p) f.toCuspForm = c • f.toCuspForm) (n : ℕ+) (hn : (↑n).Coprime N) :