7. Automorphic forms and the Langlands Conjectures
7.1. Definition of an automorphic form for GLn over Q
The global Langlands reciprocity conjectures relate automorphic forms to Galois
representations. The statements for a general connected reductive group involve
the construction of the Langlands dual group, and we do not have quite enough
Lie algebra theory to push this definition through in general. However if we
restrict the special case of the group \GL_n/\Q, the dual group is just
\GL_n(\bbC) and several other technical obstructions are also removed. In
this section we will explain the definition of an automorphic form for the
group \GL_n/\Q, following the exposition by Borel and Jacquet in Corvallis
(volume, 1979).
7.2. The Finite Adeles Of The Rationals
Mathlib already has the definition of the finite adeles \A_{\Q}^f of the
rationals as a commutative \Q-algebra, and the proof that it's a
topological ring.
7.3. The Group GLn Of The Adeles
The adeles \A_{\Q} of \Q are the product \A_{\Q}^f \times \R, with the
product topology. They are a topological ring. Hence
\GL_n(\A_{\Q}) = \GL_n(\A_{\Q}^f) \times \GL_n(\R) is a topological group,
where we are being a bit liberal with our use of the equality symbol.
7.4. Smooth Functions
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
- No associated Lean code or declarations.
A function f : \GL_n(\A_{\Q}^f) \times \GL_n(\R) \to \bbC is smooth if it has
the following three properties:
-
fis continuous. -
For all
x \in \GL_n(\A_{\Q}^f), the functiony \mapsto f(x,y)is smooth. -
For all
y \in \GL_n(\R), the functionx \mapsto f(x,y)is locally constant.
Current state of this definition: I've half-formalised it; I don't know how to say the the function is smooth on the infinite part, because I have never used the manifold library before and I have no idea what my model with corners is supposed to be.
7.5. Slowly-Increasing Functions
Automorphic representations satisfy a growth condition which we may as well factor out into a separate definition.
We define the following temporary "size" function s : \GL_n(\R) \to \R
by s(M) = \operatorname{trace}(MM^T + M^{-1}M^{-T}), where M^{-T}
denotes inverse-transpose. Note that s(M) is always positive, and is large
if M has a very large or very small, in absolute value, eigenvalue.
- Definition 7.1
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
-
AutomorphicForm.GLn.IsSlowlyIncreasing[complete]
We say that a function f : \GL_n(\R) \to \bbC is slowly-increasing if there
is some real constant C and positive integer n such that
|f(M)| \leq C s(M)^n for all M \in \GL_n(\R).
Lean code for Definition7.2●1 definition
Associated Lean declarations
-
AutomorphicForm.GLn.IsSlowlyIncreasing[complete]
-
AutomorphicForm.GLn.IsSlowlyIncreasing[complete]
-
structuredefined in FLT/GlobalLanglandsConjectures/GLnDefs.leancomplete
structure AutomorphicForm.GLn.IsSlowlyIncreasing
AutomorphicForm.GLn.IsSlowlyIncreasing {n : ℕ} (f : GL (Fin n) ℝ → ℂ) : PropA function `f : GL_n(ℝ) → ℂ` is slowly increasing if there exist `C, N` such that `‖f M‖ ≤ C · s(M)^N` for all `M`, where `s` is an auxiliary "size" function.{nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (fGL (Fin n) ℝ → ℂ: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) : PropThe universe of propositions. `Prop ≡ Sort 0`. Every proposition is propositionally equal to either `True` or `False`.structure AutomorphicForm.GLn.IsSlowlyIncreasing
AutomorphicForm.GLn.IsSlowlyIncreasing {n : ℕ} (f : GL (Fin n) ℝ → ℂ) : PropA function `f : GL_n(ℝ) → ℂ` is slowly increasing if there exist `C, N` such that `‖f M‖ ≤ C · s(M)^N` for all `M`, where `s` is an auxiliary "size" function.{nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.} (fGL (Fin n) ℝ → ℂ: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.) : PropThe universe of propositions. `Prop ≡ Sort 0`. Every proposition is propositionally equal to either `True` or `False`.A function `f : GL_n(ℝ) → ℂ` is slowly increasing if there exist `C, N` such that `‖f M‖ ≤ C · s(M)^N` for all `M`, where `s` is an auxiliary "size" function.
Fields
bounded_by
∃ C N, ∀ (M : GL (Fin n) ℝ), ‖f M‖ ≤ C * AutomorphicForm.GLn.s ↑M ^ N: ∃ CℝNℕ, ∀ (MGL (Fin n) ℝ: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.), ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.fGL (Fin n) ℝ → ℂMGL (Fin n) ℝ‖Norm.norm.{u_8} {E : Type u_8} [self : Norm E] : E → ℝthe `ℝ`-valued norm function.≤LE.le.{u} {α : Type u} [self : LE α] : α → α → PropThe less-equal relation: `x ≤ y` Conventions for notations in identifiers: * The recommended spelling of `≤` in identifiers is `le`.Cℝ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.AutomorphicForm.GLn.sAutomorphicForm.GLn.s {n : ℕ} (M : Matrix (Fin n) (Fin n) ℝ) : ℝAn auxiliary "size" function on invertible real matrices used in the slowly increasing condition; namely `tr(MMᵀ) + tr(M⁻¹(M⁻¹)ᵀ)`.↑MGL (Fin n) ℝ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `^` in identifiers is `pow`.Nℕ
Note: the book says n is positive, but \{M|s(M)\leq 1\} is compact so I
don't think it makes any difference.
7.6. Weights At Infinity
- Definition 7.1
- Definition 7.2
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
-
AutomorphicForm.GLn.Weight[complete]
The weight of an automorphic form for \GL_n/\Q can be thought of as a
finite-dimensional continuous complex representation \rho of a maximal
compact subgroup of \GL_n(\R), and it's convenient to choose one (they're
all conjugate) so we choose O_n(\R).
Lean code for Definition7.3●1 definition
Associated Lean declarations
-
AutomorphicForm.GLn.Weight[complete]
-
AutomorphicForm.GLn.Weight[complete]
-
structuredefined in FLT/GlobalLanglandsConjectures/GLnDefs.leancomplete
structure AutomorphicForm.GLn.Weight
AutomorphicForm.GLn.Weight (n : ℕ) : TypeA weight for `GLₙ`: a preweight whose associated `O(n)`-representation is simple.(nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.structure AutomorphicForm.GLn.Weight
AutomorphicForm.GLn.Weight (n : ℕ) : TypeA weight for `GLₙ`: a preweight whose associated `O(n)`-representation is simple.(nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) : TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.A weight for `GLₙ`: a preweight whose associated `O(n)`-representation is simple.
Fields
w
AutomorphicForm.GLn.preweight nThe underlying preweight, i.e. continuous representation of `O(n)`.: AutomorphicForm.GLn.preweightAutomorphicForm.GLn.preweight (n : ℕ) : TypeA preweight for `GLₙ` is a continuous representation of the real orthogonal group `O(n)` on a finite-dimensional complex vector space.nℕThe underlying preweight, i.e. continuous representation of `O(n)`.
isSimple
CategoryTheory.Simple (AutomorphicForm.GLn.preweight.fdRep n self.w): CategoryTheory.SimpleCategoryTheory.Simple.{v, u} {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X : C) : PropAn object is simple if monomorphisms into it are (exclusively) either isomorphisms or zero.(AutomorphicForm.GLn.preweight.fdRepAutomorphicForm.GLn.preweight.fdRep (n : ℕ) (w : AutomorphicForm.GLn.preweight n) : FDRep ℂ ↥(Matrix.orthogonalGroup (Fin n) ℝ)The finite-dimensional `ℂ`-representation of `O(n)` associated to a preweight `w`.nℕselfAutomorphicForm.GLn.Weight n.wAutomorphicForm.GLn.Weight.w {n : ℕ} (self : AutomorphicForm.GLn.Weight n) : AutomorphicForm.GLn.preweight nThe underlying preweight, i.e. continuous representation of `O(n)`.)
The Lean definition is incomplete right now -- I don't demand irreducibility (I wasn't sure whether I was doing this the right way; if I used category theory then I might have struggled to say that the representation was continuous).
7.7. The Action Of The Universal Enveloping Algebra
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
- No associated Lean code or declarations.
There is a natural action of the real Lie algebra of \GL_n(\R) on the
complex vector space of smooth complex-valued functions on \GL_n(\R).
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
- No associated Lean code or declarations.
This extends to a natural complex Lie algebra action of the complexification of
the real Lie algebra on the smooth complex-valued functions on \GL_n(\R).
This depends on Definition 7.4.
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
- No associated Lean code or declarations.
By functoriality, we get an action of the universal enveloping algebra of this complexified Lie algebra on the smooth complex-valued functions. This depends on Definition 7.5.
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.8
- Lemma 7.9
- Lemma 7.10
- No associated Lean code or declarations.
Thus the centre Z_n of this universal enveloping algebra also acts on the
smooth complex-valued functions. This depends on
Definition 7.6.
The centre we just defined is a commutative ring which contains a copy of
\bbC. Note that Harish-Chandra, or possibly this was known earlier, showed
that it is a polynomial ring in n variables over the complexes. We shall not
need this.
7.8. Automorphic Forms
From here on there is no more Lean right now, only LaTeX.
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Lemma 7.9
- Lemma 7.10
A smooth function f : \GL_n(\A_{\Q}^f) \times \GL_n(\R) \to \bbC is an
O_n(\R)-automorphic form on \GL_n(\A_{\Q}) if it satisfies the following
five conditions. This depends on Definition 7.1,
Definition 7.2,
Definition 7.3, and Definition 7.7.
-
Periodicity: for all
g \in \GL_n(\Q), we havef(gx,gy) = f(x,y). -
It has a finite level: there exists a compact open subgroup
U \subseteq \GL_n(\A_{\Q}^f)such thatf(xu,y) = f(x,y)for allu \in U,x \in \GL_n(\A_{\Q}^f), andy \in \GL_n(\R). -
It has weight
\rho: there exists a continuous finite-dimensional irreducible complex representation\rhoofO_n(\R)such that for every(x,y) \in \GL_n(\A_{\Q}), the complex vector space spanned by the functionsk \mapsto f(x,yk)is finite-dimensional and isomorphic, as anO_n(\R)-representation, to a direct sum\rho^{\oplus m}of copies of\rhofor somem. -
It has an infinite level: there is an ideal
I \subseteq Z_nof the centreZ_ndescribed in the previous section, with finite complex codimension, andIannihilates the functiony \mapsto f(x,y)for allx \in \GL_n(\A_{\Q}^f). This is a very fancy way of saying that the function satisfies some natural differential equations. In the case of modular forms, these are the Cauchy-Riemann equations, which is why modular forms are holomorphic. -
It satisfies the growth condition: for every
x \in \GL_n(\A_{\Q}^f), the functiony \mapsto f(x,y)on\GL_n(\R)is slowly-increasing.
Lean code for Definition7.8●1 definition
Associated Lean declarations
-
structuredefined in FLT/GlobalLanglandsConjectures/GLnDefs.leancomplete
structure AutomorphicForm.GLn.AutomorphicFormForGLnOverQ
AutomorphicForm.GLn.AutomorphicFormForGLnOverQ (n : ℕ) (ρ : AutomorphicForm.GLn.Weight n) : TypeAutomorphic forms for GL_n/Q with weight ρ.(nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) (ρAutomorphicForm.GLn.Weight n: AutomorphicForm.GLn.WeightAutomorphicForm.GLn.Weight (n : ℕ) : TypeA weight for `GLₙ`: a preweight whose associated `O(n)`-representation is simple.nℕ) : TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.structure AutomorphicForm.GLn.AutomorphicFormForGLnOverQ
AutomorphicForm.GLn.AutomorphicFormForGLnOverQ (n : ℕ) (ρ : AutomorphicForm.GLn.Weight n) : TypeAutomorphic forms for GL_n/Q with weight ρ.(nℕ: ℕNat : TypeThe natural numbers, starting at zero. This type is special-cased by both the kernel and the compiler, and overridden with an efficient implementation. Both use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)); at runtime, `Nat` values that are sufficiently small are unboxed.) (ρAutomorphicForm.GLn.Weight n: AutomorphicForm.GLn.WeightAutomorphicForm.GLn.Weight (n : ℕ) : TypeA weight for `GLₙ`: a preweight whose associated `O(n)`-representation is simple.nℕ) : TypeA type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`.Automorphic forms for GL_n/Q with weight ρ.
Fields
toFun
GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is the ring of finite adeles of `K`, defined as the restricted product of the completions `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R` and the restricted product is the subring of `∏_v K_v` consisting of elements which are in `R_v` for all but finitely many `v`.ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.) ×Prod.{u, v} (α : Type u) (β : Type v) : Type (max u v)The product type, usually written `α × β`. Product types are also called pair or tuple types. Elements of this type are pairs in which the first element is an `α` and the second element is a `β`. Products nest to the right, so `(x, y, z) : α × β × γ` is equivalent to `(x, (y, z)) : α × (β × γ)`. Conventions for notations in identifiers: * The recommended spelling of `×` in identifiers is `Prod`.GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.→ ℂComplex : TypeComplex numbers consist of two `Real`s: a real part `re` and an imaginary part `im`.The underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.
is_smooth
AutomorphicForm.GLn.IsSmooth self.toFun: AutomorphicForm.GLn.IsSmoothAutomorphicForm.GLn.IsSmooth {n : ℕ} (f : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂ) : PropA function on `GL_n(𝔸_f) × GL_n(ℝ)` is smooth if it is continuous, locally constant in the finite-adelic variable, and `C^∞` in the archimedean variable.selfAutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ.toFunAutomorphicForm.GLn.AutomorphicFormForGLnOverQ.toFun {n : ℕ} {ρ : AutomorphicForm.GLn.Weight n} (self : AutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ) : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.is_periodic
∀ (g : GL (Fin n) ℚ) (x : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ)) (y : GL (Fin n) ℝ), self.toFun (((algebraMap ℚ (IsDedekindDomain.FiniteAdeleRing ℤ ℚ)).GL (Fin n)) g * x, ((algebraMap ℚ ℝ).GL (Fin n)) g * y) = self.toFun (x, y): ∀ (gGL (Fin n) ℚ: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.) (xGL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ): GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is the ring of finite adeles of `K`, defined as the restricted product of the completions `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R` and the restricted product is the subring of `∏_v K_v` consisting of elements which are in `R_v` for all but finitely many `v`.ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.)) (yGL (Fin n) ℝ: GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.), selfAutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ.toFunAutomorphicForm.GLn.AutomorphicFormForGLnOverQ.toFun {n : ℕ} {ρ : AutomorphicForm.GLn.Weight n} (self : AutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ) : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.(Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.((algebraMapAlgebra.algebraMap.{u, v} (R : Type u) (A : Type v) {inst✝ : CommSemiring R} {inst✝¹ : Semiring A} [self : Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.(IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is the ring of finite adeles of `K`, defined as the restricted product of the completions `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R` and the restricted product is the subring of `∏_v K_v` consisting of elements which are in `R_v` for all but finitely many `v`.ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.)).GLRingHom.GL.{u_1, u_2, u_3} {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] (φ : A →+* B) (m : Type u_3) [Fintype m] [DecidableEq m] : GL m A →* GL m BFunctoriality of `GLₘ`: a ring homomorphism `A →+* B` induces a group homomorphism `GLₘ(A) →* GLₘ(B)` by applying it entrywise.(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ)) gGL (Fin n) ℚ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.xGL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ),Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.((algebraMapAlgebra.algebraMap.{u, v} (R : Type u) (A : Type v) {inst✝ : CommSemiring R} {inst✝¹ : Semiring A} [self : Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.ℝReal : TypeThe type `ℝ` of real numbers constructed as equivalence classes of Cauchy sequences of rational numbers.).GLRingHom.GL.{u_1, u_2, u_3} {A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] (φ : A →+* B) (m : Type u_3) [Fintype m] [DecidableEq m] : GL m A →* GL m BFunctoriality of `GLₘ`: a ring homomorphism `A →+* B` induces a group homomorphism `GLₘ(A) →* GLₘ(B)` by applying it entrywise.(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ)) gGL (Fin n) ℚ*HMul.hMul.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HMul α β γ] : α → β → γ`a * b` computes the product of `a` and `b`. The meaning of this notation is type-dependent. Conventions for notations in identifiers: * The recommended spelling of `*` in identifiers is `mul`.yGL (Fin n) ℝ)Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.=Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`. We use `a = b` as notation for `Eq a b`. A fundamental property of equality is that it is an equivalence relation. ``` variable (α : Type) (a b c d : α) variable (hab : a = b) (hcb : c = b) (hcd : c = d) example : a = d := Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd ``` Equality is much more than an equivalence relation, however. It has the important property that every assertion respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value. That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`. Example: ``` example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := Eq.subst h1 h2 example (α : Type) (a b : α) (p : α → Prop) (h1 : a = b) (h2 : p a) : p b := h1 ▸ h2 ``` The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`. For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality) Conventions for notations in identifiers: * The recommended spelling of `=` in identifiers is `eq`.selfAutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ.toFunAutomorphicForm.GLn.AutomorphicFormForGLnOverQ.toFun {n : ℕ} {ρ : AutomorphicForm.GLn.Weight n} (self : AutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ) : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.(Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.xGL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ),Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.yGL (Fin n) ℝ)Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.is_slowly_increasing
∀ (x : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ)), AutomorphicForm.GLn.IsSlowlyIncreasing fun y ↦ self.toFun (x, y): ∀ (xGL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ): GLMatrix.GeneralLinearGroup.{u, v} (n : Type u) (R : Type v) [DecidableEq n] [Fintype n] [Semiring R] : Type (max v u)`GL n R` is the group of `n` by `n` `R`-matrices with unit determinant. Defined as a subtype of matrices(FinFin (n : ℕ) : TypeNatural numbers less than some upper bound. In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the canonical type with `n` elements.nℕ) (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is the ring of finite adeles of `K`, defined as the restricted product of the completions `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R` and the restricted product is the subring of `∏_v K_v` consisting of elements which are in `R_v` for all but finitely many `v`.ℤInt : TypeThe integers. This type is special-cased by the compiler and overridden with an efficient implementation. The runtime has a special representation for `Int` that stores “small” signed numbers directly, while larger numbers use a fast arbitrary-precision arithmetic library (usually [GMP](https://gmplib.org/)). A “small number” is an integer that can be encoded with one fewer bits than the platform's pointer size (i.e. 63 bits on 64-bit architectures and 31 bits on 32-bit architectures).ℚRat : TypeRational numbers, implemented as a pair of integers `num / den` such that the denominator is positive and the numerator and denominator are coprime.)), AutomorphicForm.GLn.IsSlowlyIncreasingAutomorphicForm.GLn.IsSlowlyIncreasing {n : ℕ} (f : GL (Fin n) ℝ → ℂ) : PropA function `f : GL_n(ℝ) → ℂ` is slowly increasing if there exist `C, N` such that `‖f M‖ ≤ C · s(M)^N` for all `M`, where `s` is an auxiliary "size" function.fun yGL (Fin n) ℝ↦ selfAutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ.toFunAutomorphicForm.GLn.AutomorphicFormForGLnOverQ.toFun {n : ℕ} {ρ : AutomorphicForm.GLn.Weight n} (self : AutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ) : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.(Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.xGL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ),Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.yGL (Fin n) ℝ)Prod.mk.{u, v} {α : Type u} {β : Type v} (fst : α) (snd : β) : α × βConstructs a pair. This is usually written `(x, y)` instead of `Prod.mk x y`. Conventions for notations in identifiers: * The recommended spelling of `(a, b)` in identifiers is `mk`.has_finite_level
∃ U, AutomorphicForm.GLn.IsConstantOn U self.toFun: ∃ USubgroup (GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ)), AutomorphicForm.GLn.IsConstantOnAutomorphicForm.GLn.IsConstantOn {n : ℕ} (U : Subgroup (GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ))) (f : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂ) : PropThe function `f : GL_n(𝔸_f) × GL_n(ℝ) → ℂ` is right-`U`-invariant in the finite-adelic variable, where `U` is an open compact subgroup.USubgroup (GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ))selfAutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ.toFunAutomorphicForm.GLn.AutomorphicFormForGLnOverQ.toFun {n : ℕ} {ρ : AutomorphicForm.GLn.Weight n} (self : AutomorphicForm.GLn.AutomorphicFormForGLnOverQ n ρ) : GL (Fin n) (IsDedekindDomain.FiniteAdeleRing ℤ ℚ) × GL (Fin n) ℝ → ℂThe underlying function `GL_n(𝔸_f) × GL_n(ℝ) → ℂ`.
Automorphic forms of a fixed weight \rho form a complex vector space, and if
we also fix the finite level U and the infinite level I then we get a
subspace which is finite-dimensional; this is a theorem of Harish-Chandra.
There is also the concept of a cusp form, meaning an automorphic form for which
furthermore some adelic integrals vanish.
7.9. Hecke Operators
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.10
- No associated Lean code or declarations.
The group \GL_n(\A_{\Q}^f) acts on the space of automorphic forms for
\GL_n(\A_{\Q}) by the formula (g \cdot f)(x,y) = f(xg,y).
This is obvious. Note that the conjugate of a compact open subgroup is still compact and open.
A formal development of the theory of Hecke operators looks like the following.
Let U be a fixed compact open subgroup of \GL_n(\A_{\Q}^f), and let us
also fix a weight \rho. Let M_\rho(n) denote the complex vector space of
automorphic forms for \GL_n/\Q of weight \rho. The level U forms
M_\rho(n,U) are just the U-invariants of this space. If
g \in \GL_n(\A_{\Q}^f), then the double coset space UgU can be written as
a finite disjoint union of single cosets g_iU: the double coset space is
certainly a disjoint union of left cosets, but the double coset space is
compact and the left cosets are open.
Define the Hecke operator T_g : M_\rho(n,U) \to M_\rho(n,U) by
T_g(f) = \sum g_i \cdot f.
- Definition 7.1
- Definition 7.2
- Definition 7.3
- Definition 7.4
- Definition 7.5
- Definition 7.6
- Definition 7.7
- Definition 7.8
- Lemma 7.9
- No associated Lean code or declarations.
This function is well-defined, i.e. it sends a U-invariant form to a
U-invariant form which is independent of the choice of g_i.
Easy group theory.