4. Modular forms
This chapter lists the LMFDB definitions relating to modular forms, migrated from the LaTeX blueprint. Each definition links back to its LMFDB knowl.
-
ModularForm[complete] -
SlashInvariantForm.slash_action_eqn'[complete]
Classical modular form. (LMFDB)
Let k be a positive integer and let \Gamma be a finite index subgroup of the modular group \SL(2,\Z).
A (classical) modular form f of weight k on \Gamma, is a holomorphic function defined on the upper half plane \mathcal{H}, which satisfies the transformation property
f(\gamma z) = (cz+d)^k f(z)
for all z\in\mathcal{H} and \gamma=\begin{pmatrix}a&b\\c&d\end{pmatrix}\in \Gamma and is holomorphic at all the cusps of \Gamma.
If \Gamma contains the principal congruence subgroup \Gamma(N) then f is said to be a modular form of level N.
For each fixed choice of k and \Gamma the set of modular forms of weight k on G form a finite-dimensional \mathbb{C}-vector space denoted M_k(\Gamma).
For the congruence subgroup \Gamma_1(N) the space M_k(\Gamma_1(N)) decomposes as a direct sum of subspaces M_k(N,\chi) over the group of Dirichlet characters \chi of modulus N, where M_k(N,\chi) is the subspace of forms f\in M_k(N) that satisfy
f(\gamma z) = \chi(d)(cz+d)^k f(z)
for all \gamma=\begin{pmatrix}a&b\\c&d\end{pmatrix} in \Gamma_0(N).
Elements of M_k(N,\chi) are said to be modular forms of weight k, level N, and character \chi.
For trivial character \chi of modulus N we have M_k(N,\chi)=M_k(\Gamma_0(N)).
Depends on: Definition 1.45 Definition 4.72 Definition 1.81 Definition 1.94 Definition 1.125
Lean code for Definition4.1●2 declarations
Associated Lean declarations
-
ModularForm[complete]
-
SlashInvariantForm.slash_action_eqn'[complete]
-
ModularForm[complete] -
SlashInvariantForm.slash_action_eqn'[complete]
-
structuredefined in Mathlib/NumberTheory/ModularForms/Basic.leancomplete
structure ModularForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
structure ModularForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
These are `SlashInvariantForm`'s that are holomorphic and bounded at infinity.
Extends
-
SlashInvariantForm Γ k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Γ, SlashAction.map k γ self.toFun = self.toFun
Inherited from-
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
bdd_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c Γ → c.IsBoundedAt self.toFun k
-
-
theoremdefined in Mathlib/NumberTheory/ModularForms/SlashInvariantForms.leancomplete
theorem SlashInvariantForm.slash_action_eqn'.{u_1} {F : Type u_1} {Γ : Subgroup (GL (Fin 2) ℝ)} [FunLike F UpperHalfPlane ℂ] {k : ℤ} [Γ.HasDetOne] [SlashInvariantFormClass F Γ k] (f : F) {γ : GL (Fin 2) ℝ} (hγ : γ ∈ Γ) (z : UpperHalfPlane) : f (γ • z) = (↑(↑γ 1 0) * ↑z + ↑(↑γ 1 1)) ^ k * f z
theorem SlashInvariantForm.slash_action_eqn'.{u_1} {F : Type u_1} {Γ : Subgroup (GL (Fin 2) ℝ)} [FunLike F UpperHalfPlane ℂ] {k : ℤ} [Γ.HasDetOne] [SlashInvariantFormClass F Γ k] (f : F) {γ : GL (Fin 2) ℝ} (hγ : γ ∈ Γ) (z : UpperHalfPlane) : f (γ • z) = (↑(↑γ 1 0) * ↑z + ↑(↑γ 1 1)) ^ k * f z
-
HeckeRing.GL2.Newform.analyticConductorLMFDB[complete] -
HeckeRing.GL2.Newform.ofReal_analyticConductorLMFDB[complete] -
HeckeRing.GL2.Newform.analyticConductorLMFDB_pos[complete] -
Complex.digamma_ofReal_im[complete]
Analytic conductor of a classical newform. (LMFDB)
The analytic conductor of a newform f \in S_k^{\mathrm{new}}(N,\chi) is the positive real number
N\left(\frac{\exp(\psi(k/2))}{2\pi}\right)^2,
where \psi(x):=\Gamma'(x)/\Gamma(x) is the logarithmic derivative of the Gamma function.
Depends on: Definition 4.51
Lean code for Definition4.2●4 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.analyticConductorLMFDB[complete]
-
HeckeRing.GL2.Newform.ofReal_analyticConductorLMFDB[complete]
-
HeckeRing.GL2.Newform.analyticConductorLMFDB_pos[complete]
-
Complex.digamma_ofReal_im[complete]
-
HeckeRing.GL2.Newform.analyticConductorLMFDB[complete] -
HeckeRing.GL2.Newform.ofReal_analyticConductorLMFDB[complete] -
HeckeRing.GL2.Newform.analyticConductorLMFDB_pos[complete] -
Complex.digamma_ofReal_im[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/AnalyticConductor.leancomplete
def HeckeRing.GL2.Newform.analyticConductorLMFDB (N : ℕ) (k : ℤ) : ℝ
def HeckeRing.GL2.Newform.analyticConductorLMFDB (N : ℕ) (k : ℤ) : ℝ
The **analytic conductor** (LMFDB `cmf.analytic_conductor`) of a newform of level `N` and weight `k`: the positive real number `N (exp (ψ (k / 2)) / (2π))²`, where `ψ = Γ' / Γ` is the digamma function. It depends on the newform only through `N` and `k`, which are therefore its only arguments. Mathlib's digamma function is complex-valued, so the definition uses the real part of `ψ (k / 2)`, which is `ψ (k / 2)` itself (`ofReal_analyticConductorLMFDB`). This is the LMFDB's normalisation, not the Iwaniec–Kowalski conductor `N (|k / 2| + 3) (|k / 2 + 1| + 3)` of Tau Ceti's `HeckeRing.GL2.Newform.analyticConductor`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/AnalyticConductor.leancomplete
theorem HeckeRing.GL2.Newform.ofReal_analyticConductorLMFDB {N : ℕ} {k : ℤ} : ↑(HeckeRing.GL2.Newform.analyticConductorLMFDB N k) = ↑N * (Complex.exp (↑k / 2).digamma / (2 * ↑Real.pi)) ^ 2
theorem HeckeRing.GL2.Newform.ofReal_analyticConductorLMFDB {N : ℕ} {k : ℤ} : ↑(HeckeRing.GL2.Newform.analyticConductorLMFDB N k) = ↑N * (Complex.exp (↑k / 2).digamma / (2 * ↑Real.pi)) ^ 2
The analytic conductor is the complex number `N (exp (ψ (k / 2)) / (2π))²`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/AnalyticConductor.leancomplete
theorem HeckeRing.GL2.Newform.analyticConductorLMFDB_pos {N : ℕ} {k : ℤ} [NeZero N] : 0 < HeckeRing.GL2.Newform.analyticConductorLMFDB N k
theorem HeckeRing.GL2.Newform.analyticConductorLMFDB_pos {N : ℕ} {k : ℤ} [NeZero N] : 0 < HeckeRing.GL2.Newform.analyticConductorLMFDB N k
The analytic conductor of a newform is positive.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/AnalyticConductor.leancomplete
theorem Complex.digamma_ofReal_im (x : ℝ) : (↑x).digamma.im = 0
theorem Complex.digamma_ofReal_im (x : ℝ) : (↑x).digamma.im = 0
The digamma function is real on the real line.
Analytic rank. (LMFDB)
The analytic rank of a cuspidal modular form f is the analytic rank of the L-function
L(f,s) = \sum_{n\ge 1} a_nn^{-s}
where the a_n are the complex coefficients that appear in the q-expansion of the modular form: f(z)=\sum_{n\ge 1}a_nq^n, where q=e^{2\pi i z}.
The complex coefficients a_n depend on a choice of embedding of the coefficient field of f into the complex numbers. It is conjectured that the analytic rank does not depend on this choice, and this conjecture has been verified for all classical modular forms stored in the LMFDB.
In general, analytic ranks of L-functions listed in the LMFDB are upper bounds that are believed (but not proven) to be tight.
For modular forms, the analytic ranks listed in the LMFDB are provably correct whenever the listed analytic rank is 0, or the listed analytic rank is 1 and the modular form is self dual (in the self dual case the sign of the functional equation determines the parity of the analytic rank).
Depends on: Definition 4.10 Definition 4.13 Definition 4.61 Definition 4.69 Definition 1.110
Lean code for Definition4.3●1 definition
Associated Lean declarations
-
HeckeRing.GL2.Newform.analyticRank[complete]
-
HeckeRing.GL2.Newform.analyticRank[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/AnalyticInvariants.leancomplete
def HeckeRing.GL2.Newform.analyticRank {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 0 < k) : ℕ
def HeckeRing.GL2.Newform.analyticRank {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 0 < k) : ℕ
The **analytic rank** of a positive-weight newform is the order of vanishing of its entire L-function at the central point `s = k / 2`.
Artin field. (LMFDB)
The Artin field of a weight one newform is the number field fixed by the kernel of its associated Galois representation \rho\colon \Gal(\overline{\Q}/\Q)\to \GL_2(\C).
This number field is typically identified as the Galois closure of a sibling subfield with minimal degree and absolute discriminant.
Depends on: Definition 4.36 Definition 4.51 Definition 4.83 Definition 2.61
Lean code for Definition4.4●2 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
def HeckeRing.GL2.Newform.GaloisRep.artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : IntermediateField ℚ (AlgebraicClosure ℚ)
def HeckeRing.GL2.Newform.GaloisRep.artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : IntermediateField ℚ (AlgebraicClosure ℚ)
The **Artin field** (LMFDB `cmf.artin_field`) of a weight-one newform: the subfield of `ℚ̄` fixed by the kernel of its Galois representation. It is a number field, of degree the order of the Artin image (`finrank_artinField`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.artinField = Nat.card ↥ρ.artinImage
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.artinField = Nat.card ↥ρ.artinImage
**The degree of the Artin field is the order of the Artin image**: the Artin field is a finite Galois extension of `ℚ`, with Galois group the Artin image.
Artin image. (LMFDB)
The Artin image of a weight one newform is the image of its associated Galois representation \rho\colon \Gal(\overline{\Q}/\Q)\to \GL_2(\C).
The Artin image is a finite subgroup of \GL_2(\C) whose cardinality is equal to the degree of the Artin field.
Depends on: Definition 4.4 Definition 4.36 Definition 4.51 Definition 4.83
Lean code for Definition4.5●2 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
def HeckeRing.GL2.Newform.GaloisRep.artinImage {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Subgroup (GL (Fin 2) ℂ)
def HeckeRing.GL2.Newform.GaloisRep.artinImage {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Subgroup (GL (Fin 2) ℂ)
The **Artin image** (LMFDB `cmf.artin_image`) of a weight-one newform: the image of its Galois representation in `GL₂(ℂ)`. It is finite, of order the degree of the Artin field (`finrank_artinField`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.artinField = Nat.card ↥ρ.artinImage
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.artinField = Nat.card ↥ρ.artinImage
**The degree of the Artin field is the order of the Artin image**: the Artin field is a finite Galois extension of `ℚ`, with Galois group the Artin image.
-
HeckeRing.GL2.Newform.atkinLehnerSign[complete] -
TauCeti.IsAtkinLehnerMatrix[complete] -
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete] -
TauCeti.atkinLehnerMatrix[complete] -
TauCeti.atkinLehnerOperatorCusp[complete]
Atkin-Lehner involution w_Q. (LMFDB)
Let N be a positive integer, and let Q be a positive divisor of N satisfying \gcd(Q,N/Q)=1. Then there exist x,y,z,t \in \Z for which the matrix
W_Q=\left( \begin{matrix} Qx & y \\ Nz & Qt\end{matrix} \right)
has determinant Q. The matrix W_Q normalizes the group \Gamma_0(N), and for any weight k it induces a linear operator w_Q on the space of cusp forms S_k(\Gamma_0(N)) that commutes with the Hecke operators T_p for all p \nmid Q and acts as its own inverse.
The linear operator w_Q does not depend on the choice of x,y,z,t and is called the Atkin-Lehner involution of S_k(\Gamma_0(N)). Any cusp form f in S_k(\Gamma_0(N)) which is an eigenform for all T_p with p \nmid N is also an eigenform for w_Q, with eigenvalue \pm 1.
The matrix W_Q induces an automorphism of the modular curve X_0(N) that is also denoted w_Q.
In the case Q=N, the Atkin-Lehner involution w_N is also called the Fricke involution.
Depends on: Definition 4.13 Definition 4.37 Definition 4.83
Lean code for Definition4.6●5 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform.atkinLehnerSign[complete]
-
TauCeti.IsAtkinLehnerMatrix[complete]
-
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete]
-
TauCeti.atkinLehnerMatrix[complete]
-
TauCeti.atkinLehnerOperatorCusp[complete]
-
HeckeRing.GL2.Newform.atkinLehnerSign[complete] -
TauCeti.IsAtkinLehnerMatrix[complete] -
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete] -
TauCeti.atkinLehnerMatrix[complete] -
TauCeti.atkinLehnerOperatorCusp[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Sign.leancomplete
def HeckeRing.GL2.Newform.atkinLehnerSign {N Q : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hχ : f.χ = 1) (h : TauCeti.Nat.IsExactDivisor Q N) : ℂ
def HeckeRing.GL2.Newform.atkinLehnerSign {N Q : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hχ : f.χ = 1) (h : TauCeti.Nat.IsExactDivisor Q N) : ℂ
**The Atkin–Lehner sign** `ε_Q(f)` of a newform of trivial nebentypus at an exact divisor `Q ∥ N`: the eigenvalue of the normalized Atkin–Lehner operator `𝒲_Q` on `f`.
-
structuredefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Matrix.leancomplete
structure TauCeti.IsAtkinLehnerMatrix (N Q : ℕ) (M : Matrix (Fin 2) (Fin 2) ℤ) : Prop
structure TauCeti.IsAtkinLehnerMatrix (N Q : ℕ) (M : Matrix (Fin 2) (Fin 2) ℤ) : Prop
An **Atkin–Lehner matrix** for the divisor `Q` of the level `N`: an integral matrix `!![Q * a, b; N * c, Q * d]` of determinant `Q`.
Fields
dvd_apply_zero_zero : ↑Q ∣ M 0 0
The upper-left entry is divisible by `Q`.
dvd_apply_one_zero : ↑N ∣ M 1 0
The lower-left entry is divisible by the level `N`.
dvd_apply_one_one : ↑Q ∣ M 1 1
The lower-right entry is divisible by `Q`.
det_eq : M.det = ↑Q
The determinant is `Q`.
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Normalized.leancomplete
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
**The normalized Atkin–Lehner operator on cusp forms** `S_k(Γ₀(N))`.
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Matrix.leancomplete
def TauCeti.atkinLehnerMatrix (N Q : ℕ) : Matrix (Fin 2) (Fin 2) ℤ
def TauCeti.atkinLehnerMatrix (N Q : ℕ) : Matrix (Fin 2) (Fin 2) ℤ
The Bézout witness `!![Q * x, -y; N, Q]`, where `Q * x + (N / Q) * y = 1`. It is an Atkin–Lehner matrix for every exact divisor `Q` of `N` (`isAtkinLehnerMatrix_atkinLehnerMatrix`), and every other one differs from it by an element of `Γ₀(N)`.
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Operator.leancomplete
def TauCeti.atkinLehnerOperatorCusp {N Q : ℕ} {M : Matrix (Fin 2) (Fin 2) ℤ} (hQ : 0 < Q) (hQN : Q ∣ N) (h : TauCeti.IsAtkinLehnerMatrix N Q M) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
def TauCeti.atkinLehnerOperatorCusp {N Q : ℕ} {M : Matrix (Fin 2) (Fin 2) ℤ} (hQ : 0 < Q) (hQN : Q ∣ N) (h : TauCeti.IsAtkinLehnerMatrix N Q M) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
**The Atkin–Lehner slash operator on cusp forms** `S_k(Γ₀(N))`.
-
Nat.primeFactors[complete] -
Nat.mem_primeFactors[complete] -
CongruenceSubgroup.Gamma[complete]
Bad prime. (LMFDB)
A bad prime for a modular form f is a prime dividing the level of f.
A good prime is a prime that is not a bad prime. In other words, a prime that does not divide the level.
Depends on: Definition 4.1 Definition 4.46
Lean code for Definition4.7●3 declarations
Associated Lean declarations
-
Nat.primeFactors[complete]
-
Nat.mem_primeFactors[complete]
-
CongruenceSubgroup.Gamma[complete]
-
Nat.primeFactors[complete] -
Nat.mem_primeFactors[complete] -
CongruenceSubgroup.Gamma[complete]
-
defdefined in Mathlib/Data/Nat/PrimeFin.leancomplete
def Nat.primeFactors (n : ℕ) : Finset ℕ
def Nat.primeFactors (n : ℕ) : Finset ℕ
The prime factors of a natural number as a finset.
-
theoremdefined in Mathlib/Data/Nat/PrimeFin.leancomplete
theorem Nat.mem_primeFactors {n p : ℕ} : p ∈ n.primeFactors ↔ Nat.Prime p ∧ p ∣ n ∧ n ≠ 0
theorem Nat.mem_primeFactors {n p : ℕ} : p ∈ n.primeFactors ↔ Nat.Prime p ∧ p ∣ n ∧ n ≠ 0
-
defdefined in Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.leancomplete
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
The full level `N` congruence subgroup of `SL(2, ℤ)` of matrices that reduce to the identity modulo `N`.
-
HeckeRing.GL2.Newform.dirichletLift[complete] -
modFormCharSpace[complete]
Character of a modular form. (LMFDB)
The character of an elliptic modular form f
of weight k for the group \Gamma is the Dirichlet character \chi that appears in its transformation under the action of the defining group \Gamma. Namely,
f(\gamma z) = \chi(d)(cz+d)^k f(z)
for any z\in\mathcal{H} and \gamma = \begin{pmatrix} * & * \\ c & d \end{pmatrix}\in\Gamma. Here \Gamma is a subgroup of \rm{SL}_2(\mathbb{Z}) containing the principal congruence subgroup \Gamma(N), and \chi is a character mod N.
Depends on: Definition 1.45 Definition 4.1
Lean code for Definition4.8●2 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform.dirichletLift[complete]
-
modFormCharSpace[complete]
-
HeckeRing.GL2.Newform.dirichletLift[complete] -
modFormCharSpace[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Newform.leancomplete
def HeckeRing.GL2.Newform.dirichletLift {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : DirichletCharacter ℂ N
def HeckeRing.GL2.Newform.dirichletLift {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : DirichletCharacter ℂ N
The nebentypus of a newform, extended by zero from units modulo `N` to a Dirichlet character. This packages Mathlib's `MulChar.ofUnitHom` for formulas attached to the newform.
-
defdefined in TauCeti/NumberTheory/ModularForms/DiamondOperators.leancomplete
def modFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def modFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The modular-form nebentypus character space `M_k(Γ₁(N), χ)`.
-
HeckeRing.GL2.Newform.HasCM[complete] -
HeckeRing.GL2.Newform.HasCMBy[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasCM.exists_hasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.hasCMBy_iff[complete]
CM form. (LMFDB)
A classical modular form is said to have complex multiplication if it admits a self twist by the Kronecker character of an imaginary quadratic field.
Depends on: Definition 4.1 Definition 4.68
Lean code for Definition4.9●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.HasCM[complete]
-
HeckeRing.GL2.Newform.HasCMBy[complete]
-
Int.IsFundamentalDiscr.kroneckerChar[complete]
-
HeckeRing.GL2.Newform.HasCM.exists_hasSelfTwist[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugate.hasCMBy_iff[complete]
-
HeckeRing.GL2.Newform.HasCM[complete] -
HeckeRing.GL2.Newform.HasCMBy[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasCM.exists_hasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.hasCMBy_iff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasCM {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.HasCM {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
The newform `f` has **complex multiplication** (LMFDB `cmf.cm_form`) if it admits a self twist by the Kronecker character of an imaginary quadratic field, i.e. if it has complex multiplication by some imaginary quadratic field (`HasCMBy`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasCMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
def HeckeRing.GL2.Newform.HasCMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
The newform `f` has **complex multiplication** by the imaginary quadratic field `ℚ(√D)` of discriminant `D` (LMFDB `cmf.cm_form`) if it admits a self twist by the Kronecker character `(D/·)` of that field. The imaginary quadratic fields are identified with their discriminants, the negative fundamental discriminants.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
The **Kronecker character** `(D/·)` of the quadratic field `ℚ(√D)` of discriminant `D`, for a fundamental discriminant `D`: the primitive quadratic Dirichlet character modulo `|D|` with value the Legendre symbol `(D/q)` at an odd prime `q`, Tau Ceti's `fundamentalDiscriminantChar`, with complex values. It is the character of the quadratic field through which the LMFDB identifies self twists (`cmf.self_twist`). For `D = 1` it is the trivial character.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
theorem HeckeRing.GL2.Newform.HasCM.exists_hasSelfTwist {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hf : f.HasCM) : ∃ M χ, f.HasSelfTwist χ ∧ MulChar.IsQuadratic χ ∧ χ.Odd
theorem HeckeRing.GL2.Newform.HasCM.exists_hasSelfTwist {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hf : f.HasCM) : ∃ M χ, f.HasSelfTwist χ ∧ MulChar.IsQuadratic χ ∧ χ.Odd
**A newform with complex multiplication has a self twist by an odd quadratic character**, which is in particular nontrivial.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.hasCMBy_iff {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k'} {D : ℤ} (hfg : f.IsGaloisConjugate g) : f.HasCMBy D ↔ g.HasCMBy D
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.hasCMBy_iff {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k'} {D : ℤ} (hfg : f.IsGaloisConjugate g) : f.HasCMBy D ↔ g.HasCMBy D
**Complex multiplication by a given field is an invariant of the Galois orbit.**
Coefficient field for newforms. (LMFDB)
The coefficient field of a modular form is the subfield of \C generated by the coefficients a_n of its q-expansion \sum a_nq^n. The space of cusp forms S_k^\mathrm{new}(N,\chi) has a basis of modular forms that are simultaneous eigenforms for all Hecke operators and with algebraic Fourier coefficients. For such eigenforms the coefficient field will be a number field, and Galois conjugate eigenforms will share the same coefficient field. Moreover, if m is the smallest positive integer such that the values of the character \chi are contained in the cyclotomic field \Q(\zeta_m), the coefficient field will contain \Q(\zeta_m)
For eigenforms, the coefficient field is also known as the Hecke field.
Depends on: Definition 4.13 Definition 4.31 Definition 4.37
Lean code for Definition4.10●1 definition
Associated Lean declarations
-
TauCeti.CoefficientField[complete]
-
TauCeti.CoefficientField[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fields.leancomplete
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
The subfield of `ℂ` generated over `ℚ` by the positive-index Fourier coefficients of a newform.
-
UpperHalfPlane.qExpansionCoeffRing[complete] -
HeckeRing.GL2.Newform.coefficientRing[complete] -
HeckeRing.GL2.Newform.coefficientOrder[complete] -
HeckeRing.GL2.Newform.finiteIndex_coefficientOrder[complete] -
HeckeRing.GL2.Newform.isIntegral_qExpansion_coeff[complete]
Coefficient ring. (LMFDB)
The coefficient ring of a modular form is the subring \Z[a_1,a_2,a_3,\ldots] of \C generated by the coefficients a_n of its q-expansion \sum a_nq^n. In the case of a newform the coefficients a_n are algebraic integers and the coefficient ring is a finite index subring of the ring of integers of the coefficient field of the newform.
It is also known as the Hecke ring, since the a_n are eigenvalues of Hecke operators.
Depends on: Definition 4.1 Definition 4.10 Definition 4.37 Definition 4.51 Definition 2.56
Lean code for Definition4.11●5 declarations
Associated Lean declarations
-
UpperHalfPlane.qExpansionCoeffRing[complete]
-
HeckeRing.GL2.Newform.coefficientRing[complete]
-
HeckeRing.GL2.Newform.coefficientOrder[complete]
-
HeckeRing.GL2.Newform.finiteIndex_coefficientOrder[complete]
-
HeckeRing.GL2.Newform.isIntegral_qExpansion_coeff[complete]
-
UpperHalfPlane.qExpansionCoeffRing[complete] -
HeckeRing.GL2.Newform.coefficientRing[complete] -
HeckeRing.GL2.Newform.coefficientOrder[complete] -
HeckeRing.GL2.Newform.finiteIndex_coefficientOrder[complete] -
HeckeRing.GL2.Newform.isIntegral_qExpansion_coeff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
def UpperHalfPlane.qExpansionCoeffRing (f : UpperHalfPlane → ℂ) : Subring ℂ
def UpperHalfPlane.qExpansionCoeffRing (f : UpperHalfPlane → ℂ) : Subring ℂ
The **coefficient ring** of a modular form `f = ∑ aₙ qⁿ` (LMFDB `cmf.coefficient_ring`), or Hecke ring: the subring `ℤ[a₁, a₂, a₃, …]` of `ℂ` generated by the coefficients `aₙ`, `n ≥ 1`, of its `q`-expansion in `q = e^{2πiz}`. It is defined for every function `f` on the upper half plane, through Mathlib's `qExpansion 1 f`. -
abbrevdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
abbrev HeckeRing.GL2.Newform.coefficientRing {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Subring ℂ
abbrev HeckeRing.GL2.Newform.coefficientRing {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Subring ℂ
The **coefficient ring** of a newform `f = ∑ aₙ qⁿ` (LMFDB `cmf.coefficient_ring`), or Hecke ring: the coefficient ring `ℤ[a₁, a₂, a₃, …]` of its `q`-expansion.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
def HeckeRing.GL2.Newform.coefficientOrder {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Subring (NumberField.RingOfIntegers ↥(TauCeti.CoefficientField f))
def HeckeRing.GL2.Newform.coefficientOrder {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Subring (NumberField.RingOfIntegers ↥(TauCeti.CoefficientField f))
The coefficient ring of a newform `f`, as a subring of the ring of integers `𝓞 K` of its coefficient field `K = ℚ(f)`: the preimage of the coefficient ring under `𝓞 K → ℂ`. In weight at least two it is mapped onto the coefficient ring (`map_coefficientOrder`) and has finite index in `𝓞 K` (`finiteIndex_coefficientOrder`), i.e. it is an order of `K`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
theorem HeckeRing.GL2.Newform.finiteIndex_coefficientOrder {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : f.coefficientOrder.toAddSubgroup.FiniteIndex
theorem HeckeRing.GL2.Newform.finiteIndex_coefficientOrder {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : f.coefficientOrder.toAddSubgroup.FiniteIndex
**The coefficient ring has finite index in the ring of integers of the coefficient field**, in weight at least two: it contains a multiple of every element of the coefficient field, so the quotient of `𝓞 K` by it is a finitely generated torsion abelian group.
-
theoremdefined in TauCeti/NumberTheory/ModularForms/Newforms/NumberField.leancomplete
theorem HeckeRing.GL2.Newform.isIntegral_qExpansion_coeff {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) (n : ℕ) : IsIntegral ℤ ((PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm))
theorem HeckeRing.GL2.Newform.isIntegral_qExpansion_coeff {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) (n : ℕ) : IsIntegral ℤ ((PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm))
**The Fourier coefficients of a newform of weight at least two are algebraic integers.**
-
CongruenceSubgroup.IsCongruenceSubgroup[complete] -
CongruenceSubgroup.Gamma[complete]
Congruence subgroup. (LMFDB)
A congruence subgroup \Gamma of \SL_2(\Z) is a subgroup that contains a principal congruence subgroup \Gamma(N) := \ker \left( \operatorname{SL}_2(\mathbb{Z}) \to \operatorname{SL}_2(\mathbb{Z}/N\mathbb{Z}) \right) for some N\ge 1. The least such N is the level of \Gamma.
Lean code for Definition4.12●2 definitions
Associated Lean declarations
-
CongruenceSubgroup.IsCongruenceSubgroup[complete]
-
CongruenceSubgroup.Gamma[complete]
-
CongruenceSubgroup.IsCongruenceSubgroup[complete] -
CongruenceSubgroup.Gamma[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.leancomplete
def CongruenceSubgroup.IsCongruenceSubgroup (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) : Prop
def CongruenceSubgroup.IsCongruenceSubgroup (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) : Prop
A congruence subgroup is a subgroup of `SL(2, ℤ)` which contains some `Gamma N` for some `N ≠ 0`.
-
defdefined in Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.leancomplete
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
The full level `N` congruence subgroup of `SL(2, ℤ)` of matrices that reduce to the identity modulo `N`.
-
CuspForm[complete] -
ModularForm.cuspFormSubmodule[complete] -
CuspFormClass.qExpansion_coeff_zero[complete]
Cuspidal modular form. (LMFDB)
Let k be a positive integer and let \Gamma be a finite index subgroup of the modular group \SL(2,\Z).
A cusp form of weight k on \Gamma is a modular form f\in M_k(\Gamma) that vanishes at all cusps of \Gamma. In particular, the constant term in the Fourier expansion of f about any cusp is zero.
The cusp forms in M_k(\Gamma) form a subspace S_k(\Gamma). For each Dirichlet character \chi of modulus N the cusp forms in M_k(N,\chi) form a subspace S_k(N,\chi); these are the cusp forms of weight k, level N, and character \chi.
Depends on: Definition 1.45 Definition 4.1 Definition 4.14 Definition 4.31 Definition 4.83 Definition 1.81 Definition 1.94
Lean code for Definition4.13●3 declarations
Associated Lean declarations
-
CuspForm[complete]
-
ModularForm.cuspFormSubmodule[complete]
-
CuspFormClass.qExpansion_coeff_zero[complete]
-
CuspForm[complete] -
ModularForm.cuspFormSubmodule[complete] -
CuspFormClass.qExpansion_coeff_zero[complete]
-
structuredefined in Mathlib/NumberTheory/ModularForms/Basic.leancomplete
structure CuspForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
structure CuspForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
These are `SlashInvariantForm`s that are holomorphic and zero at infinity.
Extends
-
SlashInvariantForm Γ k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Γ, SlashAction.map k γ self.toFun = self.toFun
Inherited from-
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
zero_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c Γ → c.IsZeroAt self.toFun k
-
-
defdefined in Mathlib/NumberTheory/ModularForms/CuspFormSubmodule.leancomplete
def ModularForm.cuspFormSubmodule (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) [Γ.HasDetOne] : Submodule ℂ (ModularForm Γ k)
def ModularForm.cuspFormSubmodule (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) [Γ.HasDetOne] : Submodule ℂ (ModularForm Γ k)
The submodule of `ModularForm Γ k` consisting of cusp forms, defined as the range of the inclusion `CuspForm.toModularFormₗ`.
-
theoremdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
theorem CuspFormClass.qExpansion_coeff_zero.{u_1} {k : ℤ} {F : Type u_1} [FunLike F UpperHalfPlane ℂ] {Γ : Subgroup (GL (Fin 2) ℝ)} {h : ℝ} (f : F) [CuspFormClass F Γ k] (hh : 0 < h) (hΓ : h ∈ Γ.strictPeriods) : (PowerSeries.coeff 0) (UpperHalfPlane.qExpansion h ⇑f) = 0
theorem CuspFormClass.qExpansion_coeff_zero.{u_1} {k : ℤ} {F : Type u_1} [FunLike F UpperHalfPlane ℂ] {Γ : Subgroup (GL (Fin 2) ℝ)} {h : ℝ} (f : F) [CuspFormClass F Γ k] (hh : 0 < h) (hΓ : h ∈ Γ.strictPeriods) : (PowerSeries.coeff 0) (UpperHalfPlane.qExpansion h ⇑f) = 0
The zeroth coefficient of the `q`-expansion of a cusp form vanishes.
Cuspidal modular form (mathlib). (LMFDB)
This is CuspForm \Gamma k in mathlib. In the LMFDB definition, k is a positive integer and \Gamma is a finite-index subgroup of \SL_2(\mathbb{Z}). Mathlib is more general: k is an integer
and \Gamma is a subgroup of \GL_2(\mathbb{R}).
Lean code for Definition4.14●1 definition
Associated Lean declarations
-
CuspForm[complete]
-
CuspForm[complete]
-
structuredefined in Mathlib/NumberTheory/ModularForms/Basic.leancomplete
structure CuspForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
structure CuspForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
These are `SlashInvariantForm`s that are holomorphic and zero at infinity.
Extends
-
SlashInvariantForm Γ k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Γ, SlashAction.map k γ self.toFun = self.toFun
Inherited from-
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
zero_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c Γ → c.IsZeroAt self.toFun k
-
Cuspidal subspace (mathlib). (LMFDB)
This is cuspFormSubmodule \Gamma k in mathlib. It is the submodule of the ModularForm \Gamma k consisting of cusp forms.
Depends on: Definition 4.13 Definition 4.72
Lean code for Definition4.15●1 definition
Associated Lean declarations
-
ModularForm.cuspFormSubmodule[complete]
-
ModularForm.cuspFormSubmodule[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/CuspFormSubmodule.leancomplete
def ModularForm.cuspFormSubmodule (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) [Γ.HasDetOne] : Submodule ℂ (ModularForm Γ k)
def ModularForm.cuspFormSubmodule (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) [Γ.HasDetOne] : Submodule ℂ (ModularForm Γ k)
The submodule of `ModularForm Γ k` consisting of cusp forms, defined as the range of the inclusion `CuspForm.toModularFormₗ`.
Decomposition into newforms. (LMFDB)
The Hecke algebra acts on S_k^{\mathrm{new}}(N, \chi), breaking it up into irreducible pieces. Each piece is spanned by a set of conjugate eigenforms with Fourier coefficients in a number field of degree equal to the dimension of the subspace. We refer to an irreducible orbit as a newform.
Depends on: Definition 4.37 Definition 4.51
Defining polynomial. (LMFDB)
The coefficient field of a modular form is a number field. A defining polynomial for this number field is explicitly recorded, because some of the data associated to the modular form will be expressed in terms of roots of this polynomial.
Depends on: Definition 4.10 Definition 2.1
Lean code for Definition4.17●1 definition
Associated Lean declarations
-
TauCeti.CoefficientField[complete]
-
TauCeti.CoefficientField[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fields.leancomplete
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
The subfield of `ℂ` generated over `ℚ` by the positive-index Fourier coefficients of a newform.
-
HeckeRing.GL2.Newform.dimension[complete] -
HeckeRing.GL2.Newform.relativeDimension[complete] -
HeckeRing.GL2.Newform.finrank_span_toCuspForm_eq_finrank[complete] -
HeckeRing.GL2.Newform.dimension_eq_finrank[complete] -
Module.finrank[complete]
Dimension. (LMFDB)
The dimension of a space of modular forms is its dimension as a complex vector space; for spaces of newforms S_k^{\rm new}(N,\chi) this is the same as the dimension of the \Q-vector space spanned by its eigenforms.
The dimension of a newform refers to the dimension of its newform subspace, equivalently, the cardinality of its newform orbit. This is equal to the degree of its coefficient field (as an extension of \Q).
The relative dimension of S_k^{\rm new}(N,\chi) is its dimension as a \Q(\chi)-vector space, where \Q(\chi) is the field generated by the values of \chi, and similarly for newform subspaces.
Depends on: Definition 4.19 Definition 4.35 Definition 4.51 Definition 4.52
Lean code for Definition4.18●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.dimension[complete]
-
HeckeRing.GL2.Newform.relativeDimension[complete]
-
HeckeRing.GL2.Newform.finrank_span_toCuspForm_eq_finrank[complete]
-
HeckeRing.GL2.Newform.dimension_eq_finrank[complete]
-
Module.finrank[complete]
-
HeckeRing.GL2.Newform.dimension[complete] -
HeckeRing.GL2.Newform.relativeDimension[complete] -
HeckeRing.GL2.Newform.finrank_span_toCuspForm_eq_finrank[complete] -
HeckeRing.GL2.Newform.dimension_eq_finrank[complete] -
Module.finrank[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Dimension.leancomplete
def HeckeRing.GL2.Newform.dimension {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
def HeckeRing.GL2.Newform.dimension {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
The **dimension** of a newform `f` (LMFDB `cmf.dimension`): the dimension of its newform subspace `V_f`, equivalently the size of its Galois orbit (`dimension_eq_ncard_galoisOrbit`). It is the degree `[ℚ(f) : ℚ]` of the coefficient field of `f` as soon as every Galois conjugate of `f` is a newform (`dimension_eq_finrank`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Dimension.leancomplete
def HeckeRing.GL2.Newform.relativeDimension {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
def HeckeRing.GL2.Newform.relativeDimension {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
The **relative dimension** of a newform `f` of nebentypus `χ` (LMFDB `cmf.dimension`): the dimension of the `χ`-part `V_f ∩ S_k(N, χ)` of its newform subspace, equivalently the number of Galois conjugates of `f` with nebentypus `χ` (`relativeDimension_eq_ncard`). The LMFDB defines it as the dimension over the character field `ℚ(χ)` of the rational structure of `V_f`; both are the degree `[ℚ(f) : ℚ(χ)]` (LMFDB `cmf.relative_dimension`) as soon as every Galois conjugate of `f` is a newform, which is not proved here.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Dimension.leancomplete
theorem HeckeRing.GL2.Newform.finrank_span_toCuspForm_eq_finrank {N : ℕ} [NeZero N] {k : ℤ} (K : IntermediateField ℚ ℂ) (χ : (ZMod N)ˣ →* ℂˣ) : Module.finrank ↥K ↥(Submodule.span (↥K) ((fun g => g.toCuspForm) '' {g | g.χ = χ})) = Module.finrank ℂ ↥(TauCeti.cuspFormsNew N k ⊓ cuspFormCharSpace k χ)
theorem HeckeRing.GL2.Newform.finrank_span_toCuspForm_eq_finrank {N : ℕ} [NeZero N] {k : ℤ} (K : IntermediateField ℚ ℂ) (χ : (ZMod N)ˣ →* ℂˣ) : Module.finrank ↥K ↥(Submodule.span (↥K) ((fun g => g.toCuspForm) '' {g | g.χ = χ})) = Module.finrank ℂ ↥(TauCeti.cuspFormsNew N k ⊓ cuspFormCharSpace k χ)
**The eigenforms of `S_k^{new}(N, χ)` span a space of its dimension over any subfield of `ℂ`**: over `ℚ` (`K = ⊥`) this is the dimension of the space of newforms of nebentypus `χ` (LMFDB `cmf.dimension`), and over the character field `ℚ(χ)` its relative dimension. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Dimension.leancomplete
theorem HeckeRing.GL2.Newform.dimension_eq_finrank {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) : f.dimension = Module.finrank ℚ ↥(TauCeti.CoefficientField f)
theorem HeckeRing.GL2.Newform.dimension_eq_finrank {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) : f.dimension = Module.finrank ℚ ↥(TauCeti.CoefficientField f)
**The dimension of a newform is the degree of its coefficient field** in weight at least two, if every Galois conjugate of `f` is a newform, as is always the case (a theorem not proved here).
-
defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.leancomplete
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
The rank of a module as a natural number. For a finite-dimensional vector space `V` over a field `k`, `Module.finrank k V` is equal to the dimension of `V` over `k`. For a general module `M` over a ring `R`, `Module.finrank R M` is defined to be the supremum of the cardinalities of the `R`-linearly independent subsets of `M`, if this supremum is finite. It is defined by convention to be `0` if this supremum is infinite. See `Module.rank` for a cardinal-valued version where infinite rank modules have rank an infinite cardinal. Note that if `R` is not a field then there can exist modules `M` with `¬(Module.Finite R M)` but `finrank R M ≠ 0`. For example `ℚ` has `finrank` equal to `1` over `ℤ`, because the nonempty `ℤ`-linearly independent subsets of `ℚ` are precisely the nonzero singletons.
Dimension (mathlib). (LMFDB)
This is defined as 'finrank ℂ (ModularForm Γ k)' in mathlib, where ModularForm \Gamma k is the space of modular forms and finrank ℂ gives its module rank over \mathbb{C}.
Depends on: Definition 4.71 Definition 4.72
Lean code for Definition4.19●1 definition
Associated Lean declarations
-
Module.finrank[complete]
-
Module.finrank[complete]
-
defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.leancomplete
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
The rank of a module as a natural number. For a finite-dimensional vector space `V` over a field `k`, `Module.finrank k V` is equal to the dimension of `V` over `k`. For a general module `M` over a ring `R`, `Module.finrank R M` is defined to be the supremum of the cardinalities of the `R`-linearly independent subsets of `M`, if this supremum is finite. It is defined by convention to be `0` if this supremum is infinite. See `Module.rank` for a cardinal-valued version where infinite rank modules have rank an infinite cardinal. Note that if `R` is not a field then there can exist modules `M` with `¬(Module.Finite R M)` but `finrank R M ≠ 0`. For example `ℚ` has `finrank` equal to `1` over `ℤ`, because the nonempty `ℤ`-linearly independent subsets of `ℚ` are precisely the nonzero singletons.
Distinguishing Hecke operators. (LMFDB)
For a newspace S^\mathrm{new}_k(N,\chi) we say that a set of Hecke operators \mathcal T:=\{T_{p_1},\ldots,T_{p_r}\} distinguishes the newforms in the space if the sets X_f(\mathcal T) of characteristic polynomials of the T_p\in \mathcal T acting on the subspace V_f spanned by the Galois orbit of f in S_k^\mathrm{new}(N,\chi) are distinct as f ranges over (non-conjugate) newforms in S_k^\mathrm{new}(N,\chi).
The set \mathcal T can be identified by a list of primes p. For convenience we restrict to primes p that do not divide the level N and list the unique ordered sequence of primes p_1,\ldots,p_n for which the sequence of integers c_1,\ldots,c_n defined by
c_m := \#\bigl\{X_f(\{T_{p_i}:i < m\}): \mathrm{newforms}\ f\in S_k^\mathrm{new}(N,\chi)\bigr\}
is strictly increasing. The length of the sequence p_1,\ldots p_n is always less then the number of newforms in S_k^\mathrm{new}(N,\chi) and we obtain the empty sequence when S_k^\mathrm{new}(N,\chi) contains just one newform.
Depends on: Definition 4.35 Definition 4.37 Definition 4.51 Definition 4.53
-
CuspForm.conj[complete] -
HeckeRing.GL2.Newform.conj[complete]
Dual cuspform. (LMFDB)
The dual of a cuspidal modular form f is the form whose coefficients a_n in its q-expansion are the complex conjugates of those of f. The L-function of the dual form is the dual of the L-function of f.
The coefficient field of a non-self-dual newform is a CM field.
Depends on: Definition 4.10 Definition 4.13 Definition 4.51 Definition 4.61 Definition 4.69 Definition 1.115 Definition 2.8
Lean code for Definition4.21●2 definitions
Associated Lean declarations
-
CuspForm.conj[complete]
-
HeckeRing.GL2.Newform.conj[complete]
-
CuspForm.conj[complete] -
HeckeRing.GL2.Newform.conj[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Conjugate.leancomplete
def CuspForm.conj {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} {k : ℤ} (hJ : 𝒢' ≤ ConjAct.toConjAct UpperHalfPlane.J⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
def CuspForm.conj {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} {k : ℤ} (hJ : 𝒢' ≤ ConjAct.toConjAct UpperHalfPlane.J⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
**The conjugate cusp form** `f_ρ(τ) = conj (f (-conj τ))`, the cusp-form counterpart of `ModularForm.conj`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Conjugate.leancomplete
def HeckeRing.GL2.Newform.conj {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : HeckeRing.GL2.Newform N k
def HeckeRing.GL2.Newform.conj {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : HeckeRing.GL2.Newform N k
**The conjugate newform** `f_ρ(τ) = conj (f (-conj τ))` of a newform `f` of nebentypus `χ`: a newform of nebentypus `χ⁻¹` whose eigenvalues and `q`-expansion coefficients are the complex conjugates of those of `f`.
Holomorphic Eisenstein series of level 1. (LMFDB)
For an even integer k\geq4, we define the (normalized) holomorphic Eisenstein series of level 1
E_k(z)=\frac{1}{2\zeta(k)}\sum_{(c,d)\ne(0,0)}(cz+d)^{-k}=\sum_{\left(\begin{matrix} a&b\\c&d \end{matrix}\right)\in\ \Gamma_{\infty}\setminus \SL(2,\Z)
}(cz+d)^{-k},
where \Gamma_z=\{\gamma\in\Gamma: \gamma z=z\} is the
isotropy group of the cusp z.
The Eisenstein series E_k are modular forms of weight k and level 1 on the modular group.
They have the following q-expansion:
E_k(z)=1-\frac{2k}{B_k}\sum_{n\geq1}\sigma_{k-1}(n)q^n,
where the B_k are the Bernoulli numbers, \sigma_{k-1}(n) is a divisor function,
and q=e^{2 \pi i z}.
Depends on: Definition 1.2 Definition 1.3 Definition 4.1 Definition 4.46 Definition 4.61 Definition 4.83 Definition 1.94
Lean code for Definition4.22●1 definition
Associated Lean declarations
-
ModularForm.E[complete]
-
ModularForm.E[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/EisensteinSeries/Basic.leancomplete
def ModularForm.E {k : ℕ} (hk : 3 ≤ k) : ModularForm (Matrix.SpecialLinearGroup.mapGL ℝ).range ↑k
def ModularForm.E {k : ℕ} (hk : 3 ≤ k) : ModularForm (Matrix.SpecialLinearGroup.mapGL ℝ).range ↑k
Normalised Eisenstein series of level 1 and weight `k`, here they have been scaled by `1/2` since we sum over coprime pairs.
Holomorphic Eisenstein modular form. (LMFDB)
Let k be a positive integer and let \Gamma be a finite index subgroup of the modular group \SL(2,\Z).
the Eisenstein subspace E_k(\Gamma) is the orthogonal complement in M_k(\Gamma) to the subspace S_k(\Gamma) under the Petersson inner product.
An Eisenstein form of weight k on \Gamma is a modular form f\in E_k(\Gamma). For each Dirichlet character \chi of modulus N the Eisenstein forms in M_k(N,\chi) form a subspace E_k(N,\chi); these are the Eisenstein forms of weight k, level N, and character \chi.
The space E_k(N, \chi) is spanned by the E_k^{\chi_1, \chi_2}(d \\tau) where \chi_1 \chi_2 = \chi and d N_1 N_2 \mid N, unless k = 2 and \chi = 1, in which case E_2^{1,1}(d \tau) is not holomorphic, and is replaced by E_2^{1,1}(\tau) - d E_2^{1,1}(d \tau).
Depends on: Definition 1.45 Definition 4.1 Definition 4.13 Definition 4.27 Definition 4.56 Definition 4.83 Definition 1.94
Lean code for Definition4.23●4 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Subspace.leancomplete
def ModularForm.eisensteinFormSubmodule (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) [Γ.FiniteIndex] (k : ℤ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k)
def ModularForm.eisensteinFormSubmodule (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) [Γ.FiniteIndex] (k : ℤ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k)
The **Eisenstein subspace** `E_k(Γ)` (LMFDB `cmf.eisenstein_form`) of the space `M_k(Γ)` of modular forms of weight `k` for a finite-index subgroup `Γ` of `SL₂(ℤ)`: the orthogonal complement of the cusp forms under the Petersson scalar product `peterssonScalarProduct`. Its elements are the **Eisenstein forms** of weight `k` on `Γ`. It is a complement of the cusp forms (`isCompl_eisensteinFormSubmodule_cuspFormSubmodule`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Subspace.leancomplete
def ModularForm.eisensteinFormCharSpace {N : ℕ} (k : ℤ) [NeZero N] (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ ↥(modFormCharSpace k χ)
def ModularForm.eisensteinFormCharSpace {N : ℕ} (k : ℤ) [NeZero N] (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ ↥(modFormCharSpace k χ)
The **Eisenstein subspace** `E_k(N, χ)` (LMFDB `cmf.eisenstein_form`) of the space `M_k(N, χ)` of modular forms of weight `k`, level `N` and character `χ`: the Eisenstein forms of `E_k(Γ₁(N))` (`eisensteinFormSubmodule`) that lie in `M_k(N, χ)`, as a subspace of `M_k(N, χ)` (Tau Ceti's `modFormCharSpace k χ`). It is a complement of the cusp forms of character `χ` (`isCompl_eisensteinFormCharSpace_range_cuspToModFormCharSpace`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Subspace.leancomplete
theorem ModularForm.isCompl_eisensteinFormSubmodule_cuspFormSubmodule (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) [Γ.FiniteIndex] (k : ℤ) : IsCompl (ModularForm.eisensteinFormSubmodule Γ k) (ModularForm.cuspFormSubmodule (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k)
theorem ModularForm.isCompl_eisensteinFormSubmodule_cuspFormSubmodule (Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)) [Γ.FiniteIndex] (k : ℤ) : IsCompl (ModularForm.eisensteinFormSubmodule Γ k) (ModularForm.cuspFormSubmodule (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k)
**Every modular form is uniquely the sum of an Eisenstein form and a cusp form**: `M_k(Γ) = E_k(Γ) ⊕ S_k(Γ)`. The cusp forms meet their orthogonal complement only in `0` because the Petersson scalar product is positive definite on them, and they have a complement because they form a finite-dimensional space.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Subspace.leancomplete
theorem ModularForm.isCompl_eisensteinFormCharSpace_range_cuspToModFormCharSpace {N : ℕ} {k : ℤ} [NeZero N] (χ : (ZMod N)ˣ →* ℂˣ) : IsCompl (ModularForm.eisensteinFormCharSpace k χ) (cuspToModFormCharSpace k χ).range
theorem ModularForm.isCompl_eisensteinFormCharSpace_range_cuspToModFormCharSpace {N : ℕ} {k : ℤ} [NeZero N] (χ : (ZMod N)ˣ →* ℂˣ) : IsCompl (ModularForm.eisensteinFormCharSpace k χ) (cuspToModFormCharSpace k χ).range
**Every modular form with character is uniquely the sum of an Eisenstein form and a cusp form with the same character**: `M_k(N, χ) = E_k(N, χ) ⊕ S_k(N, χ)`, with `S_k(N, χ)` embedded in `M_k(N, χ)` by Tau Ceti's `cuspToModFormCharSpace`.
Label of a classical Eisenstein modular form. (LMFDB)
The label of an Eisenstein newform f\in E_k^{\rm new}(N,\chi) has the format N.k.E.a.x, where
-
Nis the level; -
kis the weight; -
N.ais the label of the Galois orbit of the Dirichlet character\chi; -
xis the label of the Galois orbit of the newformf.
For each embedding of the coefficient field of f into the complex numbers, the corresponding modular form over \C has a label of the form N.k.E.a.x.n.i, where
-
ndetermines the Conrey labelN.nof the Dirichlet character\chi; -
iis an integer ranging from 1 to the relative dimension of the newform that distinguishes embeddings with the same character\chi.
Depends on: Definition 1.45 Definition 1.47 Definition 1.49 Definition 4.10 Definition 4.25 Definition 4.28 Definition 4.35 Definition 4.46 Definition 4.63 Definition 4.83
Eisenstein newform. (LMFDB)
An Eisenstein newform is an Eisenstein form f\in E_k^{\rm new}(N,\chi) in the Eisenstein new subspace that is also an eigenform of all Hecke operators, normalized so that the q-expansion f(z)=\sum a_n q^n, where q=e^{2\pi i z}, has coefficient a_1=1. The Eisenstein newforms are a basis for the Eisenstein new subspace.
Depends on: Definition 4.26 Definition 4.31 Definition 4.37
New Eisenstein subspace. (LMFDB)
The space E_k(N,\chi) of Eisenstein modular forms of level N, weight k, and character \chi can be decomposed
E_k(N,\chi) = E_k^{\rm old}(N,\chi) \oplus E_k^{\rm new}(N,\chi)
into old and new subspaces, defined as follows.
If M is a proper divisor of N and \chi_M is a Dirichlet character of modulus M that induces \chi, then for all d \mid (N/M), there is a map from E_k(M,\chi_M) \to E_k(N,\chi) via f(z) \mapsto f(dz). The span of the images of all of these maps is the old subspace E_k^{\rm old}(N,\chi) \subseteq E_k(N,\chi).
The new subspace E_k^{\rm new}(N,\chi) is the subspace spanned by the newforms E_k^{\chi_1, \chi_2}(\\tau) such that \chi_1 \chi_2 = \chi and N_1 N_2 = N, unless k = 2 and \chi = 1, in which case E_2^{\rm new}(N) = 0 when N is not a prime, and when N = p is prime it is spanned by E_2^{1,1}(\tau) - p E_2^{1,1}(p \tau).
Depends on: Definition 1.45 Definition 1.50 Definition 1.52 Definition 4.1 Definition 4.8 Definition 4.23 Definition 4.27 Definition 4.46 Definition 4.83
-
EisensteinSeries.charEisensteinSeries[complete] -
EisensteinSeries.charEisensteinCoeff[complete] -
EisensteinSeries.hasSum_charEisensteinSeries[complete] -
EisensteinSeries.qExpansion_normalizedCharEisensteinSeriesMF[complete] -
EisensteinSeries.charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF[complete]
Holomorphic Eisenstein series. (LMFDB)
Let k, N_1, N_2 be positive integers, and let \chi_1, \chi_2 be primitive Dirichlet characters modulo N_1 and N_2 respectively.
The Eisenstein series of weight k associated to \chi_1 and \chi_2 is
E_{k}^{\chi_1, \chi_2}(\tau) = \frac{1}{2} \left ( \delta_{\chi_1=1} L(1-k, \chi_2) + \delta_{k=1} \delta_{\chi_2=1} L(0,\chi_1) \right) + \sum_{n=1}^{\infty} \sigma_{k-1}^{\chi_1, \chi_2}(n) q^n,
where q = e^{2 \pi i \tau}, L(s,\chi_i) is the Dirichlet L-function associated to \chi_i, and
\sigma_{k-1}^{\chi_1, \chi_2}(n) = \sum_{m \mid n} \chi_1(n/m) \chi_2(m) m^{k-1}.
Depends on: Definition 1.45 Definition 1.54 Definition 4.83
Lean code for Definition4.27●5 declarations
Associated Lean declarations
-
EisensteinSeries.charEisensteinSeries[complete]
-
EisensteinSeries.charEisensteinCoeff[complete]
-
EisensteinSeries.hasSum_charEisensteinSeries[complete]
-
EisensteinSeries.qExpansion_normalizedCharEisensteinSeriesMF[complete]
-
EisensteinSeries.charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF[complete]
-
EisensteinSeries.charEisensteinSeries[complete] -
EisensteinSeries.charEisensteinCoeff[complete] -
EisensteinSeries.hasSum_charEisensteinSeries[complete] -
EisensteinSeries.qExpansion_normalizedCharEisensteinSeriesMF[complete] -
EisensteinSeries.charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Series.leancomplete
def EisensteinSeries.charEisensteinSeries {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (τ : UpperHalfPlane) : ℂ
def EisensteinSeries.charEisensteinSeries {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (τ : UpperHalfPlane) : ℂ
The **Eisenstein series** `E_k^{χ₁, χ₂}` (LMFDB `cmf.eisenstein_series`) of weight `k` attached to Dirichlet characters `χ₁` modulo `N₁` and `χ₂` modulo `N₂`, primitive in the LMFDB: the function `τ ↦ ∑_{n ≥ 0} aₙ qⁿ` on the upper half-plane, `q = e^{2πiτ}`, with the Fourier coefficients `aₙ = charEisensteinCoeff k χ₁ χ₂ n`: the constant term `a₀ = ½ (δ_{χ₁ = 1} L(1 - k, χ₂) + δ_{k = 1} δ_{χ₂ = 1} L(0, χ₁))` and the twisted divisor sums `aₙ = σ_{k-1}^{χ₁, χ₂}(n)` for `n ≥ 1`. The series converges on `ℍ` (`hasSum_charEisensteinSeries`). In weight `k ≥ 3`, for primitive characters of the parity of `k`, it is Tau Ceti's normalised Eisenstein series, a modular form (`charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF`). -
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Series.leancomplete
def EisensteinSeries.charEisensteinCoeff {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (n : ℕ) : ℂ
def EisensteinSeries.charEisensteinCoeff {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (n : ℕ) : ℂ
The Fourier coefficients of the Eisenstein series `E_k^{χ₁, χ₂}`: the constant term `½ (δ_{χ₁ = 1} L(1 - k, χ₂) + δ_{k = 1} δ_{χ₂ = 1} L(0, χ₁))`, with Mathlib's Dirichlet `L`-functions `DirichletCharacter.LFunction`, and the twisted divisor sums `σ_{k-1}^{χ₁, χ₂}(n) = ∑_{m ∣ n} χ₁(n/m) χ₂(m) m^{k-1}` for `n ≥ 1`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Series.leancomplete
theorem EisensteinSeries.hasSum_charEisensteinSeries {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (τ : UpperHalfPlane) : HasSum (fun n => EisensteinSeries.charEisensteinCoeff k χ₁ χ₂ n * Function.Periodic.qParam 1 ↑τ ^ n) (EisensteinSeries.charEisensteinSeries k χ₁ χ₂ τ)
theorem EisensteinSeries.hasSum_charEisensteinSeries {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) (τ : UpperHalfPlane) : HasSum (fun n => EisensteinSeries.charEisensteinCoeff k χ₁ χ₂ n * Function.Periodic.qParam 1 ↑τ ^ n) (EisensteinSeries.charEisensteinSeries k χ₁ χ₂ τ)
**The `q`-series of `E_k^{χ₁, χ₂}` converges on the upper half-plane.** -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Series.leancomplete
theorem EisensteinSeries.qExpansion_normalizedCharEisensteinSeriesMF {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) {N : ℕ} [NeZero N] (hk : 3 ≤ ↑k) (huv : N₁ * N₂ ∣ N) (hpar : χ₁ (-1) * χ₂ (-1) = (-1) ^ ↑k) (hχ₁ : χ₁.IsPrimitive) (hχ₂ : χ₂.IsPrimitive) : UpperHalfPlane.qExpansion 1 ⇑(TauCeti.EisensteinSeries.normalizedCharEisensteinSeriesMF χ₁ χ₂ hk huv) = PowerSeries.mk (EisensteinSeries.charEisensteinCoeff k χ₁ χ₂)
theorem EisensteinSeries.qExpansion_normalizedCharEisensteinSeriesMF {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) {N : ℕ} [NeZero N] (hk : 3 ≤ ↑k) (huv : N₁ * N₂ ∣ N) (hpar : χ₁ (-1) * χ₂ (-1) = (-1) ^ ↑k) (hχ₁ : χ₁.IsPrimitive) (hχ₂ : χ₂.IsPrimitive) : UpperHalfPlane.qExpansion 1 ⇑(TauCeti.EisensteinSeries.normalizedCharEisensteinSeriesMF χ₁ χ₂ hk huv) = PowerSeries.mk (EisensteinSeries.charEisensteinCoeff k χ₁ χ₂)
**Tau Ceti's normalised Eisenstein series has the `q`-expansion of `E_k^{χ₁, χ₂}`**, in weight `k ≥ 3`, for primitive characters `χ₁` and `χ₂` with the parity of `k`: all its Fourier coefficients, including the constant term `½ δ_{χ₁ = 1} L(1 - k, χ₂)`, are those of the LMFDB. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Eisenstein/Series.leancomplete
theorem EisensteinSeries.charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) {N : ℕ} [NeZero N] (hk : 3 ≤ ↑k) (huv : N₁ * N₂ ∣ N) (hpar : χ₁ (-1) * χ₂ (-1) = (-1) ^ ↑k) (hχ₁ : χ₁.IsPrimitive) (hχ₂ : χ₂.IsPrimitive) : EisensteinSeries.charEisensteinSeries k χ₁ χ₂ = ⇑(TauCeti.EisensteinSeries.normalizedCharEisensteinSeriesMF χ₁ χ₂ hk huv)
theorem EisensteinSeries.charEisensteinSeries_eq_normalizedCharEisensteinSeriesMF {N₁ N₂ : ℕ} [NeZero N₁] [NeZero N₂] (k : ℕ) (χ₁ : DirichletCharacter ℂ N₁) (χ₂ : DirichletCharacter ℂ N₂) {N : ℕ} [NeZero N] (hk : 3 ≤ ↑k) (huv : N₁ * N₂ ∣ N) (hpar : χ₁ (-1) * χ₂ (-1) = (-1) ^ ↑k) (hχ₁ : χ₁.IsPrimitive) (hχ₂ : χ₂.IsPrimitive) : EisensteinSeries.charEisensteinSeries k χ₁ χ₂ = ⇑(TauCeti.EisensteinSeries.normalizedCharEisensteinSeriesMF χ₁ χ₂ hk huv)
**`E_k^{χ₁, χ₂}` is a modular form in weight `k ≥ 3`**: for primitive characters `χ₁` and `χ₂` with the parity of `k`, it is Tau Ceti's normalised Eisenstein series, a modular form of weight `k`, character `χ₁ χ₂` and level any multiple `N` of `N₁ N₂`.
Embedding of a modular form. (LMFDB)
The coefficients in the q-expansion \sum a_nq^n of a newform f are algebraic integers that generate the coefficient field \Q(f) of f.
Each embedding \iota\colon \Q(f)\to \C gives rise to a modular form \iota(f) with q-expansion \sum \iota(a_n)q^n; the modular form \iota(f) is an embedding of the newform f.
Distinct embeddings give rise to modular forms that lie in the same galois orbit but have distinct L-functions L(s):=\sum \iota(a_n)n^{-s}.
If f is a newform of character \chi, each embedding \Q(f)\to \C induces an embedding \Q(\chi)\to \C of the value field of \chi. The embeddings of f may be grouped into blocks with the same Dirichlet character; distinct blocks correspond to modular forms with distinct (but Galois conjugate) Dirichlet characters.
Depends on: Definition 1.45 Definition 1.56 Definition 4.8 Definition 4.10 Definition 4.35 Definition 4.61 Definition 1.109 Definition 2.17
Complex embedding label. (LMFDB)
The label complex embedded holomorphic cusp form f is N.k.a.x.c.j (sometimes shortened as a.j ), where
-
Nis the level, -
kis the weight, -
N.ais the label of the Galois orbit of the Dirichlet character, -
xis the Hecke Galois orbit label, -
N.cis the Conrey label for the character corresponding to the embedding, and -
jis the index for the embedding within those with the same Dirichlet character, these are ordered by the vector\iota(a_n), where we order the complex numbers first by their real part and then by their imaginary part.
Depends on: Definition 1.49 Definition 4.13 Definition 4.28 Definition 4.46 Definition 4.83
-
ModularForm.eta[complete] -
ModularForm.eta_ne_zero[complete]
Eta quotient. (LMFDB)
An eta quotient is any function f of the form
f(z)=\prod_{1\leq i\leq s}\eta^{r_i}(m_iz),
where m_i\in\mathbb{N} and r_i\in\mathbb{Z} and \eta(z) is the Dedekind eta function.
An eta product is an eta quotient in which all the r_i are non-negative.
Depends on: Definition 1.124
Lean code for Definition4.30●2 declarations
Associated Lean declarations
-
ModularForm.eta[complete]
-
ModularForm.eta_ne_zero[complete]
-
ModularForm.eta[complete] -
ModularForm.eta_ne_zero[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/DedekindEta.leancomplete
def ModularForm.eta (z : ℂ) : ℂ
def ModularForm.eta (z : ℂ) : ℂ
The eta function, whose value at z is `q^ 1 / 24 * ∏' 1 - q ^ (n + 1)` for `q = e ^ 2 π i z`.
-
theoremdefined in Mathlib/NumberTheory/ModularForms/DedekindEta.leancomplete
theorem ModularForm.eta_ne_zero {z : ℂ} (hz : z ∈ UpperHalfPlane.upperHalfPlaneSet) : ModularForm.eta z ≠ 0
theorem ModularForm.eta_ne_zero {z : ℂ} (hz : z ∈ UpperHalfPlane.upperHalfPlaneSet) : ModularForm.eta z ≠ 0
Eta is non-vanishing on the upper half plane.
-
UpperHalfPlane.qExpansion[complete] -
PowerSeries.coeff[complete] -
UpperHalfPlane.hasSum_qExpansion[complete] -
UpperHalfPlane.cuspFunction[complete] -
Subgroup.strictWidthInfty[complete]
Fourier coefficients of a modular form. (LMFDB)
Let f be a modular form on a finite index subgroup \Gamma of \SL_2(\Z),
and suppose \Gamma contains the matrix T:=\left(\begin{matrix}1&1\\0&1\end{matrix}\right).
Then f is periodic with period 1, so it has a Fourier expansion of the form
f(z)=\sum_{n\ge 0}a_n q^n ,
where q=e^{2 \pi i z}. That is the Fourier expansion of f around the cusp \infty, with Fourier coefficients a_n. If one says "the Fourier expansion of f", is it understood to refer to
the expansion at \infty.
For other cusps of \Gamma, suppose w is the width of the cusp \gamma\infty, for some cusp representative \gamma.
Then we can write f as f(z)=g_{\gamma}(e^{2\pi iz/w}) for some holomorphic function g_{\gamma} on the punctured unit disk. We can expand g as a Laurent series:
g_{\gamma}(q^{1/w})=\sum_{n\geq0}a_{\gamma}(n)q^{n/w}\quad\text{for}\quad0<|q|<1.
We then define the Fourier expansion of f around the cusp \gamma\infty to be
f(z)=\sum_{n \geq0}a_{\gamma}(n)q^{n/w},
where q=e^{2\pi iz}.
The a_{\gamma}(n) are called the Fourier coefficients of f with respect to the cusp \gamma\infty.
Depends on: Definition 4.1 Definition 1.81 Definition 1.82
Lean code for Definition4.31●5 declarations
Associated Lean declarations
-
UpperHalfPlane.qExpansion[complete]
-
PowerSeries.coeff[complete]
-
UpperHalfPlane.hasSum_qExpansion[complete]
-
UpperHalfPlane.cuspFunction[complete]
-
Subgroup.strictWidthInfty[complete]
-
UpperHalfPlane.qExpansion[complete] -
PowerSeries.coeff[complete] -
UpperHalfPlane.hasSum_qExpansion[complete] -
UpperHalfPlane.cuspFunction[complete] -
Subgroup.strictWidthInfty[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
The `q`-expansion of a function on the upper half plane with strict period `h`, bundled as a `PowerSeries`. The `m`-th coefficient is the Taylor coefficient of the `cuspFunction` at `q = 0`, where `q = exp(2πiτ/h)` is the local parameter at the cusp.
-
defdefined in Mathlib/RingTheory/PowerSeries/Basic.leancomplete
def PowerSeries.coeff.{u_1} {R : Type u_1} [Semiring R] (n : ℕ) : PowerSeries R →ₗ[R] R
def PowerSeries.coeff.{u_1} {R : Type u_1} [Semiring R] (n : ℕ) : PowerSeries R →ₗ[R] R
The `n`th coefficient of a formal power series.
-
theoremdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
theorem UpperHalfPlane.hasSum_qExpansion {h : ℝ} {f : UpperHalfPlane → ℂ} (hh : 0 < h) (hfper : Function.Periodic (f ∘ ↑UpperHalfPlane.ofComplex) ↑h) (hfhol : MDiff f) (hfbdd : UpperHalfPlane.IsBoundedAtImInfty f) (τ : UpperHalfPlane) : HasSum (fun m => (PowerSeries.coeff m) (UpperHalfPlane.qExpansion h f) • Function.Periodic.qParam h ↑τ ^ m) (f τ)
theorem UpperHalfPlane.hasSum_qExpansion {h : ℝ} {f : UpperHalfPlane → ℂ} (hh : 0 < h) (hfper : Function.Periodic (f ∘ ↑UpperHalfPlane.ofComplex) ↑h) (hfhol : MDiff f) (hfbdd : UpperHalfPlane.IsBoundedAtImInfty f) (τ : UpperHalfPlane) : HasSum (fun m => (PowerSeries.coeff m) (UpperHalfPlane.qExpansion h f) • Function.Periodic.qParam h ↑τ ^ m) (f τ)
-
defdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
def UpperHalfPlane.cuspFunction (h : ℝ) (f : UpperHalfPlane → ℂ) : ℂ → ℂ
def UpperHalfPlane.cuspFunction (h : ℝ) (f : UpperHalfPlane → ℂ) : ℂ → ℂ
The analytic function `F` such that `f τ = F (exp (2 * π * I * τ / h))`, extended by a choice of limit at `0`.
-
defdefined in Mathlib/NumberTheory/ModularForms/Cusps.leancomplete
def Subgroup.strictWidthInfty (𝒢 : Subgroup (GL (Fin 2) ℝ)) : ℝ
def Subgroup.strictWidthInfty (𝒢 : Subgroup (GL (Fin 2) ℝ)) : ℝ
The strict width of the cusp `∞`, i.e. the `x` such that `𝒢.strictPeriods = zmultiples x`, or 0 if no such `x` exists.
Fourier coefficients of a modular form (mathlib). (LMFDB)
This is '(qExpansion h f).coeff n' in mathlib, where f:\mathcal H\to\mathbb{C} is the modular form, h is the period parameter used to define the q-expansion of f, and 'coeff n' extracts its n-th coefficient.
Depends on: Definition 4.1 Definition 4.61
Lean code for Definition4.32●1 definition
Associated Lean declarations
-
PowerSeries.coeff[complete]
-
PowerSeries.coeff[complete]
-
defdefined in Mathlib/RingTheory/PowerSeries/Basic.leancomplete
def PowerSeries.coeff.{u_1} {R : Type u_1} [Semiring R] (n : ℕ) : PowerSeries R →ₗ[R] R
def PowerSeries.coeff.{u_1} {R : Type u_1} [Semiring R] (n : ℕ) : PowerSeries R →ₗ[R] R
The `n`th coefficient of a formal power series.
-
CuspForm.frickeCompletedL[complete] -
HeckeRing.GL2.Newform.frickePseudoEigenvalue[complete] -
HeckeRing.GL2.Newform.frickeSign[complete] -
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete] -
TauCeti.normalizedFrickeOperatorCusp[complete]
Fricke involution. (LMFDB)
The Fricke involution is the Atkin-Lehner involution w_N on the space S_k(\Gamma_0(N)) (induced by the corresponding involution on the modular curve X_0(N)).
For a newform f \in S_k^{\textup{new}}(\Gamma_0(N)), the sign of the functional equation satisfied by the L-function attached to f is i^{-k} times the eigenvalue of \omega_N on f. So, for example when k=2, the signs swap, and the analytic rank of f is even when w_N f = -f and odd when w_N f = +f.
Depends on: Definition 4.3 Definition 4.6 Definition 1.109 Definition 1.117
Lean code for Definition4.33●5 definitions
Associated Lean declarations
-
CuspForm.frickeCompletedL[complete]
-
HeckeRing.GL2.Newform.frickePseudoEigenvalue[complete]
-
HeckeRing.GL2.Newform.frickeSign[complete]
-
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete]
-
TauCeti.normalizedFrickeOperatorCusp[complete]
-
CuspForm.frickeCompletedL[complete] -
HeckeRing.GL2.Newform.frickePseudoEigenvalue[complete] -
HeckeRing.GL2.Newform.frickeSign[complete] -
TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp[complete] -
TauCeti.normalizedFrickeOperatorCusp[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/LFunction/FunctionalEquation.leancomplete
def CuspForm.frickeCompletedL {k : ℤ} {Γ : Subgroup (GL (Fin 2) ℝ)} (f : CuspForm Γ k) (N : ℕ+) (s : ℂ) : ℂ
def CuspForm.frickeCompletedL {k : ℤ} {Γ : Subgroup (GL (Fin 2) ℝ)} (f : CuspForm Γ k) (N : ℕ+) (s : ℂ) : ℂ
The level-`N` completed L-function of a cusp form, for a positive level `N`, defined as the Mellin transform of its restriction to the rescaled imaginary axis `t ↦ i t / √N`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fricke.leancomplete
def HeckeRing.GL2.Newform.frickePseudoEigenvalue {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℂ
def HeckeRing.GL2.Newform.frickePseudoEigenvalue {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℂ
**The Fricke pseudo-eigenvalue** `λ_N(f)` of a newform `f` (Atkin–Li): the scalar with `𝒲_N f = λ_N(f) • f_ρ`, where `f_ρ` is the conjugate newform. It has absolute value `1` (`HeckeRing.GL2.Newform.norm_frickePseudoEigenvalue`), and for trivial nebentypus it is the Fricke sign (`HeckeRing.GL2.Newform.frickePseudoEigenvalue_eq_frickeSign`).
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fricke.leancomplete
def HeckeRing.GL2.Newform.frickeSign {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hχ : f.χ = 1) : ℂ
def HeckeRing.GL2.Newform.frickeSign {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hχ : f.χ = 1) : ℂ
**The Fricke sign** `ε_N(f)` of a newform with trivial nebentypus.
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Normalized.leancomplete
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
**The normalized Atkin–Lehner operator on cusp forms** `S_k(Γ₀(N))`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Fricke/Normalized.leancomplete
def TauCeti.normalizedFrickeOperatorCusp {N : ℕ} [NeZero N] (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
def TauCeti.normalizedFrickeOperatorCusp {N : ℕ} [NeZero N] (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
**The normalized Fricke operator on cusp forms** `S_k(Γ₁(N))`.
Galois conjugate newforms. (LMFDB)
Two newforms f=\sum a_nq^n and g=\sum b_nq^n are Galois conjugate if there is an automorphism \sigma\in \Gal(\overline{\Q}/\Q) such that b_n=\sigma(a_n) for all n\ge 1, in which case we write g=\sigma(f).
The set \{\sigma(f):\sigma\in\Gal(\overline{\Q}/\Q)\} of all Galois conjugates of f is the Galois orbit of f; it has cardinality equal to the dimension of f, equivalently, the degree of its coefficient field
Depends on: Definition 4.51 Definition 2.12
Lean code for Definition4.34●5 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisConjugate.leancomplete
def HeckeRing.GL2.Newform.IsGaloisConjugate {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {N' : ℕ} [NeZero N'] {k' : ℤ} (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsGaloisConjugate {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {N' : ℕ} [NeZero N'] {k' : ℤ} (g : HeckeRing.GL2.Newform N' k') : Prop
Two newforms `f` and `g` are **Galois conjugate** (LMFDB `cmf.galois_conjugate`) if `g = σ(f)` for some automorphism `σ` of `ℂ`, i.e. if `bₙ = σ(aₙ)` for all `n`.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisConjugate.leancomplete
def HeckeRing.GL2.Newform.IsGaloisConjugateBy {N : ℕ} [NeZero N] {k : ℤ} (σ : Gal(ℂ/ℚ)) (f : HeckeRing.GL2.Newform N k) {N' : ℕ} [NeZero N'] {k' : ℤ} (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsGaloisConjugateBy {N : ℕ} [NeZero N] {k : ℤ} (σ : Gal(ℂ/ℚ)) (f : HeckeRing.GL2.Newform N k) {N' : ℕ} [NeZero N'] {k' : ℤ} (g : HeckeRing.GL2.Newform N' k') : Prop
For an automorphism `σ` of `ℂ`, the newform `g = ∑ bₙ qⁿ` is the **Galois conjugate** `σ(f)` of the newform `f = ∑ aₙ qⁿ` (LMFDB `cmf.galois_conjugate`) if `bₙ = σ(aₙ)` for all `n`, i.e. if the `q`-expansion of `g` is that of `f` with `σ` applied to its coefficients. Both are cusp forms, so `a₀ = b₀ = 0`, and it is the same to ask it for `n ≥ 1` as the LMFDB does (`isGaloisConjugateBy_iff_forall_pnat`). The LMFDB takes `σ ∈ Gal(ℚ̄/ℚ)`; this is the same relation, as the coefficients of a newform are algebraic and automorphisms of `ℚ̄` extend to `ℂ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisConjugate.leancomplete
theorem HeckeRing.GL2.Newform.isGaloisConjugateBy_iff_forall_pnat {N : ℕ} [NeZero N] {k : ℤ} {σ : Gal(ℂ/ℚ)} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g ↔ ∀ (n : ℕ+), (PowerSeries.coeff ↑n) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm) = σ ((PowerSeries.coeff ↑n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm))
theorem HeckeRing.GL2.Newform.isGaloisConjugateBy_iff_forall_pnat {N : ℕ} [NeZero N] {k : ℤ} {σ : Gal(ℂ/ℚ)} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g ↔ ∀ (n : ℕ+), (PowerSeries.coeff ↑n) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm) = σ ((PowerSeries.coeff ↑n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm))
**Galois conjugacy is a condition on the coefficients `aₙ` with `n ≥ 1`**: `g = σ(f)` exactly when `bₙ = σ(aₙ)` for all `n ≥ 1`, which is the form of the LMFDB definition.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Embedding.leancomplete
theorem HeckeRing.GL2.Newform.isGaloisConjugate_iff_exists_isEmbedding {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} : f.IsGaloisConjugate g ↔ ∃ ι, f.IsEmbedding g ι
theorem HeckeRing.GL2.Newform.isGaloisConjugate_iff_exists_isEmbedding {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} : f.IsGaloisConjugate g ↔ ∃ ι, f.IsEmbedding g ι
**The Galois conjugates of `f` are its embeddings**: `g` is Galois conjugate to `f`, by an automorphism of `ℂ`, exactly when it is the embedding `ι(f)` for some embedding `ι` of the coefficient field of `f`. Every embedding of the countable field `ℚ(f)` extends to an automorphism of `ℂ`, by `IntermediateField.exists_algEquiv_apply_eq_of_countable`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisOrbit.leancomplete
theorem HeckeRing.GL2.Newform.ncard_galoisOrbit_le {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : f.galoisOrbit.ncard ≤ Module.finrank ℚ ↥(TauCeti.CoefficientField f)
theorem HeckeRing.GL2.Newform.ncard_galoisOrbit_le {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : f.galoisOrbit.ncard ≤ Module.finrank ℚ ↥(TauCeti.CoefficientField f)
**A Galois orbit has at most `[ℚ(f) : ℚ]` elements**: in weight at least two, where the coefficient field `ℚ(f)` is a number field, the Galois orbit of `f` has at most as many elements as `ℚ(f)` has embeddings into `ℂ`.
-
HeckeRing.GL2.Newform.galoisOrbit[complete] -
HeckeRing.GL2.NewformOrbit[complete] -
HeckeRing.GL2.Newform.galoisOrbitRel[complete] -
HeckeRing.GL2.Newform.finite_galoisOrbit[complete] -
HeckeRing.GL2.Newform.galoisOrbitBasis[complete]
Galois orbit of a newform. (LMFDB)
The Galois orbit of a newform f\in S_k^{\rm new}(N,\chi) is the finite set
[f]:=\{\sigma(f):\sigma\in \mathrm{Gal}(\overline{\Q}/\Q)\}
of its Galois conjugates, which forms a canonical \Q-basis for the corresponding newform subspace.
Galois orbits of newforms are also called newform orbits.
Depends on: Definition 4.34 Definition 4.51 Definition 4.52
Lean code for Definition4.35●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.galoisOrbit[complete]
-
HeckeRing.GL2.NewformOrbit[complete]
-
HeckeRing.GL2.Newform.galoisOrbitRel[complete]
-
HeckeRing.GL2.Newform.finite_galoisOrbit[complete]
-
HeckeRing.GL2.Newform.galoisOrbitBasis[complete]
-
HeckeRing.GL2.Newform.galoisOrbit[complete] -
HeckeRing.GL2.NewformOrbit[complete] -
HeckeRing.GL2.Newform.galoisOrbitRel[complete] -
HeckeRing.GL2.Newform.finite_galoisOrbit[complete] -
HeckeRing.GL2.Newform.galoisOrbitBasis[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisOrbit.leancomplete
def HeckeRing.GL2.Newform.galoisOrbit {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.galoisOrbit {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (HeckeRing.GL2.Newform N k)
The **Galois orbit** `[f]` of a newform `f` (LMFDB `cmf.galois_orbit`): the set of newforms of the same level and weight that are Galois conjugate to `f`. Galois conjugates of `f` are newforms of its level and weight, so this is the LMFDB orbit `{σ(f) : σ ∈ Gal(ℚ̄/ℚ)}`, but that theorem is not proved here. -
abbrevdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisOrbit.leancomplete
abbrev HeckeRing.GL2.NewformOrbit (N : ℕ) [NeZero N] (k : ℤ) : Type
abbrev HeckeRing.GL2.NewformOrbit (N : ℕ) [NeZero N] (k : ℤ) : Type
The type of **newform orbits** of level `N` and weight `k` (LMFDB `cmf.galois_orbit`): the Galois orbits of newforms, which the LMFDB calls newforms.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisOrbit.leancomplete
def HeckeRing.GL2.Newform.galoisOrbitRel (N : ℕ) [NeZero N] (k : ℤ) : Setoid (HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.galoisOrbitRel (N : ℕ) [NeZero N] (k : ℤ) : Setoid (HeckeRing.GL2.Newform N k)
Galois conjugacy, as an equivalence relation on the newforms of level `N` and weight `k`. Its classes are the Galois orbits.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/GaloisOrbit.leancomplete
theorem HeckeRing.GL2.Newform.finite_galoisOrbit {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.galoisOrbit.Finite
theorem HeckeRing.GL2.Newform.finite_galoisOrbit {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.galoisOrbit.Finite
**Galois orbits are finite**, as there are finitely many newforms of a given level and weight.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
def HeckeRing.GL2.Newform.galoisOrbitBasis {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Module.Basis ↑f.galoisOrbit ℂ ↥f.newformSubspace
def HeckeRing.GL2.Newform.galoisOrbitBasis {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Module.Basis ↑f.galoisOrbit ℂ ↥f.newformSubspace
The **Galois orbit of `f` is a basis of its newform subspace** `V_f`, over `ℂ`: newforms are linearly independent.
Galois representation. (LMFDB)
As shown by Deligne and Serre , every newform of weight one has an associated Galois representation \rho\colon \Gal(\overline{\Q}/\Q)\to \GL_2(\C).
This representation corresponds to an Artin representation of dimension two whose conductor is the level N of the modular form.
Conversely, every odd irreducible two-dimensional Artin representation of conductor N gives rise to a modular form of weight one and level N.
Composing the representation \rho with the natural map \GL_2(\C)\to \PGL_2(\C) yields the projective Galois representation \bar\rho\colon \Gal(\overline{\Q}/\Q)\to \PGL_2(\C).
Depends on: Definition 1.35 Definition 1.36 Definition 1.38 Definition 4.51 Definition 4.83
-
HeckeRing.GL2.heckeRingHomCharSpace[complete] -
HeckeRing.GL2.heckeTCompositeGamma0[complete] -
HeckeRing.GL2.heckeTNat[complete]
Hecke operator. (LMFDB)
Let f be a modular form of weight k, level N, and character \chi.
For each positive integer n the Hecke operator T_n is a linear operator on the vector space M_k(N,\chi) whose action on f\in M_k(N,\chi) can be defined as follows. If f(z)=\sum a_n (f)q^n is the q-expansion of f\in M_k(N,\chi), where q=e^{2\pi i z}, then the q-expansion of T_nf\in M_k(N,\chi) has coefficients
a_m(T_nf) := \sum_{d|\gcd(m,n)}\chi(d)d^{k-1}a_{mn/d^2}(f).
The Hecke operators pairwise commute, and when restricted to the subspace S_k(N,\chi) of cusp forms, they commute with their adjoints with respect to the Petersson scalar product. This implies that S_k(N,\chi) has a canonical basis whose elements are eigenforms for all the Hecke operators. If we normalize such an eigenform f(z)=\sum a_n q^n so that a_1=1, then for all n\ge 1 we have
T_n f = a_nf.
The newspace S_k^{\rm new}(N,\chi)\subseteq S_k(N,\chi) is invariant under the action of the Hecke operators, so the canonical basis of normalized eigenforms for S_k(N,\chi) includes a basis of newforms for S_k^{\rm new}(N,\chi).
Depends on: Definition 1.45 Definition 4.1 Definition 4.13 Definition 4.46 Definition 4.56 Definition 4.83
Lean code for Definition4.37●3 definitions
Associated Lean declarations
-
HeckeRing.GL2.heckeRingHomCharSpace[complete]
-
HeckeRing.GL2.heckeTCompositeGamma0[complete]
-
HeckeRing.GL2.heckeTNat[complete]
-
HeckeRing.GL2.heckeRingHomCharSpace[complete] -
HeckeRing.GL2.heckeTCompositeGamma0[complete] -
HeckeRing.GL2.heckeTNat[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/HeckeSlash/Nebentypus/Action.leancomplete
def HeckeRing.GL2.heckeRingHomCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) [NeZero N] : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ →+* Module.End ℂ ↥(modFormCharSpace k χ)
def HeckeRing.GL2.heckeRingHomCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) [NeZero N] : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ →+* Module.End ℂ ↥(modFormCharSpace k χ)
The integral `Γ₀(N)` Hecke ring acts on modular forms of weight `k` and nebentypus `χ`.
-
defdefined in TauCeti/NumberTheory/HeckeRing/GL2/Gamma0/Diagonal/Composite.leancomplete
def HeckeRing.GL2.heckeTCompositeGamma0 (N : ℕ) [NeZero N] (n : ℕ) : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ
def HeckeRing.GL2.heckeTCompositeGamma0 (N : ℕ) [NeZero N] (n : ℕ) : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ
The composite element of the `Γ₀(N)` Hecke ring attached to `n`: the product of the prime-power blocks `heckeTGeneratorRecGamma0 N p (n.factorization p)` over the primes `p ∣ n`, taken least prime first. At a prime `p` this is the generator `T_p`, at a prime power `p ^ v` the `v`-th term of the Diamond–Shurman recurrence, and at `1` — as at the junk input `0` — the identity. The ordering is an artefact of the weakened typeclass, not of the mathematics: once the Hecke ring is known to be commutative the factors commute and the product is `n.factorization.prod (heckeTGeneratorRecGamma0 N)` by `TauCeti.Nat.primePowerProd_eq_factorization_prod`.
-
defdefined in TauCeti/NumberTheory/ModularForms/HeckeSlash/Operators.leancomplete
def HeckeRing.GL2.heckeTNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.heckeTNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
**The Hecke operator `T_n` on `M_k(Γ₁(N))`.** It is the slash operator of the canonical double coset `Γ₁(N) · diag(1, n) · Γ₁(N)`. The `NeZero n` binder records the classical convention that Hecke operators are indexed by positive integers, and it is not optional: at `n = 0` the entry tuple `![1, 0]` fails the positivity side condition of `natDiagGL`, which then returns its junk value `1`, so the double coset degenerates to `Γ₁(N)` itself and the construction would silently be the identity operator rather than `T₀`. The binder is `_`-named because only the *statements* below use it — the body is the same slash operator either way, and it is the index that is being constrained.
-
HeckeRing.GL2.heckeRingHomCuspCharSpace[complete] -
HeckeRing.GL2.heckeTCuspNat[complete]
Hecke orbit. (LMFDB)
The Hecke orbit of a cusp form f in S_k(N,\chi) is defined as the
space generated by T_p(f) for all Hecke operators T_p for p coprime to the level.
Depends on: Definition 4.13 Definition 4.37 Definition 4.46
Lean code for Definition4.38●2 definitions
Associated Lean declarations
-
HeckeRing.GL2.heckeRingHomCuspCharSpace[complete]
-
HeckeRing.GL2.heckeTCuspNat[complete]
-
HeckeRing.GL2.heckeRingHomCuspCharSpace[complete] -
HeckeRing.GL2.heckeTCuspNat[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/HeckeSlash/Nebentypus/Action.leancomplete
def HeckeRing.GL2.heckeRingHomCuspCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) [NeZero N] : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ →+* Module.End ℂ ↥(cuspFormCharSpace k χ)
def HeckeRing.GL2.heckeRingHomCuspCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) [NeZero N] : HeckeRing (HeckeRing.GL2.Delta0 N) (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℚ) (CongruenceSubgroup.Gamma0 N)) ℤ →+* Module.End ℂ ↥(cuspFormCharSpace k χ)
The integral `Γ₀(N)` Hecke ring acts on cusp forms of weight `k` and nebentypus `χ`.
-
defdefined in TauCeti/NumberTheory/ModularForms/HeckeSlash/Operators.leancomplete
def HeckeRing.GL2.heckeTCuspNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.heckeTCuspNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
**The Hecke operator `T_n` on `S_k(Γ₁(N))`.** This is the cusp-form operator attached to the same double coset as `heckeTNat`; in particular, it records that `T_n` preserves cuspidality. The index is nonzero for the reason explained on `heckeTNat`.
-
HeckeRing.GL2.Newform.coefficientRingGeneratorBound[complete] -
HeckeRing.GL2.Newform.truncCoefficientRing[complete] -
HeckeRing.GL2.Newform.truncCoefficientRing_coefficientRingGeneratorBound[complete] -
HeckeRing.GL2.Newform.coefficientRingGeneratorBound_le[complete] -
HeckeRing.GL2.Newform.nonempty_truncCoefficientRing_eq[complete]
Coefficient ring generator bound. (LMFDB)
The coefficient ring generator bound of a newform with q-expansion \sum a_nq^n is the least positive integer n such that \Z[a_1,\ldots,a_n] is the entire coefficient ring \Z[a_1,a_2,a_3,\ldots].
Depends on: Definition 4.11 Definition 4.51 Definition 4.61
Lean code for Definition4.39●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.coefficientRingGeneratorBound[complete]
-
HeckeRing.GL2.Newform.truncCoefficientRing[complete]
-
HeckeRing.GL2.Newform.truncCoefficientRing_coefficientRingGeneratorBound[complete]
-
HeckeRing.GL2.Newform.coefficientRingGeneratorBound_le[complete]
-
HeckeRing.GL2.Newform.nonempty_truncCoefficientRing_eq[complete]
-
HeckeRing.GL2.Newform.coefficientRingGeneratorBound[complete] -
HeckeRing.GL2.Newform.truncCoefficientRing[complete] -
HeckeRing.GL2.Newform.truncCoefficientRing_coefficientRingGeneratorBound[complete] -
HeckeRing.GL2.Newform.coefficientRingGeneratorBound_le[complete] -
HeckeRing.GL2.Newform.nonempty_truncCoefficientRing_eq[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
def HeckeRing.GL2.Newform.coefficientRingGeneratorBound {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
def HeckeRing.GL2.Newform.coefficientRingGeneratorBound {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
The **coefficient ring generator bound** of a newform `f = ∑ aₙ qⁿ` (LMFDB `cmf.hecke_ring_generators`): the least `n ≥ 1` such that `ℤ[a₁, …, aₙ]` is the whole coefficient ring `ℤ[a₁, a₂, a₃, …]`. Such an `n` exists in weight at least two (`nonempty_truncCoefficientRing_eq`); the value `0`, for no such `n`, does not occur there.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
def HeckeRing.GL2.Newform.truncCoefficientRing {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (n : ℕ) : Subring ℂ
def HeckeRing.GL2.Newform.truncCoefficientRing {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (n : ℕ) : Subring ℂ
The subring `ℤ[a₁, …, aₙ]` of `ℂ` generated by the first `n` coefficients of a newform `f = ∑ aₙ qⁿ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
theorem HeckeRing.GL2.Newform.truncCoefficientRing_coefficientRingGeneratorBound {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) : f.truncCoefficientRing f.coefficientRingGeneratorBound = f.coefficientRing
theorem HeckeRing.GL2.Newform.truncCoefficientRing_coefficientRingGeneratorBound {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) : f.truncCoefficientRing f.coefficientRingGeneratorBound = f.coefficientRing
**The coefficients `aₙ` with `1 ≤ n ≤ B` generate the coefficient ring**, for `B` the coefficient ring generator bound, in weight at least two.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
theorem HeckeRing.GL2.Newform.coefficientRingGeneratorBound_le {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {n : ℕ} (hn : 0 < n) (h : f.truncCoefficientRing n = f.coefficientRing) : f.coefficientRingGeneratorBound ≤ n
theorem HeckeRing.GL2.Newform.coefficientRingGeneratorBound_le {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {n : ℕ} (hn : 0 < n) (h : f.truncCoefficientRing n = f.coefficientRing) : f.coefficientRingGeneratorBound ≤ n
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/CoefficientRing.leancomplete
theorem HeckeRing.GL2.Newform.nonempty_truncCoefficientRing_eq {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : {n | 0 < n ∧ f.truncCoefficientRing n = f.coefficientRing}.Nonempty
theorem HeckeRing.GL2.Newform.nonempty_truncCoefficientRing_eq {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (hk : 2 ≤ k) : {n | 0 < n ∧ f.truncCoefficientRing n = f.coefficientRing}.Nonempty
**Finitely many coefficients generate the coefficient ring**, in weight at least two: the subrings `ℤ[a₁, …, aₙ]` give an increasing chain of submodules of the noetherian `ℤ`-module `𝓞 K`, which stabilises.
-
HeckeRing.GL2.Newform.heckeCharpoly[complete] -
HeckeRing.GL2.Newform.heckeCharpoly_eq_prod[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.heckeCharpoly_eq[complete] -
HeckeRing.GL2.heckeTCuspNat[complete]
Hecke characteristic polynomial. (LMFDB)
The Hecke characteristic polynomial of a newform f at a prime p is the characteristic polynomial of the Hecke operator T_p acting on the newform subspace V_f.
Depends on: Definition 4.37 Definition 4.51 Definition 4.52
Lean code for Definition4.40●4 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.heckeCharpoly[complete]
-
HeckeRing.GL2.Newform.heckeCharpoly_eq_prod[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugate.heckeCharpoly_eq[complete]
-
HeckeRing.GL2.heckeTCuspNat[complete]
-
HeckeRing.GL2.Newform.heckeCharpoly[complete] -
HeckeRing.GL2.Newform.heckeCharpoly_eq_prod[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.heckeCharpoly_eq[complete] -
HeckeRing.GL2.heckeTCuspNat[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/HeckeCharpoly.leancomplete
def HeckeRing.GL2.Newform.heckeCharpoly {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {p : ℕ} (hp : Nat.Prime p) : Polynomial ℂ
def HeckeRing.GL2.Newform.heckeCharpoly {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {p : ℕ} (hp : Nat.Prime p) : Polynomial ℂ
The **Hecke characteristic polynomial** of a newform `f` at a prime `p` (LMFDB `cmf.heckecharpolys`): the characteristic polynomial of the Hecke operator `T_p` acting on the newform subspace `V_f`. The LMFDB computes it on the rational structure of `V_f`, which gives the same polynomial, with integer coefficients.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/HeckeCharpoly.leancomplete
theorem HeckeRing.GL2.Newform.heckeCharpoly_eq_prod {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {p : ℕ} (hp : Nat.Prime p) : f.heckeCharpoly hp = ∏ g ∈ ⋯.toFinset, (Polynomial.X - Polynomial.C ((PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm)))
theorem HeckeRing.GL2.Newform.heckeCharpoly_eq_prod {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) {p : ℕ} (hp : Nat.Prime p) : f.heckeCharpoly hp = ∏ g ∈ ⋯.toFinset, (Polynomial.X - Polynomial.C ((PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm)))
**The Hecke characteristic polynomial of `f` at `p` is `∏_{g ∈ [f]} (X - a_p(g))`**: the Galois orbit of `f` is a basis of `V_f` of eigenvectors of `T_p`, with eigenvalues `a_p(g)`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/HeckeCharpoly.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.heckeCharpoly_eq {N : ℕ} [NeZero N] {k : ℤ} {f g : HeckeRing.GL2.Newform N k} {p : ℕ} (hp : Nat.Prime p) (hfg : f.IsGaloisConjugate g) : f.heckeCharpoly hp = g.heckeCharpoly hp
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.heckeCharpoly_eq {N : ℕ} [NeZero N] {k : ℤ} {f g : HeckeRing.GL2.Newform N k} {p : ℕ} (hp : Nat.Prime p) (hfg : f.IsGaloisConjugate g) : f.heckeCharpoly hp = g.heckeCharpoly hp
**The Hecke characteristic polynomials of Galois conjugate newforms are equal**: they only depend on the Galois orbit.
-
defdefined in TauCeti/NumberTheory/ModularForms/HeckeSlash/Operators.leancomplete
def HeckeRing.GL2.heckeTCuspNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.heckeTCuspNat {N : ℕ} [NeZero N] (k : ℤ) (n : ℕ) [_hn : NeZero n] : Module.End ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
**The Hecke operator `T_n` on `S_k(Γ₁(N))`.** This is the cusp-form operator attached to the same double coset as `heckeTNat`; in particular, it records that `T_n` preserves cuspidality. The index is nonzero for the reason explained on `heckeTNat`.
-
HeckeRing.GL2.Newform.IsInnerTwist[complete] -
HeckeRing.GL2.Newform.HasInnerTwist[complete] -
HeckeRing.GL2.Newform.innerTwists[complete] -
HeckeRing.GL2.Newform.mk_self_mem_innerTwists_iff[complete] -
HeckeRing.GL2.Newform.mk_ringHomComp_mem_innerTwists[complete]
Inner twist. (LMFDB)
Galois conjugate newforms f and g are inner twists if there is a Dirichlet character \chi such that
a_p(g) = \chi(p)a_p(f)
for all but finitely many primes p. Without loss of generality, we may assume that \chi is a primitive Dirichlet character, and by a theorem of Ribet , the newform g is conjugate to f via a \Q-automorphism \sigma of the coefficient field of f. The set of pairs (\chi,\sigma) form the group of inner twists of f.
Each pair (\chi,\sigma) corresponding to an inner twist of f is uniquely determined by the the primitive character \chi, and we say that f admits an inner twist by \chi. When \sigma=1 is is the trivial automorphism, we have g=f and say that f admits a self twist by \chi; in this case \chi is either the trivial character or the Kronecker character of a quadratic field.
The number of inner twists of f is an invariant of its Galois orbit, as is the number of inner twists by characters in any particular Galois orbit of Dirichlet characters.
The home page of each newform in the LMFDB includes a list of inner twists, in which non-trivial self twists are distinguished by listing the associated quadratic field (the CM or RM field), while inner twists that are not self twists are simply marked as "inner".
Depends on: Definition 1.45 Definition 1.47 Definition 1.54 Definition 4.9 Definition 4.10 Definition 4.34 Definition 4.35 Definition 4.51 Definition 4.64 Definition 4.68
Lean code for Definition4.41●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.IsInnerTwist[complete]
-
HeckeRing.GL2.Newform.HasInnerTwist[complete]
-
HeckeRing.GL2.Newform.innerTwists[complete]
-
HeckeRing.GL2.Newform.mk_self_mem_innerTwists_iff[complete]
-
HeckeRing.GL2.Newform.mk_ringHomComp_mem_innerTwists[complete]
-
HeckeRing.GL2.Newform.IsInnerTwist[complete] -
HeckeRing.GL2.Newform.HasInnerTwist[complete] -
HeckeRing.GL2.Newform.innerTwists[complete] -
HeckeRing.GL2.Newform.mk_self_mem_innerTwists_iff[complete] -
HeckeRing.GL2.Newform.mk_ringHomComp_mem_innerTwists[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.IsInnerTwist {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsInnerTwist {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (g : HeckeRing.GL2.Newform N' k') : Prop
The Galois conjugate newforms `f` and `g` are **inner twists** (LMFDB `cmf.inner_twist`) if there is a Dirichlet character `χ` with `a_p(g) = χ(p) a_p(f)` for all but finitely many primes `p`, i.e. if they are Galois conjugate and twist equivalent.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.HasInnerTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
def HeckeRing.GL2.Newform.HasInnerTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
The newform `f` **admits an inner twist** by the primitive Dirichlet character `χ` (LMFDB `cmf.inner_twist`) if `a_p(g) = χ(p) a_p(f)` for all but finitely many primes `p`, for some newform `g` Galois conjugate to `f`. Galois conjugate newforms have the same level and weight, a theorem that is not proved here, so `g` is taken in the Galois orbit of `f` (`HeckeRing.GL2.Newform.galoisOrbit`), among the newforms of the level and weight of `f`. Dirichlet characters have positive modulus in the LMFDB, and the modulus `M = 0` is excluded.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.innerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.innerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
The set of **inner twists** of the newform `f` (LMFDB `cmf.inner_twist`): the pairs `(χ, g)` of a primitive Dirichlet character `χ`, of positive modulus, and a newform `g` in the Galois orbit of `f` with `a_p(g) = χ(p) a_p(f)` for all but finitely many primes `p`. The LMFDB records the inner twist as the pair `(χ, σ)` with `g = σ(f)` for an automorphism `σ` of the coefficient field of `f`, which exists by a theorem of Ribet that is not proved here; `g` and `σ` determine each other.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
theorem HeckeRing.GL2.Newform.mk_self_mem_innerTwists_iff {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {x : (M : ℕ+) × DirichletCharacter ℂ ↑M} : (x, f) ∈ f.innerTwists ↔ f.HasSelfTwist x.snd
theorem HeckeRing.GL2.Newform.mk_self_mem_innerTwists_iff {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {x : (M : ℕ+) × DirichletCharacter ℂ ↑M} : (x, f) ∈ f.innerTwists ↔ f.HasSelfTwist x.snd
**The inner twists `(χ, f)` are the self twists of `f`**: the inner twists with `σ = 1`, i.e. `g = f`, are the self twists.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
theorem HeckeRing.GL2.Newform.mk_ringHomComp_mem_innerTwists {N : ℕ} [NeZero N] {k : ℤ} {f f₁ g₀ g₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} {x : (M : ℕ+) × DirichletCharacter ℂ ↑M} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hg : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ g₀ g₁) (hx : (x, g₀) ∈ f.innerTwists) : (⟨x.fst, MulChar.ringHomComp x.snd ↑σ⟩, g₁) ∈ f₁.innerTwists
theorem HeckeRing.GL2.Newform.mk_ringHomComp_mem_innerTwists {N : ℕ} [NeZero N] {k : ℤ} {f f₁ g₀ g₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} {x : (M : ℕ+) × DirichletCharacter ℂ ↑M} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hg : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ g₀ g₁) (hx : (x, g₀) ∈ f.innerTwists) : (⟨x.fst, MulChar.ringHomComp x.snd ↑σ⟩, g₁) ∈ f₁.innerTwists
**Inner twists are Galois equivariant**: if `(χ, g)` is an inner twist of `f`, then `(σ ∘ χ, σ(g))` is an inner twist of `σ(f)`.
Inner twist count. (LMFDB)
The inner twist count of a newform f is the number of distinct inner twists of f.
Associated to each inner twist is a pair (\chi,\sigma), where \chi is a primitive Dirichlet character and \sigma is a \Q-automorphism of the coefficient field of f.
Pairs with \sigma=1 are self twists (\chi,1), including the pair (1,1) corresponding to the twist of f by the trivial character; self twists are included in the count of inner twists.
The set of pairs (\chi,\sigma) forms the group of inner twists; the inner twist count is the cardinality of this group.
Not all of the inner twists included in the inner twist count have necessarily been proved; those that have are explicitly identified in the table of inner twists on the newforms home page. In cases where not every inner twist has been proved the inner twist should be viewed as a rigorous upper bound that is believed to be tight.
Inner twist data is available only for newforms for which exact eigenvalue data has been computed; this includes all newforms of dimension up to 20 and all newforms of weight 1; when the inner twist count is specified in a search the results include only newforms for which inner twists have been computed.
Depends on: Definition 1.45 Definition 4.10 Definition 4.18 Definition 4.41 Definition 4.51 Definition 4.68 Definition 4.83
Lean code for Definition4.42●3 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.innerTwistCount {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
def HeckeRing.GL2.Newform.innerTwistCount {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
The **inner twist count** of the newform `f` (LMFDB `cmf.inner_twist_count`): the number of its inner twists, including the self twists and the trivial self twist by the trivial character. That there are finitely many inner twists is a theorem of Ribet that is not proved here; `Set.ncard` is `0` on an infinite set. It is an invariant of the Galois orbit of `f` if the Galois conjugates of `f` are newforms (`IsGaloisConjugateBy.innerTwistCount_eq`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.innerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.innerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
The set of **inner twists** of the newform `f` (LMFDB `cmf.inner_twist`): the pairs `(χ, g)` of a primitive Dirichlet character `χ`, of positive modulus, and a newform `g` in the Galois orbit of `f` with `a_p(g) = χ(p) a_p(f)` for all but finitely many primes `p`. The LMFDB records the inner twist as the pair `(χ, σ)` with `g = σ(f)` for an automorphism `σ` of the coefficient field of `f`, which exists by a theorem of Ribet that is not proved here; `g` and `σ` determine each other.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistCount_eq {N : ℕ} [NeZero N] {k : ℤ} {f f₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ f g) : f₁.innerTwistCount = f.innerTwistCount
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistCount_eq {N : ℕ} [NeZero N] {k : ℤ} {f f₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ f g) : f₁.innerTwistCount = f.innerTwistCount
**The inner twist count is an invariant of the Galois orbit**: it is the same for the Galois conjugates of `f`, provided they are newforms (a theorem that is not proved here). The inner twists of `σ(f)` are the `(σ ∘ χ, σ(g))` for the inner twists `(χ, g)` of `f`.
-
HeckeRing.GL2.Newform.innerTwistMultiplicity[complete] -
HeckeRing.GL2.Newform.HasInnerTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistMultiplicity_eq[complete] -
MulChar.galoisOrbit[complete]
Inner twist multiplicity. (LMFDB)
It is possible for a newform f to admit an inner twist by more than one Dirichlet character \varphi in the same Galois orbit. Different embeddings of f into \C will yield different \varphi, but the number of such \varphi is the same for every embedding; this number is the multiplicity.
Depends on: Definition 1.45 Definition 1.47 Definition 4.28 Definition 4.41 Definition 4.51
Lean code for Definition4.43●4 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.innerTwistMultiplicity[complete]
-
HeckeRing.GL2.Newform.HasInnerTwist[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistMultiplicity_eq[complete]
-
MulChar.galoisOrbit[complete]
-
HeckeRing.GL2.Newform.innerTwistMultiplicity[complete] -
HeckeRing.GL2.Newform.HasInnerTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistMultiplicity_eq[complete] -
MulChar.galoisOrbit[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.innerTwistMultiplicity {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : ℕ
def HeckeRing.GL2.Newform.innerTwistMultiplicity {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : ℕ
The **inner twist multiplicity** (LMFDB `cmf.inner_twist_multiplicity`) of the newform `f` for the Galois orbit `[χ]` of the Dirichlet character `χ` (Tau Ceti's `MulChar.galoisOrbit`): the number of characters in `[χ]` by which `f` admits an inner twist. The LMFDB states that it does not depend on the embedding of `f`, i.e. on `f` in its Galois orbit, which is proved here if the Galois conjugates of `f` are newforms (`IsGaloisConjugateBy.innerTwistMultiplicity_eq`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.HasInnerTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
def HeckeRing.GL2.Newform.HasInnerTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
The newform `f` **admits an inner twist** by the primitive Dirichlet character `χ` (LMFDB `cmf.inner_twist`) if `a_p(g) = χ(p) a_p(f)` for all but finitely many primes `p`, for some newform `g` Galois conjugate to `f`. Galois conjugate newforms have the same level and weight, a theorem that is not proved here, so `g` is taken in the Galois orbit of `f` (`HeckeRing.GL2.Newform.galoisOrbit`), among the newforms of the level and weight of `f`. Dirichlet characters have positive modulus in the LMFDB, and the modulus `M = 0` is excluded.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistMultiplicity_eq {N M : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {χ : DirichletCharacter ℂ M} {f₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ f g) : f₁.innerTwistMultiplicity χ = f.innerTwistMultiplicity χ
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.innerTwistMultiplicity_eq {N M : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {χ : DirichletCharacter ℂ M} {f₁ : HeckeRing.GL2.Newform N k} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ f g) : f₁.innerTwistMultiplicity χ = f.innerTwistMultiplicity χ
**The inner twist multiplicity does not depend on the embedding of `f`**: it is the same for the Galois conjugates of `f`, provided they are newforms (a theorem that is not proved here).
-
defdefined in TauCeti/NumberTheory/MulChar/GaloisOrbit.leancomplete
def MulChar.galoisOrbit.{u_1, u_2} {M : Type u_1} [CommMonoid M] {R : Type u_2} [CommMonoidWithZero R] (χ : MulChar M R) : Set (MulChar M R)
def MulChar.galoisOrbit.{u_1, u_2} {M : Type u_1} [CommMonoid M] {R : Type u_2} [CommMonoidWithZero R] (χ : MulChar M R) : Set (MulChar M R)
The Galois orbit of a multiplicative character `χ`: the characters generating the same cyclic subgroup of characters as `χ`. When `χ` has finite order these are the powers `χ ^ a` with `a` prime to its order (`MulChar.mem_galoisOrbit_iff_exists_pow`). When moreover the monoid has finitely many units and the values lie in a field of characteristic zero, they are the conjugates `σ ∘ χ` under the embeddings `σ` of the field generated by the values of `χ` (`MulChar.mem_galoisOrbit_iff_exists_algHom`).
Label of a classical modular form. (LMFDB)
The label of a newform f\in S_k^{\rm new}(N,\chi) has the format N.k.a.x, where
-
Nis the level; -
kis the weight; -
N.ais the label of the Galois orbit of the Dirichlet character\chi; -
xis the label of the Galois orbit of the newformf.
For each embedding of the coefficient field of f into the complex numbers, the corresponding modular form over \C has a label of the form N.k.a.x.n.i, where
-
ndetermines the Conrey labelN.nof the Dirichlet character\chi; -
iis an integer ranging from 1 to the relative dimension of the newform that distinguishes embeddings with the same character\chi.
Depends on: Definition 1.45 Definition 1.47 Definition 1.49 Definition 4.10 Definition 4.28 Definition 4.35 Definition 4.46 Definition 4.51 Definition 4.63 Definition 4.83
Label of a classical modular form. (LMFDB)
The label of a f\in M_k^{\\rm new}(N,\chi) has the format N.k.A.a.x, where
-
Nis the level; -
kis the weight; -
N.ais the label of the Galois orbit of the Dirichlet character\chi; -
Ais a character signifying the automorphic type of the modular form -Efor Eisenstein orCfor cuspidal. -
xis the label of the Galois orbit of the newformf.
For each embedding of the coefficient field of f into the complex numbers, the corresponding modular form over \C has a label of the form N.k.A.a.x.n.i, where
-
ndetermines the Conrey labelN.nof the Dirichlet character\chi; -
iis an integer ranging from 1 to the relative dimension of the newform that distinguishes embeddings with the same character\chi.
If f \in S_k^{\rm new}(N, \chi) is cuspidal, the automorphic type may be omitted from both labels.
Depends on: Definition 1.45 Definition 1.47 Definition 1.49 Definition 4.10 Definition 4.28 Definition 4.35 Definition 4.46 Definition 4.63 Definition 4.83
-
ModularForm.IsLevel[complete] -
ModularForm.isLevel_iff[complete] -
HeckeRing.GL2.Newform.level[complete] -
HeckeRing.GL2.Newform.level_le[complete] -
CongruenceSubgroup.Gamma[complete]
Level of a modular form. (LMFDB)
A level of a modular form f is a positive integer N such that f is a modular form on a subgroup \Gamma of \operatorname{SL}_2(\mathbb{Z}) that contains the principal congruence subgroup \Gamma(N).
The level of a newform is the least such integer N.
Depends on: Definition 4.1 Definition 1.94
Lean code for Definition4.46●5 declarations
Associated Lean declarations
-
ModularForm.IsLevel[complete]
-
ModularForm.isLevel_iff[complete]
-
HeckeRing.GL2.Newform.level[complete]
-
HeckeRing.GL2.Newform.level_le[complete]
-
CongruenceSubgroup.Gamma[complete]
-
ModularForm.IsLevel[complete] -
ModularForm.isLevel_iff[complete] -
HeckeRing.GL2.Newform.level[complete] -
HeckeRing.GL2.Newform.level_le[complete] -
CongruenceSubgroup.Gamma[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Level.leancomplete
def ModularForm.IsLevel (k : ℤ) (N : ℕ) (F : UpperHalfPlane → ℂ) : Prop
def ModularForm.IsLevel (k : ℤ) (N : ℕ) (F : UpperHalfPlane → ℂ) : Prop
A positive integer `N` is **a level** of a function `F : ℍ → ℂ` that is a modular form of weight `k` (LMFDB `cmf.level`) if `F` is a modular form of weight `k` on a subgroup `Γ` of `SL₂(ℤ)` containing the principal congruence subgroup `Γ(N)`; equivalently, on `Γ(N)` itself (`isLevel_iff`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Level.leancomplete
theorem ModularForm.isLevel_iff {k : ℤ} {N : ℕ} {F : UpperHalfPlane → ℂ} : ModularForm.IsLevel k N F ↔ 0 < N ∧ ∃ G, ⇑G = F
theorem ModularForm.isLevel_iff {k : ℤ} {N : ℕ} {F : UpperHalfPlane → ℂ} : ModularForm.IsLevel k N F ↔ 0 < N ∧ ∃ G, ⇑G = F
**`N` is a level of `F` exactly when `F` is a modular form on `Γ(N)`**: a modular form on a group `Γ ⊇ Γ(N)` is one on `Γ(N)`.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Level.leancomplete
def HeckeRing.GL2.Newform.level {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
def HeckeRing.GL2.Newform.level {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ℕ
The **level** of a newform `f` (LMFDB `cmf.level`): the least level of its underlying modular form, i.e. the least `M` such that `f` is a modular form on `Γ(M)`. For a newform of Tau Ceti's level `N` this is `N`, but only `level_le` is proved here.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Level.leancomplete
theorem HeckeRing.GL2.Newform.level_le {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.level ≤ N
theorem HeckeRing.GL2.Newform.level_le {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.level ≤ N
**The level of a newform of level `N` is at most `N`.**
-
defdefined in Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.leancomplete
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
def CongruenceSubgroup.Gamma (N : ℕ) : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)
The full level `N` congruence subgroup of `SL(2, ℤ)` of matrices that reduce to the identity modulo `N`.
-
HeckeRing.GL2.Newform.IsMaximal[complete] -
HeckeRing.GL2.Newform.IsLargest[complete] -
HeckeRing.GL2.Newform.ambientSubspace[complete] -
HeckeRing.GL2.Newform.ambientNewforms[complete] -
HeckeRing.GL2.Newform.isMaximal_iff[complete]
Maximal newform. (LMFDB)
A newform is maximal if its Galois orbit spans the ambient subspace that contains it (its Atkin-Lehner subspace when the character is trivial, the entire newspace otherwise).
A newform is the largest newform in its ambient subspace if its dimension is strictly larger than that of any other newform in the same subspace (this includes newforms that are maximal).
Depends on: Definition 4.8 Definition 4.18 Definition 4.35 Definition 4.51
Lean code for Definition4.47●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.IsMaximal[complete]
-
HeckeRing.GL2.Newform.IsLargest[complete]
-
HeckeRing.GL2.Newform.ambientSubspace[complete]
-
HeckeRing.GL2.Newform.ambientNewforms[complete]
-
HeckeRing.GL2.Newform.isMaximal_iff[complete]
-
HeckeRing.GL2.Newform.IsMaximal[complete] -
HeckeRing.GL2.Newform.IsLargest[complete] -
HeckeRing.GL2.Newform.ambientSubspace[complete] -
HeckeRing.GL2.Newform.ambientNewforms[complete] -
HeckeRing.GL2.Newform.isMaximal_iff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Maximal.leancomplete
def HeckeRing.GL2.Newform.IsMaximal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.IsMaximal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
A newform is **maximal** (LMFDB `cmf.maximal`) if its Galois orbit spans its ambient subspace: its newform subspace is its Atkin–Lehner subspace when its nebentypus is trivial, and the whole space of newforms `S_k^{new}(N, [χ])` otherwise. -
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Maximal.leancomplete
def HeckeRing.GL2.Newform.IsLargest {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.IsLargest {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
A newform is the **largest** newform in its ambient subspace (LMFDB `cmf.maximal`) if its dimension is larger than that of every newform of its ambient subspace that is not Galois conjugate to it.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Maximal.leancomplete
def HeckeRing.GL2.Newform.ambientSubspace {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.Newform.ambientSubspace {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **ambient subspace** of a newform `f` (LMFDB `cmf.maximal`): for trivial nebentypus, its Atkin–Lehner subspace of `S_k(Γ₀(N))ⁿᵉʷ`, the forms with the Atkin–Lehner signs of `f`; otherwise the space of newforms `S_k^{new}(N, [χ])` of the Galois orbit of its nebentypus `χ`. Both are the span of the newforms that they contain, `ambientNewforms f`. -
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Maximal.leancomplete
def HeckeRing.GL2.Newform.ambientNewforms {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.ambientNewforms {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (HeckeRing.GL2.Newform N k)
The newforms of the **ambient subspace** of a newform `f` (LMFDB `cmf.maximal`): if `f` has trivial nebentypus, the newforms of trivial nebentypus with the same Atkin–Lehner signs as `f` at every exact divisor `Q ∥ N`; otherwise, the newforms whose nebentypus is a Galois conjugate `σ ∘ χ` of the nebentypus `χ` of `f`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Maximal.leancomplete
theorem HeckeRing.GL2.Newform.isMaximal_iff {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} : f.IsMaximal ↔ f.galoisOrbit = f.ambientNewforms
theorem HeckeRing.GL2.Newform.isMaximal_iff {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} : f.IsMaximal ↔ f.galoisOrbit = f.ambientNewforms
**A newform is maximal exactly when its Galois orbit is the set of newforms of its ambient subspace**, newforms being linearly independent.
-
HeckeRing.GL2.Newform.IsMinimal[complete] -
HeckeRing.GL2.Newform.isMinimal_iff_isTwistMinimal[complete]
Minimal modular form. (LMFDB)
A modular form is minimal if it is not a twist of a form of lower level.
Lean code for Definition4.48●2 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.IsMinimal[complete]
-
HeckeRing.GL2.Newform.isMinimal_iff_isTwistMinimal[complete]
-
HeckeRing.GL2.Newform.IsMinimal[complete] -
HeckeRing.GL2.Newform.isMinimal_iff_isTwistMinimal[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Minimal.leancomplete
def HeckeRing.GL2.Newform.IsMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.IsMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
A newform `f` of level `N` is **minimal** (LMFDB `cmf.minimal`) if it is not a twist of a newform of lower level, i.e. if no newform of level less than `N` is twist equivalent to it. Twist equivalent newforms have the same weight, a theorem that is not proved here, so the newforms of lower level are taken of the weight of `f`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Minimal.leancomplete
theorem HeckeRing.GL2.Newform.isMinimal_iff_isTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} : f.IsMinimal ↔ f.IsTwistMinimal
theorem HeckeRing.GL2.Newform.isMinimal_iff_isTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} : f.IsMinimal ↔ f.IsTwistMinimal
**Minimal and twist minimal newforms are the same**: a newform is not a twist of a newform of lower level exactly when its level is the least in its twist class.
Minimal twist. (LMFDB)
The minimal twist of a newform f is the twist g of f whose label is lexicographically minimal among all twists of f that are both twist minimal and have minimal character \chi.
A key feature of the minimal twist g (and more generally, of any twist minimal g of level N and minimal character \chi) is that for any character \psi, the level M of the twist g\otimes\psi can be computed as M={\rm lcm}(N,{\rm cond}(\psi){\rm cond}(\chi\psi)).
Depends on: Definition 1.51 Definition 4.8 Definition 4.44 Definition 4.46 Definition 4.51 Definition 4.80 Definition 4.81
Minus space. (LMFDB)
The minus subspace of S_k(\Gamma_0(N)) is the eigenspace of the Fricke involution w_N with eigenvalue -1.
Depends on: Definition 4.33
Lean code for Definition4.50●1 definition
Associated Lean declarations
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Normalized.leancomplete
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
**The normalized Atkin–Lehner operator on cusp forms** `S_k(Γ₀(N))`.
-
HeckeRing.GL2.Newform[complete] -
HeckeRing.GL2.Newform.basis[complete] -
HeckeRing.GL2.Newform.toEigenform[complete] -
TauCeti.cuspFormsNew[complete]
Newform. (LMFDB)
A newform is a cusp form f\in S_k^{\rm new}(N,\chi) in the new subspace that is also an eigenform of all Hecke operators, normalized so that the q-expansion f(z)=\sum a_n q^n, where q=e^{2\pi i z}, begins with the coefficient a_1=1. The newforms are a basis for the new subspace.
Depends on: Definition 4.31 Definition 4.37 Definition 4.53
Lean code for Definition4.51●4 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform[complete]
-
HeckeRing.GL2.Newform.basis[complete]
-
HeckeRing.GL2.Newform.toEigenform[complete]
-
TauCeti.cuspFormsNew[complete]
-
HeckeRing.GL2.Newform[complete] -
HeckeRing.GL2.Newform.basis[complete] -
HeckeRing.GL2.Newform.toEigenform[complete] -
TauCeti.cuspFormsNew[complete]
-
structuredefined in TauCeti/NumberTheory/ModularForms/Newforms/Newform.leancomplete
structure HeckeRing.GL2.Newform (N : ℕ) [NeZero N] (k : ℤ) : Type
structure HeckeRing.GL2.Newform (N : ℕ) [NeZero N] (k : ℤ) : Type
**A newform**: a good Hecke eigenform lying in the new subspace and normalised by `a₁ = 1` (Miyake's *primitive form*). That a newform is an eigenform for every `T_n` is a theorem, not part of the definition.
Extends
-
HeckeRing.GL2.EigenformAwayFromLevel N k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm -
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N), SlashAction.map k γ self.toFun = self.toFun
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm -
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm
zero_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) → c.IsZeroAt self.toFun k
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm
χ : (ZMod N)ˣ →* ℂˣ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
mem_charSpace : self.toCuspForm ∈ cuspFormCharSpace k self.χ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
eigenvalue : (n : ℕ+) → (↑n).Coprime N → ℂ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
isEigen : ∀ (n : ℕ+) (hn : (↑n).Coprime N), ((HeckeRing.GL2.heckeRingHomCuspCharSpace k self.χ) (HeckeRing.GL2.heckeTCompositeGamma0 N ↑n)) ⟨self.toCuspForm, ⋯⟩ = self.eigenvalue n hn • ⟨self.toCuspForm, ⋯⟩
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
ne_zero : self.toCuspForm ≠ 0
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
isNew : self.toCuspForm ∈ TauCeti.cuspFormsNew N k
The form lies in the new subspace `S_k(Γ₁(N))ⁿᵉʷ`.
isNorm : (PowerSeries.coeff 1) (UpperHalfPlane.qExpansion 1 ⇑self.toCuspForm) = 1
The form is normalised: its first Fourier coefficient is `1`.
-
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/OrthogonalBasis.leancomplete
def HeckeRing.GL2.Newform.basis (N : ℕ) [NeZero N] (k : ℤ) : Module.Basis (HeckeRing.GL2.Newform N k) ℂ ↥(TauCeti.cuspFormsNew N k)
def HeckeRing.GL2.Newform.basis (N : ℕ) [NeZero N] (k : ℤ) : Module.Basis (HeckeRing.GL2.Newform N k) ℂ ↥(TauCeti.cuspFormsNew N k)
**The newforms, as a basis of the new subspace** `S_k(Γ₁(N))ⁿᵉʷ` (Miyake, Theorem 4.6.13(2); Diamond–Shurman, Theorem 5.8.2). It is Petersson-orthogonal: `Newform.peterssonInnerCosets_eq_zero_of_ne`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/FullEigenform.leancomplete
def HeckeRing.GL2.Newform.toEigenform {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : HeckeRing.GL2.Eigenform N k
def HeckeRing.GL2.Newform.toEigenform {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : HeckeRing.GL2.Eigenform N k
**A newform is a full Hecke eigenform** (Diamond–Shurman, Theorem 5.8.2; Miyake, Theorem 4.6.13): its good eigensystem, together with the bad-prime eigenvector equations `U_p f = a_p(f) • f`, makes it an eigenvector of `T_n` at every positive index. This is the bridge between Miyake's *primitive form*, the definition of `Newform` here, and Diamond–Shurman's *newform*, defined as a normalised full eigenform in the new subspace.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Basic.leancomplete
def TauCeti.cuspFormsNew (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def TauCeti.cuspFormsNew (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **new subspace** `S_k(Γ₁(N))ⁿᵉʷ`: the Petersson-orthogonal complement of the old subspace inside `S_k(Γ₁(N))`.
Newform subspace. (LMFDB)
The newform subspace of a newform f in S_k^{\rm new}(N,\chi) is the subspace generated by the Galois conjugates of f.
Every newspace has a canonical decomposition into newform subspaces.
Depends on: Definition 4.51 Definition 4.53
Lean code for Definition4.52●5 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
def HeckeRing.GL2.Newform.newformSubspace {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.Newform.newformSubspace {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **newform subspace** `V_f` of a newform `f` (LMFDB `cmf.newform_subspace`): the subspace of `S_k(Γ₁(N))` spanned by the Galois conjugates of `f`, i.e. by its Galois orbit, over `ℂ`.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
def HeckeRing.GL2.NewformOrbit.newformSubspace {N : ℕ} [NeZero N] {k : ℤ} (O : HeckeRing.GL2.NewformOrbit N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def HeckeRing.GL2.NewformOrbit.newformSubspace {N : ℕ} [NeZero N] {k : ℤ} (O : HeckeRing.GL2.NewformOrbit N k) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **newform subspace** of a newform orbit `O` (LMFDB `cmf.newform_subspace`): the span of the newforms in `O`, which is the newform subspace of each of them.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
theorem HeckeRing.GL2.NewformOrbit.iSupIndep_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} : iSupIndep fun O => O.newformSubspace
theorem HeckeRing.GL2.NewformOrbit.iSupIndep_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} : iSupIndep fun O => O.newformSubspace
**The newform subspaces of distinct newform orbits are independent**, newforms being linearly independent.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
theorem HeckeRing.GL2.NewformOrbit.iSup_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} : ⨆ O, O.newformSubspace = TauCeti.cuspFormsNew N k
theorem HeckeRing.GL2.NewformOrbit.iSup_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} : ⨆ O, O.newformSubspace = TauCeti.cuspFormsNew N k
**The newform subspaces of the newform orbits span the new subspace** `S_k(Γ₁(N))ⁿᵉʷ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/NewformSubspace.leancomplete
theorem HeckeRing.GL2.Newform.heckeTCuspNat_mem_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {p : ℕ} [NeZero p] (hp : Nat.Prime p) {F : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hF : F ∈ f.newformSubspace) : (HeckeRing.GL2.heckeTCuspNat k p) F ∈ f.newformSubspace
theorem HeckeRing.GL2.Newform.heckeTCuspNat_mem_newformSubspace {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {p : ℕ} [NeZero p] (hp : Nat.Prime p) {F : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hF : F ∈ f.newformSubspace) : (HeckeRing.GL2.heckeTCuspNat k p) F ∈ f.newformSubspace
**The newform subspace is stable under the Hecke operators** `T_p` at every prime `p`, those dividing the level included: every Galois conjugate of `f` is an eigenform of `T_p`.
-
TauCeti.cuspFormsNew[complete] -
TauCeti.cuspFormsOld[complete] -
cuspFormCharSpace[complete]
New subspace. (LMFDB)
The space S_k(N,\chi) of cuspidal modular forms of level N, weight k, and character \chi can be decomposed
S_k(N,\chi) = S_k^{\rm old}(N,\chi) \oplus S_k^{\rm new}(N,\chi)
into old and new subspaces, defined as follows.
If M is a proper divisor of N and \chi_M is a Dirichlet character of modulus M that induces \chi, then for all d \mid (N/M), there is a map from S_k(M,\chi_M) \to S_k(N,\chi) via f(z) \mapsto f(dz). The span of the images of all of these maps is the old subspace S_k^{\rm old}(N,\chi) \subseteq S_k(N,\chi).
The new subspace S_k^{\rm new}(N,\chi) is the orthogonal complement of S_k^{\rm old}(N,\chi) with respect to the Petersson inner product.
A basis for the new subspace is given by newforms.
Depends on: Definition 1.45 Definition 1.50 Definition 1.52 Definition 4.1 Definition 4.8 Definition 4.13 Definition 4.46 Definition 4.56 Definition 4.83
Lean code for Definition4.53●3 definitions
Associated Lean declarations
-
TauCeti.cuspFormsNew[complete]
-
TauCeti.cuspFormsOld[complete]
-
cuspFormCharSpace[complete]
-
TauCeti.cuspFormsNew[complete] -
TauCeti.cuspFormsOld[complete] -
cuspFormCharSpace[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Basic.leancomplete
def TauCeti.cuspFormsNew (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def TauCeti.cuspFormsNew (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **new subspace** `S_k(Γ₁(N))ⁿᵉʷ`: the Petersson-orthogonal complement of the old subspace inside `S_k(Γ₁(N))`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Basic.leancomplete
def TauCeti.cuspFormsOld (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def TauCeti.cuspFormsOld (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **old subspace** `S_k(Γ₁(N))ᵒˡᵈ`: the subspace of `S_k(Γ₁(N))` spanned by the images of the level-raising operators `V_d : S_k(Γ₁(M)) → S_k(Γ₁(N))` over all pairs `(M, d)` with `d * M ∣ N` and `M` a proper divisor of `N`. Since `d * M ∣ N` forces `d = 1` when `M = N`, the condition `M ≠ N` removes exactly the identity operator at level `N`.
-
defdefined in TauCeti/NumberTheory/ModularForms/DiamondOperators.leancomplete
def cuspFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def cuspFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The nebentypus character space `S_k(Γ₁(N), χ)`: cusp forms on which every diamond operator `⟨d⟩` acts by the scalar `χ(d)`.
Nontrivial inner twist. (LMFDB)
An inner twist is nontrivial if it is not the self twist by the trivial character.
Depends on: Definition 4.41 Definition 4.68
Lean code for Definition4.54●2 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
def HeckeRing.GL2.Newform.nontrivialInnerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
def HeckeRing.GL2.Newform.nontrivialInnerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set (((M : ℕ+) × DirichletCharacter ℂ ↑M) × HeckeRing.GL2.Newform N k)
The **nontrivial inner twists** of the newform `f` (LMFDB `cmf.nontrivial_twist`): its inner twists other than the self twist by the trivial character.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/InnerTwist.leancomplete
theorem HeckeRing.GL2.Newform.ncard_nontrivialInnerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.nontrivialInnerTwists.ncard = f.innerTwistCount - 1
theorem HeckeRing.GL2.Newform.ncard_nontrivialInnerTwists {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : f.nontrivialInnerTwists.ncard = f.innerTwistCount - 1
**The number of nontrivial inner twists** is one less than the inner twist count.
-
TauCeti.CuspForm.levelRaise[complete] -
TauCeti.cuspFormsOld[complete] -
TauCeti.cuspFormsOldMultiples[complete]
Old subspace of modular forms. (LMFDB)
Each space of S_k(N,\chi) of cuspidal modular forms of weight k, level N, and character \chi contains an old subspace S_k^{\rm old}(N,\chi) that can be expressed as a direct sum of spaces of newforms S_k^{\rm new}(N_i,\chi_i), where each N_i is a proper divisor of N divisible by the conductor of \chi, and each \chi_i is the unique character of modulus N_i induced by the primitive character that induces \chi.
This decomposition arises from the injective maps
\begin{aligned}
\iota_d\colon S_k(N_i,\chi_i)&\to S_k(N,\chi)\\
f\ &\mapsto f(d\tau)
\end{aligned}
that exist for each divisor d of N/N_i. The image of each \iota_d is isomorphic to S_k(N_i,\chi_i), and we have the decomposition
S_k(N,\chi)\simeq\!\!\!\! \bigoplus_{\mathrm{cond}(\chi)|N_i|N}\!\!\!\! S_k^{\rm new}(N_i,\chi_i)^{\oplus m_i},
where m_i is the number of divisors of N/N_i. Restricting the direct sum to proper divisors N_i of N yields a decomposition for S_k^{\rm old}(N,\chi).
Depends on: Definition 1.46 Definition 1.50 Definition 1.54 Definition 4.1 Definition 4.8 Definition 4.13 Definition 4.46 Definition 4.53 Definition 4.83
Lean code for Definition4.55●3 definitions
Associated Lean declarations
-
TauCeti.CuspForm.levelRaise[complete]
-
TauCeti.cuspFormsOld[complete]
-
TauCeti.cuspFormsOldMultiples[complete]
-
TauCeti.CuspForm.levelRaise[complete] -
TauCeti.cuspFormsOld[complete] -
TauCeti.cuspFormsOldMultiples[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Degeneracy.leancomplete
def TauCeti.CuspForm.levelRaise {k : ℤ} {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} [𝒢'.HasDetOne] (d : ℕ) [NeZero d] (h : 𝒢' ≤ ConjAct.toConjAct (TauCeti.scaleGL d)⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
def TauCeti.CuspForm.levelRaise {k : ℤ} {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} [𝒢'.HasDetOne] (d : ℕ) [NeZero d] (h : 𝒢' ≤ ConjAct.toConjAct (TauCeti.scaleGL d)⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
The level-raising (degeneracy) operator `V_d` on cusp forms, `(V_d f) τ = f (d τ)`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Basic.leancomplete
def TauCeti.cuspFormsOld (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def TauCeti.cuspFormsOld (N : ℕ) [NeZero N] (k : ℤ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The **old subspace** `S_k(Γ₁(N))ᵒˡᵈ`: the subspace of `S_k(Γ₁(N))` spanned by the images of the level-raising operators `V_d : S_k(Γ₁(M)) → S_k(Γ₁(N))` over all pairs `(M, d)` with `d * M ∣ N` and `M` a proper divisor of `N`. Since `d * M ∣ N` forces `d = 1` when `M = N`, the condition `M ≠ N` removes exactly the identity operator at level `N`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Basic.leancomplete
def TauCeti.cuspFormsOldMultiples (N : ℕ) [NeZero N] (k : ℤ) (m : ℕ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def TauCeti.cuspFormsOldMultiples (N : ℕ) [NeZero N] (k : ℤ) (m : ℕ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The part of the old subspace generated by the **new** forms at proper divisor levels that are multiples of `m`: the supremum of the `V_d`-images of `S_k(Γ₁(M))ⁿᵉʷ` over the pairs `(M, d)` with `d * M ∣ N`, `M ≠ N` and `m ∣ M`. The intended `m` is the conductor of a nebentypus character, which is why the level condition is divisibility by `m`; but this is **not** Miyake's `S_k^♭(N, χ)` (p. 162). The generators here range over the whole newspace `cuspFormsNew M k` at each eligible level, including forms of nebentypus unrelated to `χ`, whereas Miyake's space is generated by the `χ`-isotypic newspaces together with the character transition along each `M ∣ N`. Recovering `S_k^♭(N, χ)` needs those. This is an uncharactered auxiliary subspace of the old subspace — neither containing nor contained in Miyake's space in general — and it is what the inclusion into `cuspFormsOld` below is stated for.
-
ModularForm.peterssonScalarProduct[complete] -
ModularForm.peterssonScalarProduct_eq_integral[complete] -
ModularForm.integrableOn_of_isCuspForm[complete] -
ModularForm.peterssonScalarProduct_coe_coe[complete] -
UpperHalfPlane.petersson[complete]
Petersson scalar product. (LMFDB)
Let f and g be two modular forms with respect to a finite index subgroup G of \Gamma. When it exists, we define the
Petersson scalar product of f and g with respect to the group G
by
\langle
f,g\rangle_G=\frac{1}{[\Gamma:G]}\int_{\mathfrak{F}}f(z)\overline{
g(z)}y^kd\mu,
where \mathfrak{F} is a fundamental domain for G and d\mu=dxdy/y^2 is the measure associated to the hyperbolic metric.
Note that the Petersson scalar product exists if at least one of f, g is a cusp form.
Depends on: Definition 4.13 Definition 4.57 Definition 1.83 Definition 1.96
Lean code for Definition4.56●5 declarations
Associated Lean declarations
-
ModularForm.peterssonScalarProduct[complete]
-
ModularForm.peterssonScalarProduct_eq_integral[complete]
-
ModularForm.integrableOn_of_isCuspForm[complete]
-
ModularForm.peterssonScalarProduct_coe_coe[complete]
-
UpperHalfPlane.petersson[complete]
-
ModularForm.peterssonScalarProduct[complete] -
ModularForm.peterssonScalarProduct_eq_integral[complete] -
ModularForm.integrableOn_of_isCuspForm[complete] -
ModularForm.peterssonScalarProduct_coe_coe[complete] -
UpperHalfPlane.petersson[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Petersson.leancomplete
def ModularForm.peterssonScalarProduct {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) : ℂ
def ModularForm.peterssonScalarProduct {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) : ℂ
The **Petersson scalar product** (LMFDB `cmf.petersson_scalar_product`) of two modular forms `f` and `g` of weight `k` for a finite-index subgroup `Γ` of `SL₂(ℤ)`: `⟨f, g⟩_Γ = [SL₂(ℤ) : Γ]⁻¹ ∫_𝔉 f(z) conj(g(z)) y^k dμ`, where `dμ = dx dy / y²` and `𝔉` is a fundamental domain for `Γ`, here the union of the translates `q⁻¹ 𝒟ᵒ` of the open standard domain over the cosets `q` of `Γ·{±1}` (`peterssonScalarProduct_eq_integral` shows that any fundamental domain gives the same value). As in the LMFDB it is linear in `f` and conjugate-linear in `g`, the opposite of Mathlib's integrand `UpperHalfPlane.petersson` and of Tau Ceti's pairing `CuspForm.peterssonInnerCosets`. The integral converges when `f` or `g` is a cusp form (`integrableOn_of_isCuspForm`); otherwise the value is that of Mathlib's Bochner integral and carries no meaning. The normalisation is the LMFDB's `1 / [SL₂(ℤ) : Γ]`. Since `-1` acts trivially on the upper half-plane, a fundamental domain for `Γ` is one for `Γ·{±1}`; when `-1 ∉ Γ` the index `[SL₂(ℤ) : Γ]` is twice `[SL₂(ℤ) : Γ·{±1}]`, so that the product is then half of the volume-normalised one. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Petersson.leancomplete
theorem ModularForm.peterssonScalarProduct_eq_integral {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) {𝔉 : Set UpperHalfPlane} (h𝔉 : MeasureTheory.IsFundamentalDomain (↥(Subgroup.map (QuotientGroup.mk' (Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) ℤ))) Γ)) 𝔉 MeasureTheory.volume) : f.peterssonScalarProduct g = (↑Γ.index)⁻¹ * ∫ (τ : UpperHalfPlane) in 𝔉, f τ * (starRingEnd ℂ) (g τ) * ↑τ.im ^ k
theorem ModularForm.peterssonScalarProduct_eq_integral {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) {𝔉 : Set UpperHalfPlane} (h𝔉 : MeasureTheory.IsFundamentalDomain (↥(Subgroup.map (QuotientGroup.mk' (Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) ℤ))) Γ)) 𝔉 MeasureTheory.volume) : f.peterssonScalarProduct g = (↑Γ.index)⁻¹ * ∫ (τ : UpperHalfPlane) in 𝔉, f τ * (starRingEnd ℂ) (g τ) * ↑τ.im ^ k
**The Petersson scalar product is an integral over any fundamental domain**: for every fundamental domain `𝔉` of `Γ` acting on the upper half-plane, `⟨f, g⟩_Γ = [SL₂(ℤ) : Γ]⁻¹ ∫_𝔉 f(z) conj(g(z)) y^k dμ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Petersson.leancomplete
theorem ModularForm.integrableOn_of_isCuspForm {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) {g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k} {𝔉 : Set UpperHalfPlane} (h𝔉 : MeasureTheory.IsFundamentalDomain (↥(Subgroup.map (QuotientGroup.mk' (Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) ℤ))) Γ)) 𝔉 MeasureTheory.volume) [Γ.FiniteIndex] (h : f.IsCuspForm ∨ g.IsCuspForm) : MeasureTheory.IntegrableOn (fun τ => f τ * (starRingEnd ℂ) (g τ) * ↑τ.im ^ k) 𝔉 MeasureTheory.volume
theorem ModularForm.integrableOn_of_isCuspForm {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) {g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k} {𝔉 : Set UpperHalfPlane} (h𝔉 : MeasureTheory.IsFundamentalDomain (↥(Subgroup.map (QuotientGroup.mk' (Subgroup.center (Matrix.SpecialLinearGroup (Fin 2) ℤ))) Γ)) 𝔉 MeasureTheory.volume) [Γ.FiniteIndex] (h : f.IsCuspForm ∨ g.IsCuspForm) : MeasureTheory.IntegrableOn (fun τ => f τ * (starRingEnd ℂ) (g τ) * ↑τ.im ^ k) 𝔉 MeasureTheory.volume
**The Petersson scalar product exists when one of the forms is a cusp form**: the integrand `f(z) conj(g(z)) y^k` is then integrable over every fundamental domain of `Γ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Petersson.leancomplete
theorem ModularForm.peterssonScalarProduct_coe_coe {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (c c' : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) [Γ.FiniteIndex] : (ModularFormClass.modularForm c).peterssonScalarProduct (ModularFormClass.modularForm c') = (↑Γ.index)⁻¹ * c'.peterssonInnerCosets c
theorem ModularForm.peterssonScalarProduct_coe_coe {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} {k : ℤ} (c c' : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) [Γ.FiniteIndex] : (ModularFormClass.modularForm c).peterssonScalarProduct (ModularFormClass.modularForm c') = (↑Γ.index)⁻¹ * c'.peterssonInnerCosets c
**On cusp forms the Petersson scalar product is Tau Ceti's pairing**, with the arguments swapped and divided by `[SL₂(ℤ) : Γ]`.
-
defdefined in Mathlib/NumberTheory/ModularForms/Petersson.leancomplete
def UpperHalfPlane.petersson (k : ℤ) (f f' : UpperHalfPlane → ℂ) (τ : UpperHalfPlane) : ℂ
def UpperHalfPlane.petersson (k : ℤ) (f f' : UpperHalfPlane → ℂ) (τ : UpperHalfPlane) : ℂ
The integrand in the Petersson scalar product of two modular forms.
Petersson scalar product (mathlib). (LMFDB)
The mathlib definition petersson defines only the integrand of the Petersson scalar product. Mathlib uses the conjugate of the first argument, whereas the LMFDB definition uses the conjugate of the second argument.
Lean code for Definition4.57●1 definition
Associated Lean declarations
-
UpperHalfPlane.petersson[complete]
-
UpperHalfPlane.petersson[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/Petersson.leancomplete
def UpperHalfPlane.petersson (k : ℤ) (f f' : UpperHalfPlane → ℂ) (τ : UpperHalfPlane) : ℂ
def UpperHalfPlane.petersson (k : ℤ) (f f' : UpperHalfPlane → ℂ) (τ : UpperHalfPlane) : ℂ
The integrand in the Petersson scalar product of two modular forms.
Plus space. (LMFDB)
The plus subspace of S_k(\Gamma_0(N) is the eigenspace of the Fricke involution \omega_N with eigenvalue 1.
Depends on: Definition 4.33
Lean code for Definition4.58●1 definition
Associated Lean declarations
-
defdefined in TauCeti/NumberTheory/ModularForms/AtkinLehner/Normalized.leancomplete
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
def TauCeti.Nat.IsExactDivisor.normalizedAtkinLehnerOperatorCusp {N Q : ℕ} (h : TauCeti.Nat.IsExactDivisor Q N) (k : ℤ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k →ₗ[ℂ] CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma0 N)) k
**The normalized Atkin–Lehner operator on cusp forms** `S_k(Γ₀(N))`.
Projective field. (LMFDB)
The projective field of a weight one newform is the number field fixed by the kernel of its associated projective Galois representation \bar\rho\colon \Gal(\overline{\Q}/\Q)\to \PGL_2(\C).
This number field is typically identified as the Galois closure of a sibling subfield with minimal degree and absolute discriminant.
Depends on: Definition 4.36 Definition 4.51 Definition 4.83 Definition 2.1 Definition 2.61
Lean code for Definition4.59●3 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
def HeckeRing.GL2.Newform.GaloisRep.projectiveField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : IntermediateField ℚ (AlgebraicClosure ℚ)
def HeckeRing.GL2.Newform.GaloisRep.projectiveField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : IntermediateField ℚ (AlgebraicClosure ℚ)
The **projective field** (LMFDB `cmf.projective_field`) of a weight-one newform: the subfield of `ℚ̄` fixed by the kernel of its projective Galois representation. It is a number field, of degree the order of the projective image (`finrank_projectiveField`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_projectiveField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.projectiveField = Nat.card ↥ρ.projectiveImage
theorem HeckeRing.GL2.Newform.GaloisRep.finrank_projectiveField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : Module.finrank ℚ ↥ρ.projectiveField = Nat.card ↥ρ.projectiveImage
**The degree of the projective field is the order of the projective image.**
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/SatoTate/GaloisRepresentation.leancomplete
theorem HeckeRing.GL2.Newform.GaloisRep.projectiveField_le_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : ρ.projectiveField ≤ ρ.artinField
theorem HeckeRing.GL2.Newform.GaloisRep.projectiveField_le_artinField {N : ℕ} [NeZero N] {f : HeckeRing.GL2.Newform N 1} (ρ : f.GaloisRep) : ρ.projectiveField ≤ ρ.artinField
**The projective field is a subfield of the Artin field**, the kernel of `ρ` being contained in that of `ρ̄`.
Projective image. (LMFDB)
The projective image of a weight one newform is the image of its associated projective Galois representation \rho\colon \Gal(\overline{\Q}/\Q)\to \PGL_2(\C). It is a finite subgroup of \PGL_2(\C) that can be classified as one of four types: It is either isomorphic to a dihedral group D_n for some integer n\ge 2 (where D_2:=C_2\times C_2 is the Klein group), or to one of A_4, S_4, A_5, where A_n and S_n respectively denote the alternating and symmetric groups on n letters.
Depends on: Definition 4.36 Definition 4.51 Definition 4.83
-
UpperHalfPlane.qExpansion[complete] -
CuspFormClass.qExpansion_coeff_zero[complete] -
HeckeRing.GL2.Newform.orbitQExpansion[complete] -
HeckeRing.GL2.Newform.map_orbitQExpansion[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.map_orbitQExpansion[complete]
q-expansion of a modular form. (LMFDB)
The q-expansion of a modular form f(z) is its Fourier expansion at the cusp z=i\infty, expressed as a power series \sum_{n=0}^{\infty} a_n q^n in the variable q=e^{2\pi iz}.
For cusp forms, the constant coefficient a_0 of the q-expansion is zero.
For newforms, we have a_1=1 and the coefficients a_n are algebraic integers in a number field K \subseteq \C.
Accordingly, we define the q-expansion of a newform orbit [f] to be the q-expansion of any newform f in the orbit, but with coefficients a_n \in K (without an embedding into \C). Each embedding K \hookrightarrow \C then gives rise to an embedded newform whose q-expansion has a_n \in \C, as above.
Depends on: Definition 4.13 Definition 4.31 Definition 4.35 Definition 4.51 Definition 4.62 Definition 1.81 Definition 2.1 Definition 2.17
Lean code for Definition4.61●5 declarations
Associated Lean declarations
-
UpperHalfPlane.qExpansion[complete]
-
CuspFormClass.qExpansion_coeff_zero[complete]
-
HeckeRing.GL2.Newform.orbitQExpansion[complete]
-
HeckeRing.GL2.Newform.map_orbitQExpansion[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugateBy.map_orbitQExpansion[complete]
-
UpperHalfPlane.qExpansion[complete] -
CuspFormClass.qExpansion_coeff_zero[complete] -
HeckeRing.GL2.Newform.orbitQExpansion[complete] -
HeckeRing.GL2.Newform.map_orbitQExpansion[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.map_orbitQExpansion[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
The `q`-expansion of a function on the upper half plane with strict period `h`, bundled as a `PowerSeries`. The `m`-th coefficient is the Taylor coefficient of the `cuspFunction` at `q = 0`, where `q = exp(2πiτ/h)` is the local parameter at the cusp.
-
theoremdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
theorem CuspFormClass.qExpansion_coeff_zero.{u_1} {k : ℤ} {F : Type u_1} [FunLike F UpperHalfPlane ℂ] {Γ : Subgroup (GL (Fin 2) ℝ)} {h : ℝ} (f : F) [CuspFormClass F Γ k] (hh : 0 < h) (hΓ : h ∈ Γ.strictPeriods) : (PowerSeries.coeff 0) (UpperHalfPlane.qExpansion h ⇑f) = 0
theorem CuspFormClass.qExpansion_coeff_zero.{u_1} {k : ℤ} {F : Type u_1} [FunLike F UpperHalfPlane ℂ] {Γ : Subgroup (GL (Fin 2) ℝ)} {h : ℝ} (f : F) [CuspFormClass F Γ k] (hh : 0 < h) (hΓ : h ∈ Γ.strictPeriods) : (PowerSeries.coeff 0) (UpperHalfPlane.qExpansion h ⇑f) = 0
The zeroth coefficient of the `q`-expansion of a cusp form vanishes.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Embedding.leancomplete
def HeckeRing.GL2.Newform.orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : PowerSeries ↥(TauCeti.CoefficientField f)
def HeckeRing.GL2.Newform.orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : PowerSeries ↥(TauCeti.CoefficientField f)
The **`q`-expansion of the newform orbit** of `f` (LMFDB `cmf.q-expansion`): the `q`-expansion `∑ aₙ qⁿ` of `f`, with coefficients in its coefficient field `K = ℚ(f)` regarded as an abstract field, without its embedding into `ℂ`. The LMFDB defines it as the `q`-expansion of any newform in the orbit; it does not depend on that newform up to the isomorphism of coefficient fields (`IsGaloisConjugateBy.map_orbitQExpansion`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Embedding.leancomplete
theorem HeckeRing.GL2.Newform.map_orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : (PowerSeries.map ↑(TauCeti.CoefficientField f).val) f.orbitQExpansion = UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm
theorem HeckeRing.GL2.Newform.map_orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : (PowerSeries.map ↑(TauCeti.CoefficientField f).val) f.orbitQExpansion = UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm
**The orbit `q`-expansion recovers the `q`-expansion of `f`** through the embedding `ℚ(f) ⊆ ℂ`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/Embedding.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.map_orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} {σ : Gal(ℂ/ℚ)} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} (hfg : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) : (PowerSeries.map ↑hfg.coefficientFieldEquiv) f.orbitQExpansion = g.orbitQExpansion
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.map_orbitQExpansion {N : ℕ} [NeZero N] {k : ℤ} {σ : Gal(ℂ/ℚ)} {f : HeckeRing.GL2.Newform N k} {N' : ℕ} [NeZero N'] {k' : ℤ} {g : HeckeRing.GL2.Newform N' k'} (hfg : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) : (PowerSeries.map ↑hfg.coefficientFieldEquiv) f.orbitQExpansion = g.orbitQExpansion
**The orbit `q`-expansion is the same along the orbit**: if `g = σ(f)`, the isomorphism `ℚ(f) ≃ ℚ(g)` induced by `σ` maps the `q`-expansion of the orbit of `f` to that of the orbit of `g`.
q-expansion of a modular form (mathlib). (LMFDB)
This is qExpansion in mathlib. In the LMFDB definition, f is a modular form, and its period is assumed to be 1. Mathlib is more general: f may be any function from \mathcal{H}\to\mathbb{C} and the period h is an explicit parameter.
Depends on: Definition 4.1
Lean code for Definition4.62●1 definition
Associated Lean declarations
-
UpperHalfPlane.qExpansion[complete]
-
UpperHalfPlane.qExpansion[complete]
-
defdefined in Mathlib/NumberTheory/ModularForms/QExpansion.leancomplete
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
def UpperHalfPlane.qExpansion (h : ℝ) (f : UpperHalfPlane → ℂ) : PowerSeries ℂ
The `q`-expansion of a function on the upper half plane with strict period `h`, bundled as a `PowerSeries`. The `m`-th coefficient is the Taylor coefficient of the `cuspFunction` at `q = 0`, where `q = exp(2πiτ/h)` is the local parameter at the cusp.
-
TauCeti.CharacterField[complete] -
TauCeti.CoefficientField[complete]
Relative dimension. (LMFDB)
The relative dimension of a newform in a space of modular forms S_k^{\mathrm{new}}(\Gamma_0(N),\chi) is the dimension of its coefficient field as an extension of the character field \Q(\chi) (the number field generated by the values of \chi).
Depends on: Definition 4.51
Lean code for Definition4.63●2 definitions
Associated Lean declarations
-
TauCeti.CharacterField[complete]
-
TauCeti.CoefficientField[complete]
-
TauCeti.CharacterField[complete] -
TauCeti.CoefficientField[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fields.leancomplete
def TauCeti.CharacterField {N : ℕ} (χ : (ZMod N)ˣ →* ℂˣ) : IntermediateField ℚ ℂ
def TauCeti.CharacterField {N : ℕ} (χ : (ZMod N)ˣ →* ℂˣ) : IntermediateField ℚ ℂ
The subfield of `ℂ` generated over `ℚ` by the values of a nebentypus character.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Fields.leancomplete
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
def TauCeti.CoefficientField {N : ℕ} {k : ℤ} [NeZero N] (f : HeckeRing.GL2.Newform N k) : IntermediateField ℚ ℂ
The subfield of `ℂ` generated over `ℚ` by the positive-index Fourier coefficients of a newform.
-
HeckeRing.GL2.Newform.HasRM[complete] -
HeckeRing.GL2.Newform.HasRMBy[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasRM.exists_hasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.hasRMBy_iff[complete]
Real multiplication. (LMFDB)
A modular form is said to have real multiplication if it admits a self twist by the Kronecker character of a real quadratic field.
Only modular forms of weight one can have real multiplication.
Depends on: Definition 4.1 Definition 4.68
Lean code for Definition4.64●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.HasRM[complete]
-
HeckeRing.GL2.Newform.HasRMBy[complete]
-
Int.IsFundamentalDiscr.kroneckerChar[complete]
-
HeckeRing.GL2.Newform.HasRM.exists_hasSelfTwist[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugate.hasRMBy_iff[complete]
-
HeckeRing.GL2.Newform.HasRM[complete] -
HeckeRing.GL2.Newform.HasRMBy[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasRM.exists_hasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.hasRMBy_iff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasRM {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.HasRM {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
The newform `f` has **real multiplication** (LMFDB `cmf.rm_form`) if it admits a self twist by the Kronecker character of a real quadratic field, i.e. if it has real multiplication by some real quadratic field (`HasRMBy`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasRMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
def HeckeRing.GL2.Newform.HasRMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
The newform `f` has **real multiplication** by the real quadratic field `ℚ(√D)` of discriminant `D` (LMFDB `cmf.rm_form`) if it admits a self twist by the Kronecker character `(D/·)` of that field. The real quadratic fields are identified with their discriminants, the fundamental discriminants greater than `1`. Only newforms of weight one have real multiplication, which is not proved here.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
The **Kronecker character** `(D/·)` of the quadratic field `ℚ(√D)` of discriminant `D`, for a fundamental discriminant `D`: the primitive quadratic Dirichlet character modulo `|D|` with value the Legendre symbol `(D/q)` at an odd prime `q`, Tau Ceti's `fundamentalDiscriminantChar`, with complex values. It is the character of the quadratic field through which the LMFDB identifies self twists (`cmf.self_twist`). For `D = 1` it is the trivial character.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
theorem HeckeRing.GL2.Newform.HasRM.exists_hasSelfTwist {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hf : f.HasRM) : ∃ M χ, f.HasSelfTwist χ ∧ MulChar.IsQuadratic χ ∧ χ.Even ∧ χ ≠ 1
theorem HeckeRing.GL2.Newform.HasRM.exists_hasSelfTwist {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hf : f.HasRM) : ∃ M χ, f.HasSelfTwist χ ∧ MulChar.IsQuadratic χ ∧ χ.Even ∧ χ ≠ 1
**A newform with real multiplication has a self twist by an even nontrivial quadratic character.**
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.hasRMBy_iff {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k'} {D : ℤ} (hfg : f.IsGaloisConjugate g) : f.HasRMBy D ↔ g.HasRMBy D
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.hasRMBy_iff {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k'} {D : ℤ} (hfg : f.IsGaloisConjugate g) : f.HasRMBy D ↔ g.HasRMBy D
**Real multiplication by a given field is an invariant of the Galois orbit.**
Satake Angles. (LMFDB)
The Satake angles \theta_p = \arg \alpha_p \in [-\pi, \pi] are the arguments of a complex embedding of the Satake parameters \alpha_p.
Depends on: Definition 4.66
Lean code for Definition4.65●4 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
def HeckeRing.GL2.Newform.satakeAngles {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℝ
def HeckeRing.GL2.Newform.satakeAngles {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℝ
The **Satake angles** (LMFDB `cmf.satake_angles`) of a newform `f` at `p`: the arguments `θ_p = arg α_p` of its Satake parameters `normalizedSatakeParameters`, a multiset of two real numbers. The newform `f` is complex-valued, so it is one complex embedding of the LMFDB's newform. The LMFDB writes the range of the angles as `[-π, π]`; Mathlib's `Complex.arg` takes values in `(-π, π]`. When the Satake parameters lie on the unit circle, as they do at the good primes by the Ramanujan–Deligne bound, they are the `e^{i θ_p}` (`normalizedSatakeParameters_eq_map_exp_satakeAngles`). -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_exp_satakeAngles {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (h : ∀ α ∈ f.normalizedSatakeParameters p, ‖α‖ = 1) : f.normalizedSatakeParameters p = Multiset.map (fun θ => Complex.exp (↑θ * Complex.I)) (f.satakeAngles p)
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_exp_satakeAngles {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (h : ∀ α ∈ f.normalizedSatakeParameters p, ‖α‖ = 1) : f.normalizedSatakeParameters p = Multiset.map (fun θ => Complex.exp (↑θ * Complex.I)) (f.satakeAngles p)
**The Satake parameters on the unit circle are the `e^{i θ_p}`**: when they have absolute value `1`, as the Ramanujan–Deligne bound gives at the good primes, the Satake parameters are determined by the Satake angles. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.satakeAngles_eq_map_arg_satakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) : f.satakeAngles p = Multiset.map Complex.arg (f.satakeParameters p)
theorem HeckeRing.GL2.Newform.satakeAngles_eq_map_arg_satakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) : f.satakeAngles p = Multiset.map Complex.arg (f.satakeParameters p)
**The Satake angles are the arguments of Tau Ceti's Satake parameters**: dividing by the positive real number `p^{(k-1)/2}` does not change the arguments. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.satakeAngles_eq_pair_satakeAngle {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hpp : Nat.Prime p) (hχ : f.dirichletLift ↑p = 1) (hreal : (starRingEnd ℂ) ((PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)) = (PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)) (hR : ‖(PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)‖ ≤ 2 * ↑p ^ ((↑k - 1) / 2)) (hπ : f.satakeAngle hpp hreal hR ≠ Real.pi) : f.satakeAngles p = {f.satakeAngle hpp hreal hR, -f.satakeAngle hpp hreal hR}
theorem HeckeRing.GL2.Newform.satakeAngles_eq_pair_satakeAngle {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hpp : Nat.Prime p) (hχ : f.dirichletLift ↑p = 1) (hreal : (starRingEnd ℂ) ((PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)) = (PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)) (hR : ‖(PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm)‖ ≤ 2 * ↑p ^ ((↑k - 1) / 2)) (hπ : f.satakeAngle hpp hreal hR ≠ Real.pi) : f.satakeAngles p = {f.satakeAngle hpp hreal hR, -f.satakeAngle hpp hreal hR}
**The Satake angles at a prime with `χ(p) = 1`**: under the Ramanujan–Deligne bound `|a_p| ≤ 2 p^{(k-1)/2}`, they are `±θ_p` for Tau Ceti's Satake angle `θ_p`, the unique angle in `[0, π]` with `a_p = 2 p^{(k-1)/2} cos θ_p`, provided `θ_p ≠ π`. Tau Ceti's angle takes as an argument that `a_p` is real, which follows from `χ(p) = 1` (`conj_qExpansion_coeff_eq_self_of_dirichletLift_eq_one`).
-
HeckeRing.GL2.Newform.normalizedSatakeParameters[complete] -
HeckeRing.GL2.Newform.prod_map_one_sub_mul_normalizedSatakeParameters[complete] -
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_div[complete] -
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_pair_inv_mul[complete] -
HeckeRing.GL2.Newform.satakeParameters[complete]
Satake parameters. (LMFDB)
Let f be newform of level N, weight k and character \chi.
Let p be a good prime, i.e., p \nmid N.
The Satake parameters \alpha_p are the reciprocal roots of L_p\left(p^{-(k-1)/2} t \right), where
L_p\left( t \right) = 1 -a_p t + \chi(p) p^{k-1} t^2 = \det(1 - t \, T_p)
= (1 - \alpha_p p^{\frac{k-1}{2}}t )(1 - \alpha_p^{-1} \chi(p) p^{\frac{k-1}{2}} t),
T_p is Hecke operator, and a_p its trace.
Depends on: Definition 4.7 Definition 4.8 Definition 4.37 Definition 4.46 Definition 4.51 Definition 4.83
Lean code for Definition4.66●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.normalizedSatakeParameters[complete]
-
HeckeRing.GL2.Newform.prod_map_one_sub_mul_normalizedSatakeParameters[complete]
-
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_div[complete]
-
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_pair_inv_mul[complete]
-
HeckeRing.GL2.Newform.satakeParameters[complete]
-
HeckeRing.GL2.Newform.normalizedSatakeParameters[complete] -
HeckeRing.GL2.Newform.prod_map_one_sub_mul_normalizedSatakeParameters[complete] -
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_div[complete] -
HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_pair_inv_mul[complete] -
HeckeRing.GL2.Newform.satakeParameters[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
def HeckeRing.GL2.Newform.normalizedSatakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℂ
def HeckeRing.GL2.Newform.normalizedSatakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℂ
The **Satake parameters** (LMFDB `cmf.satake_parameters`) of a newform `f` at `p`, in the LMFDB's unitary normalisation: the reciprocal roots, counted with multiplicity, of `L_p(p^{-(k-1)/2} t) = 1 - a_p p^{-(k-1)/2} t + χ(p) t²`, i.e. the roots of `X² - a_p p^{-(k-1)/2} X + χ(p)`, where `a_p` is the `p`-th Fourier coefficient of `f` and the character `χ` is extended by zero to the integers not coprime to the level (`prod_map_one_sub_mul_normalizedSatakeParameters`). They are Tau Ceti's Satake parameters `satakeParameters`, which are taken in the arithmetic normalisation, divided by `p^{(k-1)/2}` (`normalizedSatakeParameters_eq_map_div`). The definition is stated for every natural number `p`, but the LMFDB defines the Satake parameters only at the good primes `p ∤ N`, where they are `α_p` and `α_p⁻¹ χ(p)` (`normalizedSatakeParameters_eq_pair_inv_mul`). -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.prod_map_one_sub_mul_normalizedSatakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) (x : ℂ) : (Multiset.map (fun α => 1 - α * x) (f.normalizedSatakeParameters p)).prod = 1 - (PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) * (x / ↑(↑p ^ ((↑k - 1) / 2))) + f.dirichletLift ↑p * ↑p ^ (k - 1) * (x / ↑(↑p ^ ((↑k - 1) / 2))) ^ 2
theorem HeckeRing.GL2.Newform.prod_map_one_sub_mul_normalizedSatakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) (x : ℂ) : (Multiset.map (fun α => 1 - α * x) (f.normalizedSatakeParameters p)).prod = 1 - (PowerSeries.coeff p) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) * (x / ↑(↑p ^ ((↑k - 1) / 2))) + f.dirichletLift ↑p * ↑p ^ (k - 1) * (x / ↑(↑p ^ ((↑k - 1) / 2))) ^ 2
**The Satake parameters are the reciprocal roots of `L_p(p^{-(k-1)/2} t)`**: `(1 - α_p t) (1 - β_p t) = L_p(p^{-(k-1)/2} t)`, where `L_p(t) = 1 - a_p t + χ(p) p^{k-1} t²`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_div {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) : f.normalizedSatakeParameters p = Multiset.map (fun α => α / ↑(↑p ^ ((↑k - 1) / 2))) (f.satakeParameters p)
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_map_div {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) (hp : p ≠ 0) : f.normalizedSatakeParameters p = Multiset.map (fun α => α / ↑(↑p ^ ((↑k - 1) / 2))) (f.satakeParameters p)
**The Satake parameters are Tau Ceti's divided by `p^{(k-1)/2}`**: the LMFDB's unitary normalisation of Tau Ceti's arithmetically normalised `satakeParameters`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/Satake.leancomplete
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_pair_inv_mul {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) {α : ℂ} (hpN : p.Coprime N) (hα : α ∈ f.normalizedSatakeParameters p) : f.normalizedSatakeParameters p = {α, α⁻¹ * f.dirichletLift ↑p}
theorem HeckeRing.GL2.Newform.normalizedSatakeParameters_eq_pair_inv_mul {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) {α : ℂ} (hpN : p.Coprime N) (hα : α ∈ f.normalizedSatakeParameters p) : f.normalizedSatakeParameters p = {α, α⁻¹ * f.dirichletLift ↑p}
**The Satake parameters at a good prime are `α_p` and `α_p⁻¹ χ(p)`**, for either of them `α_p`: the factorisation `L_p(t) = (1 - α_p p^{(k-1)/2} t) (1 - α_p⁻¹ χ(p) p^{(k-1)/2} t)`. -
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/Satake.leancomplete
def HeckeRing.GL2.Newform.satakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℂ
def HeckeRing.GL2.Newform.satakeParameters {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (p : ℕ) : Multiset ℂ
The **Satake parameters** of a newform `f` at a prime `p`: the roots, counted with multiplicity, of `X² - a_p X + χ(p) p^{k-1}`, where `a_p` is the `p`-th Fourier coefficient of `f` and the nebentypus `χ` is extended by zero to the integers not coprime to the level. This is a multiset of cardinality two (`card_satakeParameters`). The definition is stated for every natural number `p`, but carries arithmetic meaning only for primes.
Sato-Tate group of a modular form. (LMFDB)
The Sato-Tate group of a newform is a compact Lie group that one can attach to the Galois representation associated to the newform.
For newforms of weight k=1, the Sato-Tate group is simply the image of the corresponding 2-dimensional Artin representation, a finite subgroup of \SL_2(\C).
For newforms of weight k>1 the Sato-Tate group is a subgroup of \mathrm{U}(2) whose identity component is either \mathrm{SU(2)} (for newforms without CM) or \mathrm{U}(1) (for CM newforms) diagonally embedded in \mathrm{U}(2).
The Sato-Tate conjecture implies that as p\to\infty the limiting distribution of normalized Hecke eigenvalues a_p/p^{(k-1)/2} converges to the trace distribution induced by the Haar measure of the Sato-Tate group.
The Sato-Tate conjecture for classical modular forms has been proved .
Depends on: Definition 4.9 Definition 4.51 Definition 4.83
-
HeckeRing.GL2.Newform.HasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsTwistAtAlmostAllPrimes[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasCMBy[complete] -
HeckeRing.GL2.Newform.HasRMBy[complete]
Self-twist. (LMFDB)
A newform f admits a self-twist by a primitive
Dirichlet character \chi if the equality
a_p(f) = \chi(p)a_p(f)
holds for all but finitely many primes p.
For non-trivial \chi this can hold only when \chi has order 2 and a_p=0 for all primes p not dividing the level of f for which \chi(p)=-1.
The character \chi is then the Kronecker character of a quadratic field K and may be identified by the discriminant D of K.
If D is negative, the modular form f is said to have complex multiplication (CM) by K, and if D is positive, f is said to have real multiplication (RM) by K. The latter can occur only when f is a modular form of weight 1 whose projective image is dihedral.
It is possible for a modular form to have multiple non-trivial self twists; this occurs precisely when f is a modular form of weight one whose projective image is isomorphic to D_2:=C_2\times C_2; in this case f admits three non-trivial self twists, two of which are CM and one of which is RM.
Depends on: Definition 1.45 Definition 1.53 Definition 1.54 Definition 4.46 Definition 4.51 Definition 4.60 Definition 4.83 Definition 2.15
Lean code for Definition4.68●5 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform.HasSelfTwist[complete]
-
HeckeRing.GL2.Newform.IsTwistAtAlmostAllPrimes[complete]
-
Int.IsFundamentalDiscr.kroneckerChar[complete]
-
HeckeRing.GL2.Newform.HasCMBy[complete]
-
HeckeRing.GL2.Newform.HasRMBy[complete]
-
HeckeRing.GL2.Newform.HasSelfTwist[complete] -
HeckeRing.GL2.Newform.IsTwistAtAlmostAllPrimes[complete] -
Int.IsFundamentalDiscr.kroneckerChar[complete] -
HeckeRing.GL2.Newform.HasCMBy[complete] -
HeckeRing.GL2.Newform.HasRMBy[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasSelfTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
def HeckeRing.GL2.Newform.HasSelfTwist {N M : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (χ : DirichletCharacter ℂ M) : Prop
The newform `f` **admits a self twist** by the primitive Dirichlet character `χ` (LMFDB `cmf.self_twist`) if `a_p(f) = χ(p) a_p(f)` for all but finitely many primes `p`, i.e. if `a_p(f) = 0` at almost all primes `p` with `χ(p) ≠ 1` (`hasSelfTwist_iff`). Dirichlet characters have positive modulus in the LMFDB, and the modulus `M = 0`, for which Mathlib's `DirichletCharacter.IsPrimitive` always holds, is excluded.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Basic.leancomplete
def HeckeRing.GL2.Newform.IsTwistAtAlmostAllPrimes {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsTwistAtAlmostAllPrimes {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
The newform `g` is **a twist of `f` by `ψ` at almost all primes** if `a_p(g) = ψ(p) a_p(f)` for all but finitely many primes `p`. This is the condition through which the LMFDB defines self twists and inner twists (`cmf.self_twist`, `cmf.inner_twist`). For a primitive `ψ` of positive modulus it holds exactly when `g` is the twist `f ⊗ ψ` (`IsTwistBy`), by strong multiplicity one, but only the direction `IsTwistBy.isTwistAtAlmostAllPrimes` is proved here.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
def Int.IsFundamentalDiscr.kroneckerChar {D : ℤ} (hD : D.IsFundamentalDiscr) : DirichletCharacter ℂ D.natAbs
The **Kronecker character** `(D/·)` of the quadratic field `ℚ(√D)` of discriminant `D`, for a fundamental discriminant `D`: the primitive quadratic Dirichlet character modulo `|D|` with value the Legendre symbol `(D/q)` at an odd prime `q`, Tau Ceti's `fundamentalDiscriminantChar`, with complex values. It is the character of the quadratic field through which the LMFDB identifies self twists (`cmf.self_twist`). For `D = 1` it is the trivial character.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasCMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
def HeckeRing.GL2.Newform.HasCMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
The newform `f` has **complex multiplication** by the imaginary quadratic field `ℚ(√D)` of discriminant `D` (LMFDB `cmf.cm_form`) if it admits a self twist by the Kronecker character `(D/·)` of that field. The imaginary quadratic fields are identified with their discriminants, the negative fundamental discriminants.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/SelfTwist.leancomplete
def HeckeRing.GL2.Newform.HasRMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
def HeckeRing.GL2.Newform.HasRMBy {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) (D : ℤ) : Prop
The newform `f` has **real multiplication** by the real quadratic field `ℚ(√D)` of discriminant `D` (LMFDB `cmf.rm_form`) if it admits a self twist by the Kronecker character `(D/·)` of that field. The real quadratic fields are identified with their discriminants, the fundamental discriminants greater than `1`. Only newforms of weight one have real multiplication, which is not proved here.
-
CuspForm.conj[complete] -
HeckeRing.GL2.Newform.IsSelfDual[complete]
Self dual modular form. (LMFDB)
A cuspidal modular form f is said to be self dual if the coefficients a_n that appear in its q-expansion are real numbers; equivalently, the L-function of the modular form is self dual.
The coefficient field of a newform is either a totally real number field or a CM field, depending on whether the newform is self dual or not.
Depends on: Definition 4.10 Definition 4.13 Definition 4.51 Definition 4.61 Definition 1.122 Definition 2.8 Definition 2.67
Lean code for Definition4.69●2 definitions
Associated Lean declarations
-
CuspForm.conj[complete]
-
HeckeRing.GL2.Newform.IsSelfDual[complete]
-
CuspForm.conj[complete] -
HeckeRing.GL2.Newform.IsSelfDual[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/Conjugate.leancomplete
def CuspForm.conj {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} {k : ℤ} (hJ : 𝒢' ≤ ConjAct.toConjAct UpperHalfPlane.J⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
def CuspForm.conj {𝒢 𝒢' : Subgroup (GL (Fin 2) ℝ)} {k : ℤ} (hJ : 𝒢' ≤ ConjAct.toConjAct UpperHalfPlane.J⁻¹ • 𝒢) (f : CuspForm 𝒢 k) : CuspForm 𝒢' k
**The conjugate cusp form** `f_ρ(τ) = conj (f (-conj τ))`, the cusp-form counterpart of `ModularForm.conj`.
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/SelfDual.leancomplete
def HeckeRing.GL2.Newform.IsSelfDual {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.IsSelfDual {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
A newform is **self-dual** when it equals its conjugate newform `f_ρ`, the newform with the complex-conjugate Fourier coefficients and the inverse nebentypus. Equivalently, all of its Fourier coefficients are real (`isSelfDual_iff_forall_im_coeff_eq_zero`).
Shimura correspondence. (LMFDB)
Let k be an odd integer, and let N a positive integer divisible by 4. Let \chi be a character modulo N. Let t be a square-free integer. The Shimura correspondence is the linear map Sh_t:S_{k/2}(N, \chi)\to S_{k-1}(N/2, \chi^2) defined by the equation
L(s, Sh_t(g)) = L(\chi_t, s+1-\lambda) \cdot \sum_{n\geq1} a_{tn^2} n^{-s},
where
-
\lambda=(k-1)/2. -
\chi_tis the character given by\chi_t(m) = \chi(m) \left(\frac{-1}{m}\right) \left(\frac{t}{m}\right). -
g(z) = \sum_{n\geq1} a_n q^nis theq-expansion ofg.
This map is Hecke linear. If k\geq5, it takes cusp forms to cusp forms.
Depends on: Definition 1.45
Spaces of modular forms. (LMFDB)
The space of modular forms of level N, weight k, and character \chi is denoted M_k(N,\chi).
The space M_k(N,\chi) is a finite-dimensional complex vector space which further decmoposes into subspaces. In particular, we have a subspace of cusp forms S_k(N,\chi) \subseteq M_k(N,\chi).
Depends on: Definition 4.1 Definition 4.8 Definition 4.13 Definition 4.46 Definition 4.72 Definition 4.83
Lean code for Definition4.71●2 definitions
Associated Lean declarations
-
cuspFormCharSpace[complete]
-
modFormCharSpace[complete]
-
cuspFormCharSpace[complete] -
modFormCharSpace[complete]
-
defdefined in TauCeti/NumberTheory/ModularForms/DiamondOperators.leancomplete
def cuspFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def cuspFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The nebentypus character space `S_k(Γ₁(N), χ)`: cusp forms on which every diamond operator `⟨d⟩` acts by the scalar `χ(d)`.
-
defdefined in TauCeti/NumberTheory/ModularForms/DiamondOperators.leancomplete
def modFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
def modFormCharSpace {N : ℕ} (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : Submodule ℂ (ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k)
The modular-form nebentypus character space `M_k(Γ₁(N), χ)`.
Spaces of modular forms (mathlib). (LMFDB)
This is ModularForm \Gamma k in mathlib. The LMFDB definition is specified by a level N, weight k, and character \chi, whereas the mathlib definition is specified by a subgroup \Gamma and weight k, with no character.
For \Gamma=\Gamma_0(N), the mathlib space corresponds to M_k(N,1), the space of modular forms with trivial character.
For \Gamma=\Gamma_1(N), recall the decomposition M_k(\Gamma_1(N))=\bigoplus_{\chi\bmod N} M_k(N,\chi) where only characters satisfying \chi(-1)=(-1)^k can contribute to nonzero summands. Hence the mathlib space for M_k(\Gamma_1(N)) is the direct sum of the corresponding character spaces from the LMFDB.
Lean code for Definition4.72●1 definition
Associated Lean declarations
-
ModularForm[complete]
-
ModularForm[complete]
-
structuredefined in Mathlib/NumberTheory/ModularForms/Basic.leancomplete
structure ModularForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
structure ModularForm (Γ : Subgroup (GL (Fin 2) ℝ)) (k : ℤ) : Type
These are `SlashInvariantForm`'s that are holomorphic and bounded at infinity.
Extends
-
SlashInvariantForm Γ k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Γ, SlashAction.map k γ self.toFun = self.toFun
Inherited from-
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
bdd_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c Γ → c.IsBoundedAt self.toFun k
-
-
HeckeRing.GL2.Newform[complete] -
HeckeRing.GL2.Newform.basis[complete]
Trace form. (LMFDB)
The trace form of a newspace S_k(N,\chi) is the modular form obtained by summing its canonical basis of newforms.
Depends on: Definition 4.51 Definition 4.53
Lean code for Definition4.73●2 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform[complete]
-
HeckeRing.GL2.Newform.basis[complete]
-
HeckeRing.GL2.Newform[complete] -
HeckeRing.GL2.Newform.basis[complete]
-
structuredefined in TauCeti/NumberTheory/ModularForms/Newforms/Newform.leancomplete
structure HeckeRing.GL2.Newform (N : ℕ) [NeZero N] (k : ℤ) : Type
structure HeckeRing.GL2.Newform (N : ℕ) [NeZero N] (k : ℤ) : Type
**A newform**: a good Hecke eigenform lying in the new subspace and normalised by `a₁ = 1` (Miyake's *primitive form*). That a newform is an eigenform for every `T_n` is a theorem, not part of the definition.
Extends
-
HeckeRing.GL2.EigenformAwayFromLevel N k
Fields
toFun : UpperHalfPlane → ℂ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm -
SlashInvariantForm
slash_action_eq' : ∀ γ ∈ Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N), SlashAction.map k γ self.toFun = self.toFun
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm -
SlashInvariantForm
holo' : MDiff ⇑self.toSlashInvariantForm
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm
zero_at_cusps' : ∀ {c : OnePoint ℝ}, IsCusp c (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) → c.IsZeroAt self.toFun k
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel -
CuspForm
χ : (ZMod N)ˣ →* ℂˣ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
mem_charSpace : self.toCuspForm ∈ cuspFormCharSpace k self.χ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
eigenvalue : (n : ℕ+) → (↑n).Coprime N → ℂ
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
isEigen : ∀ (n : ℕ+) (hn : (↑n).Coprime N), ((HeckeRing.GL2.heckeRingHomCuspCharSpace k self.χ) (HeckeRing.GL2.heckeTCompositeGamma0 N ↑n)) ⟨self.toCuspForm, ⋯⟩ = self.eigenvalue n hn • ⟨self.toCuspForm, ⋯⟩
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
ne_zero : self.toCuspForm ≠ 0
Inherited from-
HeckeRing.GL2.EigenformAwayFromLevel
isNew : self.toCuspForm ∈ TauCeti.cuspFormsNew N k
The form lies in the new subspace `S_k(Γ₁(N))ⁿᵉʷ`.
isNorm : (PowerSeries.coeff 1) (UpperHalfPlane.qExpansion 1 ⇑self.toCuspForm) = 1
The form is normalised: its first Fourier coefficient is `1`.
-
-
defdefined in TauCeti/NumberTheory/ModularForms/Newforms/OrthogonalBasis.leancomplete
def HeckeRing.GL2.Newform.basis (N : ℕ) [NeZero N] (k : ℤ) : Module.Basis (HeckeRing.GL2.Newform N k) ℂ ↥(TauCeti.cuspFormsNew N k)
def HeckeRing.GL2.Newform.basis (N : ℕ) [NeZero N] (k : ℤ) : Module.Basis (HeckeRing.GL2.Newform N k) ℂ ↥(TauCeti.cuspFormsNew N k)
**The newforms, as a basis of the new subspace** `S_k(Γ₁(N))ⁿᵉʷ` (Miyake, Theorem 4.6.13(2); Diamond–Shurman, Theorem 5.8.2). It is Petersson-orthogonal: `Newform.peterssonInnerCosets_eq_zero_of_ne`.
Stark unit of a newform of weight one. (LMFDB)
Stark's conjecture applied to the associated Galois representation of a newform f(z)=\sum a_n q^n of weight one states the following. Let E=\mathbb{Q}((a_n)_{n \in \mathbb{N}}), \Delta=\text{Gal}(E/\mathbb{Q}) and f^\alpha(z)=\sum \alpha(a_n) q^n for \alpha \in \Delta. Let L(s, f) be the L-function of f. Then, for all b \in E^* there exists an integer m \geq 1 and a unit \varepsilon in the Artin field of f, called the Stark unit, such that
e^{m \sum_{\alpha \in \Delta} \alpha(b)L'(0, f^\alpha)} = \varepsilon
In the case where the coefficients of \text{Tr}(bf) are in \mathbb{Z}, Chinburg further conjectured that there exists a Stark unit for m=1 . Notice that if we choose b = 1, the preceding condition always holds. Here, we compute the Stark unit of the newform for b=1 and m=1.
Depends on: Definition 4.4 Definition 4.36 Definition 4.51 Definition 4.83
-
ModularForm.sturmBound[complete] -
ModularForm.eq_of_sturmBound[complete] -
ModularForm.eq_zero_of_sturmBound_lt_order[complete] -
HeckeRing.GL2.Newform.eq_of_sturmBound[complete]
Sturm bound. (LMFDB)
The Sturm bound is an upper bound on the least index where the coefficients of the Fourier expansions of distinct modular forms in the same space M_k(N,\chi) must differ.
More precisely, for any space M_k(N,\chi) of modular forms of weight k, level N, and character \chi, the Sturm bound is the integer
B(M_k(N,\chi)) := \left\lfloor \frac{km}{12}\right\rfloor,
where
m:=[\SL_2(\Z):\Gamma_0(N)]=N\prod_{p|N}\left(1+\frac{1}{p}\right).
If f=\sum_{n\ge 0}a_n q^n and g=\sum_{n\ge 0}b_n q^n are elements of M_k(N,\chi) with a_n=b_n for all n\le B(M_k(N,\chi)) then f=g; see Corollary 9.20 in stein-modforms.pdf for k>1 and Lemma 5 in for k=1.
The Sturm bound applies, in particular, to newforms of the same level, weight, and character. Better bounds for newforms are known in certain cases (see Corollary 9.19 and Theorem 9.21 in stein-modforms.pdf, for example), but for consistency we always take the Sturm bound to be the integer B(M_k(N,\chi)) defined above.
Note that the Sturm bound for S_k^{\mathrm{new}}(N,\chi) does not apply (in general) to the space
S_k^{\mathrm{new}}(N,[\chi]):= \bigoplus_{\chi'\in [\chi]}S_k^{\rm new}(N,\chi')
associated to the Galois orbit [\chi]; rather, it applies to each direct summand S_k^{\rm new}(N,\chi').
Depends on: Definition 4.8 Definition 4.31 Definition 4.46 Definition 4.51 Definition 4.83
Lean code for Definition4.75●4 declarations
Associated Lean declarations
-
ModularForm.sturmBound[complete]
-
ModularForm.eq_of_sturmBound[complete]
-
ModularForm.eq_zero_of_sturmBound_lt_order[complete]
-
HeckeRing.GL2.Newform.eq_of_sturmBound[complete]
-
ModularForm.sturmBound[complete] -
ModularForm.eq_of_sturmBound[complete] -
ModularForm.eq_zero_of_sturmBound_lt_order[complete] -
HeckeRing.GL2.Newform.eq_of_sturmBound[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/SturmBound.leancomplete
def ModularForm.sturmBound (N : ℕ) (k : ℤ) : ℕ
def ModularForm.sturmBound (N : ℕ) (k : ℤ) : ℕ
The **Sturm bound** (LMFDB `cmf.sturm_bound`) of the spaces `M_k(N, χ)` of modular forms of level `N` and weight `k`: the integer `⌊k m / 12⌋`, where `m = [SL₂(ℤ) : Γ₀(N)]`. It does not depend on the character `χ`, and two forms of `M_k(N, χ)` whose `q`-expansions agree up to it are equal (`ModularForm.eq_of_sturmBound`). The LMFDB also writes `m = N ∏_{p ∣ N} (1 + 1/p)`; that closed form is not used here. The weight of an LMFDB space is positive; for `k ≤ 0` the definition gives `0`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/SturmBound.leancomplete
theorem ModularForm.eq_of_sturmBound {N : ℕ} {k : ℤ} [NeZero N] {χ : (ZMod N)ˣ →* ℂˣ} {f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hf : f ∈ modFormCharSpace k χ) (hg : g ∈ modFormCharSpace k χ) (h : ∀ n ≤ ModularForm.sturmBound N k, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f) = (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑g)) : f = g
theorem ModularForm.eq_of_sturmBound {N : ℕ} {k : ℤ} [NeZero N] {χ : (ZMod N)ˣ →* ℂˣ} {f g : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hf : f ∈ modFormCharSpace k χ) (hg : g ∈ modFormCharSpace k χ) (h : ∀ n ≤ ModularForm.sturmBound N k, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f) = (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑g)) : f = g
**Modular forms in `M_k(N, χ)` agreeing up to the Sturm bound are equal**: two forms of level `N`, weight `k` and character `χ` whose `q`-expansions agree in every coefficient of index at most `ModularForm.sturmBound N k` are equal.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/SturmBound.leancomplete
theorem ModularForm.eq_zero_of_sturmBound_lt_order {N : ℕ} {k : ℤ} [NeZero N] {χ : (ZMod N)ˣ →* ℂˣ} {f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hf : f ∈ modFormCharSpace k χ) (hord : ↑(ModularForm.sturmBound N k) < (UpperHalfPlane.qExpansion 1 ⇑f).order) : f = 0
theorem ModularForm.eq_zero_of_sturmBound_lt_order {N : ℕ} {k : ℤ} [NeZero N] {χ : (ZMod N)ˣ →* ℂˣ} {f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k} (hf : f ∈ modFormCharSpace k χ) (hord : ↑(ModularForm.sturmBound N k) < (UpperHalfPlane.qExpansion 1 ⇑f).order) : f = 0
**Sturm's theorem for `M_k(N, χ)`**: a modular form of level `N`, weight `k` and character `χ` whose `q`-expansion at `∞` has order greater than the Sturm bound is zero.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Analytic/SturmBound.leancomplete
theorem HeckeRing.GL2.Newform.eq_of_sturmBound {N : ℕ} [NeZero N] {k : ℤ} {f g : HeckeRing.GL2.Newform N k} (hχ : f.χ = g.χ) (h : ∀ n ≤ ModularForm.sturmBound N k, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) = (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm)) : f = g
theorem HeckeRing.GL2.Newform.eq_of_sturmBound {N : ℕ} [NeZero N] {k : ℤ} {f g : HeckeRing.GL2.Newform N k} (hχ : f.χ = g.χ) (h : ∀ n ≤ ModularForm.sturmBound N k, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.toCuspForm) = (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑g.toCuspForm)) : f = g
**Newforms agreeing up to the Sturm bound are equal**: two newforms of level `N`, weight `k` and the same character whose `q`-expansions agree in every coefficient of index at most `ModularForm.sturmBound N k` are equal.
Sturm bound for Gamma1(N). (LMFDB)
The Sturm bound is an upper bound on the least index where the coefficients of the Fourier expansions of distinct modular forms in the same space must differ.
More precisely, for any space M_k(\Gamma_1(N)) of modular forms of weight k and level N, the Sturm bound is the integer
B(M_k(\Gamma_1(N))) := \left\lfloor \frac{km}{12}\right\rfloor,
where
m:=[\SL_2(\Z):\Gamma_1(N)]=N^2\prod_{p|N}\left(1-\frac{1}{p^2}\right).
If f=\sum_{n\ge 0}a_n q^n and g=\sum_{n\ge 0}b_n q^n are elements of M_k(\Gamma_1(N)) with a_n=b_n for all n\le B(M_k(\Gamma_1(N))) then f=g; see Corollary 9.19 in stein-modforms.pdf for k>1.
The Sturm bound applies, in particular, to newforms of the same level and weight. Better bounds for newforms are known in certain cases (see Corollary 9.19 and Theorem 9.21 in stein-modforms.pdf, for example), but for consistency we always take the Sturm bound to be the integer B(M_k(\Gamma_1(N))) defined above.
Depends on: Definition 4.31 Definition 4.46 Definition 4.51 Definition 4.83
Lean code for Definition4.76●2 theorems
Associated Lean declarations
-
theoremdefined in TauCeti/NumberTheory/ModularForms/SturmBound.leancomplete
theorem TauCeti.ModularForm.sturm_bound_finiteIndex_SL2Z {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} [Γ.FiniteIndex] {k : ℤ} (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) (h : ↑((k * ↑Γ.index).toNat / 12) < (UpperHalfPlane.qExpansion (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ).strictWidthInfty ⇑f).order) : f = 0
theorem TauCeti.ModularForm.sturm_bound_finiteIndex_SL2Z {Γ : Subgroup (Matrix.SpecialLinearGroup (Fin 2) ℤ)} [Γ.FiniteIndex] {k : ℤ} (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ) k) (h : ↑((k * ↑Γ.index).toNat / 12) < (UpperHalfPlane.qExpansion (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) Γ).strictWidthInfty ⇑f).order) : f = 0
**Classical Sturm bound for finite-index subgroups of `SL(2, ℤ)`.**
-
theoremdefined in TauCeti/NumberTheory/ModularForms/SturmBound.leancomplete
theorem TauCeti.ModularForm.eq_of_sturm_bound {𝒢 : Subgroup (GL (Fin 2) ℝ)} [𝒢.IsFiniteRelIndex (Matrix.SpecialLinearGroup.mapGL ℝ).range] {k : ℤ} (f : ModularForm 𝒢 k) [DiscreteTopology ↥𝒢.strictPeriods] (g : ModularForm 𝒢 k) (h : ∀ i ≤ (k * ↑(Nat.card (↥(Matrix.SpecialLinearGroup.mapGL ℝ).range ⧸ 𝒢.subgroupOf (Matrix.SpecialLinearGroup.mapGL ℝ).range))).toNat / 12, (PowerSeries.coeff i) (UpperHalfPlane.qExpansion 𝒢.strictWidthInfty ⇑f) = (PowerSeries.coeff i) (UpperHalfPlane.qExpansion 𝒢.strictWidthInfty ⇑g)) : f = g
theorem TauCeti.ModularForm.eq_of_sturm_bound {𝒢 : Subgroup (GL (Fin 2) ℝ)} [𝒢.IsFiniteRelIndex (Matrix.SpecialLinearGroup.mapGL ℝ).range] {k : ℤ} (f : ModularForm 𝒢 k) [DiscreteTopology ↥𝒢.strictPeriods] (g : ModularForm 𝒢 k) (h : ∀ i ≤ (k * ↑(Nat.card (↥(Matrix.SpecialLinearGroup.mapGL ℝ).range ⧸ 𝒢.subgroupOf (Matrix.SpecialLinearGroup.mapGL ℝ).range))).toNat / 12, (PowerSeries.coeff i) (UpperHalfPlane.qExpansion 𝒢.strictWidthInfty ⇑f) = (PowerSeries.coeff i) (UpperHalfPlane.qExpansion 𝒢.strictWidthInfty ⇑g)) : f = g
**Modular forms agreeing up to the Sturm bound are equal**: two weight-`k` forms whose `q`-expansions at `∞` agree in every coefficient up to `k · [𝒮ℒ : 𝒢 ⊓ 𝒮ℒ] / 12` coincide.
Subspaces of modular forms. (LMFDB)
The space M_k(N,\chi) of modular forms of level N, weight k, and character \chi can be decomposed as
M_k(N,\chi) = E_k(N,\chi) \oplus S_k(N,\chi)
where E_k(N,\chi) is the Eisenstein subspace (the span of Eisenstein series) and S_k(N,\chi) the subspace of cusp forms.
These spaces further decompose into old and new subspaces as follows. If M is a proper divisor of N and \chi_M is a Dirichlet character of modulus M that induces \chi, then for every divisor d \mid (N/M), there is a map from M_k(M,\chi_M) \to M_k(N,\chi) via f(z) \mapsto f(dz). The span of the images of all of these maps is the old subspace M_k^{\rm old}(N,\chi) \subseteq M_k(N,\chi).
The cuspidal subspace decomposes as
S_k(N,\chi) = S_k^{\rm new}(N,\chi) \oplus S_k^{\rm old}(N,\chi)
where the new subspace S_k^{\rm new}(N,\chi) is the orthogonal complement of S_k^{\rm old}(N,\chi) with respect to the Petersson inner product.
The Eisenstein subspace similarly decomposes as
E_k(N,\chi) = E_k^{\rm new}(N,\chi) \oplus E_k^{\rm old}(N,\chi)
where E_k^{\rm new}(N,\chi) is the span of those Eisenstein series attached to a pair (\chi_1,\chi_2) of (primitive) characters of conductor N.
Depends on: Definition 1.45 Definition 1.46 Definition 1.50 Definition 1.52 Definition 4.1 Definition 4.8 Definition 4.13 Definition 4.15 Definition 4.46 Definition 4.56 Definition 4.71 Definition 4.83
Trace bound. (LMFDB)
The trace bound for a space of newforms S_k^{new}(N, \chi) is the least positive integer m such that taking traces down to \Q of the coefficients a_n for n \le m suffices to distinguish all the
Galois orbits of
newforms in the space; here a_n denotes the nth coefficient of the q-expansion \sum a_n q^n of a newform.
If the newforms in the space all have distinct dimensions then the trace bound is 1, because the trace of a_1=1 from the coefficient field of the newform down to \Q is equal to the dimension of its Galois orbit.
Depends on: Definition 4.10 Definition 4.18 Definition 4.35 Definition 4.51 Definition 4.53 Definition 4.61
Trace form. (LMFDB)
For a newform f \in S_k^{\rm new}(\Gamma_1(N)), its trace form \mathrm{Tr}(f) is the sum of its distinct conjugates under \mathrm{Aut}(\C) (equivalently, the sum under all embeddings of the coefficient field into \C). The trace form is a modular form \mathrm{Tr}(f) \in S_k^{\rm new}(\Gamma_1(N)) whose q-expansion has integral coefficients a_n(\mathrm{Tr}(f)) \in \Z.
The coefficient a_1 is equal to the dimension of the newform.
For p prime, the coefficient a_p is the trace of Frobenius in the direct sum of the \ell-adic Galois representations attached to the conjugates of f (for any prime \ell). When f has weight k=2, the coefficient a_p(f) is the trace of Frobenius acting on the modular abelian variety associated to f.
For a newspace S_k^{\rm new}(N,\chi), its trace form is the sum of the trace forms \mathrm{Tr}(f) over all newforms f\in S_k^{\rm new}(N,k); it is also a modular form in S_k^{\rm new}(\Gamma_1(N)).
The graphical plot displayed in the properties box on the home page of each newform or newspace is computed using the trace form.
Depends on: Definition 4.10 Definition 4.18 Definition 4.51 Definition 4.53
Lean code for Definition4.79●5 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/TraceForm.leancomplete
def HeckeRing.GL2.Newform.traceForm {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
def HeckeRing.GL2.Newform.traceForm {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
The **trace form** `Tr(f)` of a newform `f` (LMFDB `cmf.trace_form`): the sum of the distinct Galois conjugates of `f`, i.e. of the newforms in its Galois orbit. The LMFDB equivalently sums the embeddings `ι(f)` over all embeddings `ι` of the coefficient field, which is the same sum as soon as every Galois conjugate of `f` is a newform (`qExpansion_coeff_traceForm_eq_trace`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/TraceForm.leancomplete
def HeckeRing.GL2.Newform.newspaceTraceForm (N : ℕ) [NeZero N] (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
def HeckeRing.GL2.Newform.newspaceTraceForm (N : ℕ) [NeZero N] (k : ℤ) (χ : (ZMod N)ˣ →* ℂˣ) : CuspForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ℝ) (CongruenceSubgroup.Gamma1 N)) k
The **trace form of the space of newforms** `S_k^{new}(N, χ)` (LMFDB `cmf.trace_form`): the sum of the trace forms of its newform orbits, i.e. of the newforms Galois conjugate to a newform of nebentypus `χ`. -
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/TraceForm.leancomplete
theorem HeckeRing.GL2.Newform.qExpansion_coeff_one_traceForm {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : (PowerSeries.coeff 1) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = ↑f.dimension
theorem HeckeRing.GL2.Newform.qExpansion_coeff_one_traceForm {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : (PowerSeries.coeff 1) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = ↑f.dimension
**The first coefficient of the trace form is the dimension of the newform**: each Galois conjugate is normalised.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/TraceForm.leancomplete
theorem HeckeRing.GL2.Newform.qExpansion_coeff_traceForm_eq_trace {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) (n : ℕ) : (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = (algebraMap ℚ ℂ) ((Algebra.trace ℚ ↥(TauCeti.CoefficientField f)) ((PowerSeries.coeff n) f.orbitQExpansion))
theorem HeckeRing.GL2.Newform.qExpansion_coeff_traceForm_eq_trace {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) (n : ℕ) : (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = (algebraMap ℚ ℂ) ((Algebra.trace ℚ ↥(TauCeti.CoefficientField f)) ((PowerSeries.coeff n) f.orbitQExpansion))
**The coefficients of the trace form are traces**: in weight at least two, if every Galois conjugate of `f` is a newform (a theorem not proved here), then `aₙ(Tr(f))` is the trace from `ℚ(f)` to `ℚ` of `aₙ(f)`, the trace form being the sum of the embeddings of `f`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Newform/TraceForm.leancomplete
theorem HeckeRing.GL2.Newform.exists_int_qExpansion_coeff_traceForm {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) (n : ℕ) : ∃ m, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = ↑m
theorem HeckeRing.GL2.Newform.exists_int_qExpansion_coeff_traceForm {N : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} (hk : 2 ≤ k) (hf : ∀ (σ : Gal(ℂ/ℚ)), ∃ g, HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f g) (n : ℕ) : ∃ m, (PowerSeries.coeff n) (UpperHalfPlane.qExpansion 1 ⇑f.traceForm) = ↑m
**The trace form has integer coefficients**, in weight at least two, if every Galois conjugate of `f` is a newform (a theorem not proved here): the coefficients of a newform are algebraic integers, so their traces are integers.
-
HeckeRing.GL2.Newform.IsTwistBy[complete] -
HeckeRing.GL2.Newform.IsTwistEquivalent[complete] -
HeckeRing.GL2.Newform.twistClass[complete] -
HeckeRing.GL2.Newform.IsOrbitTwistBy[complete] -
HeckeRing.GL2.NewformOrbit.twistClass[complete]
Twist. (LMFDB)
Associated to each newform f and primitive Dirichlet character \psi, there is a unique newform g:=f\otimes\psi, the twist of f by \psi, that satisfies
a_n(g)=\psi(n)a_n(f)
for all integers n\ge 1 coprime to N and the conductor of \psi. The newforms f and g are then twist equivalent. When g is a Galois conjugate of f, it is said to be an inner twist.
The newform orbit [g] is a twist of the newform orbit [f] by the character orbit [\psi] if some g\in [g] is a twist of f by some \psi in [\psi]. This may occur with multiplicity.
Twist equivalence is an equivalence relation. The twist class of a newform or newform orbit is its equivalence class under this relation.
In the LMFDB each twist class is identified by the label of its minimal twist.
Depends on: Definition 1.45 Definition 1.46 Definition 1.47 Definition 1.54 Definition 4.34 Definition 4.35 Definition 4.41 Definition 4.51
Lean code for Definition4.80●5 definitions
Associated Lean declarations
-
HeckeRing.GL2.Newform.IsTwistBy[complete]
-
HeckeRing.GL2.Newform.IsTwistEquivalent[complete]
-
HeckeRing.GL2.Newform.twistClass[complete]
-
HeckeRing.GL2.Newform.IsOrbitTwistBy[complete]
-
HeckeRing.GL2.NewformOrbit.twistClass[complete]
-
HeckeRing.GL2.Newform.IsTwistBy[complete] -
HeckeRing.GL2.Newform.IsTwistEquivalent[complete] -
HeckeRing.GL2.Newform.twistClass[complete] -
HeckeRing.GL2.Newform.IsOrbitTwistBy[complete] -
HeckeRing.GL2.NewformOrbit.twistClass[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Basic.leancomplete
def HeckeRing.GL2.Newform.IsTwistBy {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsTwistBy {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
The newform `g` is **the twist** `f ⊗ ψ` of the newform `f` of level `N` by the primitive Dirichlet character `ψ` of modulus `M` (LMFDB `cmf.twist`) if `aₙ(g) = ψ(n) aₙ(f)` for all `n` coprime to `N` and to the conductor `M` of `ψ`. Both are cusp forms, so it is the same to ask it for `n ≥ 1` as the LMFDB does. Dirichlet characters have positive modulus in the LMFDB, and the modulus `M = 0`, for which Mathlib's `DirichletCharacter.IsPrimitive` always holds, is excluded. The twist exists (`exists_isTwistBy`); that it is unique is strong multiplicity one across levels, which is not proved here.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Basic.leancomplete
def HeckeRing.GL2.Newform.IsTwistEquivalent {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsTwistEquivalent {N N' : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (g : HeckeRing.GL2.Newform N' k') : Prop
The newforms `f` and `g` are **twist equivalent** (LMFDB `cmf.twist`) if `g` is a twist of `f` by a Dirichlet character `ψ` of positive modulus, in the sense that `a_p(g) = ψ(p) a_p(f)` for all but finitely many primes `p`. The character can be taken primitive (`isTwistEquivalent_iff_exists_isPrimitive`), and then by strong multiplicity one this holds exactly when `g` is the twist `f ⊗ ψ` (`IsTwistBy`), which is the LMFDB definition; only the direction `IsTwistBy.isTwistEquivalent` is proved here.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Basic.leancomplete
def HeckeRing.GL2.Newform.twistClass {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set ((L : ℕ+) × HeckeRing.GL2.Newform (↑L) k)
def HeckeRing.GL2.Newform.twistClass {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set ((L : ℕ+) × HeckeRing.GL2.Newform (↑L) k)
The **twist class** of a newform `f` of weight `k` (LMFDB `cmf.twist`): the set of newforms of weight `k`, of all levels, that are twist equivalent to `f`. Twist equivalent newforms have the same weight, a theorem that is not proved here, so this is the LMFDB twist class.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
def HeckeRing.GL2.Newform.IsOrbitTwistBy {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
def HeckeRing.GL2.Newform.IsOrbitTwistBy {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : Prop
The newform orbit `[g]` is a **twist** of the newform orbit `[f]` by the Galois orbit `[ψ]` of the primitive Dirichlet character `ψ` (LMFDB `cmf.twist`) if some newform in the Galois orbit of `g` is the twist `f ⊗ ψ'` of `f` by a character `ψ'` in the Galois orbit of `ψ`. This is stated for the representative `f` of `[f]`; it does not depend on it if the Galois conjugates of `g` are newforms, by `isOrbitTwistBy_iff_twistMultiplicity_pos` and `IsGaloisConjugateBy.twistMultiplicity_eq`.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
def HeckeRing.GL2.NewformOrbit.twistClass {N : ℕ} [NeZero N] {k : ℤ} (x : HeckeRing.GL2.NewformOrbit N k) : Set ((L : ℕ+) × HeckeRing.GL2.NewformOrbit (↑L) k)
def HeckeRing.GL2.NewformOrbit.twistClass {N : ℕ} [NeZero N] {k : ℤ} (x : HeckeRing.GL2.NewformOrbit N k) : Set ((L : ℕ+) × HeckeRing.GL2.NewformOrbit (↑L) k)
The **twist class** of a newform orbit `x` of weight `k` (LMFDB `cmf.twist`): the newform orbits of weight `k`, of all levels, containing a newform that is twist equivalent to a newform of `x`, i.e. the class of `x` under twist equivalence. If the Galois conjugates of newforms are newforms, which is not proved here, twist equivalence is compatible with Galois conjugacy, and this is the set of the newform orbits of the newforms in the twist class of any newform of `x`.
-
HeckeRing.GL2.Newform.IsTwistMinimal[complete] -
HeckeRing.GL2.Newform.exists_isTwistMinimal[complete] -
HeckeRing.GL2.Newform.IsTwistMinimal.eq_of_isTwistEquivalent[complete] -
HeckeRing.GL2.Newform.twistClass[complete]
Twist minimal. (LMFDB)
A newform f is twist minimal if its level achieves the minimum within its twist class.
A twist minimal newform f need not have minimal character, but if this is not the case there will be a twist of f that is both twist minimal and has minimal character.
In the LMFDB, the designated representative of each twist class is the twist minimal newform g of minimal character whose label is lexicographically minimal among all such newforms. This newform g is called the minimal twist of the newforms in its twist equivalence class and is identified by a checkmark (checkmark) in tables of twists.
These conventions also apply to newform orbits.
Depends on: Definition 1.51 Definition 4.8 Definition 4.35 Definition 4.44 Definition 4.46 Definition 4.51 Definition 4.80
Lean code for Definition4.81●4 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.IsTwistMinimal[complete]
-
HeckeRing.GL2.Newform.exists_isTwistMinimal[complete]
-
HeckeRing.GL2.Newform.IsTwistMinimal.eq_of_isTwistEquivalent[complete]
-
HeckeRing.GL2.Newform.twistClass[complete]
-
HeckeRing.GL2.Newform.IsTwistMinimal[complete] -
HeckeRing.GL2.Newform.exists_isTwistMinimal[complete] -
HeckeRing.GL2.Newform.IsTwistMinimal.eq_of_isTwistEquivalent[complete] -
HeckeRing.GL2.Newform.twistClass[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Minimal.leancomplete
def HeckeRing.GL2.Newform.IsTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
def HeckeRing.GL2.Newform.IsTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Prop
A newform `f` of level `N` is **twist minimal** (LMFDB `cmf.twist_minimal`) if `N` is the least level of the newforms in its twist class.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Minimal.leancomplete
theorem HeckeRing.GL2.Newform.exists_isTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ∃ x ∈ f.twistClass, x.snd.IsTwistMinimal
theorem HeckeRing.GL2.Newform.exists_isTwistMinimal {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : ∃ x ∈ f.twistClass, x.snd.IsTwistMinimal
**Every twist class contains a twist minimal newform**: one of least level.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Minimal.leancomplete
theorem HeckeRing.GL2.Newform.IsTwistMinimal.eq_of_isTwistEquivalent {N N' : ℕ} [NeZero N] [NeZero N'] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k} (hf : f.IsTwistMinimal) (hg : g.IsTwistMinimal) (hfg : f.IsTwistEquivalent g) : N = N'
theorem HeckeRing.GL2.Newform.IsTwistMinimal.eq_of_isTwistEquivalent {N N' : ℕ} [NeZero N] [NeZero N'] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {g : HeckeRing.GL2.Newform N' k} (hf : f.IsTwistMinimal) (hg : g.IsTwistMinimal) (hfg : f.IsTwistEquivalent g) : N = N'
**Twist minimal newforms in a twist class have the same level.**
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Basic.leancomplete
def HeckeRing.GL2.Newform.twistClass {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set ((L : ℕ+) × HeckeRing.GL2.Newform (↑L) k)
def HeckeRing.GL2.Newform.twistClass {N : ℕ} [NeZero N] {k : ℤ} (f : HeckeRing.GL2.Newform N k) : Set ((L : ℕ+) × HeckeRing.GL2.Newform (↑L) k)
The **twist class** of a newform `f` of weight `k` (LMFDB `cmf.twist`): the set of newforms of weight `k`, of all levels, that are twist equivalent to `f`. Twist equivalent newforms have the same weight, a theorem that is not proved here, so this is the LMFDB twist class.
-
HeckeRing.GL2.Newform.twistMultiplicity[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.twistMultiplicity_eq[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.twistMultiplicity_eq[complete] -
HeckeRing.GL2.Newform.twistMultiplicity_self_le_innerTwistMultiplicity[complete] -
MulChar.galoisOrbit[complete]
Twist multiplicity. (LMFDB)
The multiplicity of a newform orbit [g] as a twist of a newform orbit [f] by a primitive character orbit [\psi] is the number of distinct \psi\in[\psi] for which f\otimes\psi\in[g]. This number is the same for every f\in [f] and depends only on the Galois orbits [g], [f], and [\psi].
When g is an inner twist of f, this multiplicity is equal to the inner twist count of f.
Depends on: Definition 1.47 Definition 1.54 Definition 4.35 Definition 4.41 Definition 4.42 Definition 4.80
Lean code for Definition4.82●5 declarations
Associated Lean declarations
-
HeckeRing.GL2.Newform.twistMultiplicity[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugateBy.twistMultiplicity_eq[complete]
-
HeckeRing.GL2.Newform.IsGaloisConjugate.twistMultiplicity_eq[complete]
-
HeckeRing.GL2.Newform.twistMultiplicity_self_le_innerTwistMultiplicity[complete]
-
MulChar.galoisOrbit[complete]
-
HeckeRing.GL2.Newform.twistMultiplicity[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugateBy.twistMultiplicity_eq[complete] -
HeckeRing.GL2.Newform.IsGaloisConjugate.twistMultiplicity_eq[complete] -
HeckeRing.GL2.Newform.twistMultiplicity_self_le_innerTwistMultiplicity[complete] -
MulChar.galoisOrbit[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
def HeckeRing.GL2.Newform.twistMultiplicity {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : ℕ
def HeckeRing.GL2.Newform.twistMultiplicity {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} (f : HeckeRing.GL2.Newform N k) (ψ : DirichletCharacter ℂ M) (g : HeckeRing.GL2.Newform N' k') : ℕ
The **multiplicity** of the newform orbit `[g]` as a twist of the newform orbit `[f]` by the Galois orbit `[ψ]` of the primitive Dirichlet character `ψ` (LMFDB `cmf.twist_multiplicity`): the number of characters `ψ' ∈ [ψ]` for which the twist `f ⊗ ψ'` lies in the Galois orbit of `g`. This is stated for the representative `f` of `[f]`; the LMFDB states that it does not depend on it, which is proved here if the Galois conjugates of `g` are newforms (`IsGaloisConjugateBy.twistMultiplicity_eq`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.twistMultiplicity_eq {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f f₁ : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} {g : HeckeRing.GL2.Newform N' k'} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ h, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ g h) : f₁.twistMultiplicity ψ g = f.twistMultiplicity ψ g
theorem HeckeRing.GL2.Newform.IsGaloisConjugateBy.twistMultiplicity_eq {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f f₁ : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} {g : HeckeRing.GL2.Newform N' k'} {σ : Gal(ℂ/ℚ)} (hσ : HeckeRing.GL2.Newform.IsGaloisConjugateBy σ f f₁) (hnew : ∀ (τ : Gal(ℂ/ℚ)), ∃ h, HeckeRing.GL2.Newform.IsGaloisConjugateBy τ g h) : f₁.twistMultiplicity ψ g = f.twistMultiplicity ψ g
**The multiplicity does not depend on the representative of `[f]`**: it is the same for the Galois conjugates of `f`, provided the Galois conjugates of `g` are newforms (a theorem that is not proved here). The twists of `σ(f)` in `[g]` are the `σ(f ⊗ ψ') = σ(f) ⊗ σ(ψ')`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.twistMultiplicity_eq {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} {g g₁ : HeckeRing.GL2.Newform N' k'} (hg : g.IsGaloisConjugate g₁) : f.twistMultiplicity ψ g = f.twistMultiplicity ψ g₁
theorem HeckeRing.GL2.Newform.IsGaloisConjugate.twistMultiplicity_eq {N N' M : ℕ} [NeZero N] [NeZero N'] {k k' : ℤ} {f : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} {g g₁ : HeckeRing.GL2.Newform N' k'} (hg : g.IsGaloisConjugate g₁) : f.twistMultiplicity ψ g = f.twistMultiplicity ψ g₁
**The multiplicity only depends on the Galois orbit of `g`.**
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/ModularForms/Twist/Multiplicity.leancomplete
theorem HeckeRing.GL2.Newform.twistMultiplicity_self_le_innerTwistMultiplicity {N M : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} : f.twistMultiplicity ψ f ≤ f.innerTwistMultiplicity ψ
theorem HeckeRing.GL2.Newform.twistMultiplicity_self_le_innerTwistMultiplicity {N M : ℕ} [NeZero N] {k : ℤ} {f : HeckeRing.GL2.Newform N k} {ψ : DirichletCharacter ℂ M} : f.twistMultiplicity ψ f ≤ f.innerTwistMultiplicity ψ
**The multiplicity of `[f]` as a twist of itself is at most the inner twist multiplicity** of `f` for `[ψ]`: the characters `ψ' ∈ [ψ]` with `f ⊗ ψ' ∈ [f]` are among those by which `f` admits an inner twist. The LMFDB states that the multiplicity of an inner twist is the inner twist count, which is not right: it is the inner twist multiplicity, the converse inequality being strong multiplicity one across levels, which is not proved here.
-
defdefined in TauCeti/NumberTheory/MulChar/GaloisOrbit.leancomplete
def MulChar.galoisOrbit.{u_1, u_2} {M : Type u_1} [CommMonoid M] {R : Type u_2} [CommMonoidWithZero R] (χ : MulChar M R) : Set (MulChar M R)
def MulChar.galoisOrbit.{u_1, u_2} {M : Type u_1} [CommMonoid M] {R : Type u_2} [CommMonoidWithZero R] (χ : MulChar M R) : Set (MulChar M R)
The Galois orbit of a multiplicative character `χ`: the characters generating the same cyclic subgroup of characters as `χ`. When `χ` has finite order these are the powers `χ ^ a` with `a` prime to its order (`MulChar.mem_galoisOrbit_iff_exists_pow`). When moreover the monoid has finitely many units and the values lie in a field of characteristic zero, they are the conjugates `σ ∘ χ` under the embeddings `σ` of the field generated by the values of `χ` (`MulChar.mem_galoisOrbit_iff_exists_algHom`).
Weight of an elliptic modular form. (LMFDB)
The weight of an elliptic modular form f is the integer or half-integer power of (cz+d) that occurs in the modular transformation property of f under the action of \gamma = \left( \begin{array}{ll} a & b \\ c & d \end{array}\right) on the upper half plane. That is, the weight is the number k
in the transformation law
f\left( \frac{a z + b}{c z + d} \right) = \chi(d)(c z + d)^k f(z) .
Depends on: Definition 4.1