Fermat's Last Theorem Blueprint

13. Miniproject: Hecke Operators🔗

13.1. Status🔗

This is an active miniproject. The abstract theory is completely formalized; at the time of writing the concrete theory has no sorried definitions but it does have some sorried proofs.

13.2. Goal🔗

The goal of this project is to get sorry-free definitions of Hecke operators acting on spaces of automorphic forms. These Hecke operators generate Hecke algebras, which are the rings called T in the modularity lifting theorems, or R=T theorems, crucially introduced by Wiles in order to prove FLT.

The theory comes in two parts; the "abstract" theory, which is pure algebra, and the "concrete" theory where we apply the abstract constructions to produce endomorphisms of spaces of automorphic forms. The abstract theory is short (and completely formalized); the concrete theory still needs some work because to apply the theory to the adelic groups we care about we need to develop some more API around the theory of restricted products, and of compact open subgroups of matrix groups.

13.3. Abstract theory🔗

The set-up: we have a commutative ring $R$, the coefficient ring, and all of our spaces which the operators act on will be $R$-modules.

We have a group G acting R-linearly on an R-module A.

We have subgroups U and V of G. We will be particularly interested in the R-modules A^U and A^V of invariant elements.

Given an element g \in G, then under a certain finiteness hypothesis we will be able to define an R-linear map T_g or [UgV] from A^V to A^U. The finiteness hypothesis is that the double coset UgV can be written as a finite union of single cosets g_iV.

Lean code for Definition13.3.11 definition
  • def AbstractHeckeOperator.HeckeOperatorToFun.{u_1, u_2} {G : Type u_1}
      [Group G] {A : Type u_2} [AddCommMonoid A] [DistribMulAction G A]
      {g : G} {U V : Subgroup G}
      (h : (QuotientGroup.mk '' (U * {g})).Finite)
      (a : (MulAction.fixedPoints (↥V) A)) :
      (MulAction.fixedPoints (↥U) A)
    def AbstractHeckeOperator.HeckeOperatorToFun.{u_1,
        u_2}
      {G : Type u_1} [Group G] {A : Type u_2}
      [AddCommMonoid A] [DistribMulAction G A]
      {g : G} {U V : Subgroup G}
      (h :
        (QuotientGroup.mk ''
            (U * {g})).Finite)
      (a : (MulAction.fixedPoints (↥V) A)) :
      (MulAction.fixedPoints (↥U) A)
    The Hecke operator T_g = [UgV] : A^V → A^U associated to the double coset UgV. 
Lean code for Lemma13.3.21 definition
  • def AbstractHeckeOperator.HeckeOperator.{u_1, u_2, u_3} {G : Type u_1}
      [Group G] {A : Type u_2} [AddCommMonoid A] [DistribMulAction G A]
      (g : G) (U V : Subgroup G)
      (h : (QuotientGroup.mk '' (U * {g})).Finite) {R : Type u_3} [Ring R]
      [Module R A] [SMulCommClass G R A] :
      (MulAction.fixedPoints (↥V) A) →ₗ[R] (MulAction.fixedPoints (↥U) A)
    def AbstractHeckeOperator.HeckeOperator.{u_1,
        u_2, u_3}
      {G : Type u_1} [Group G] {A : Type u_2}
      [AddCommMonoid A] [DistribMulAction G A]
      (g : G) (U V : Subgroup G)
      (h :
        (QuotientGroup.mk ''
            (U * {g})).Finite)
      {R : Type u_3} [Ring R] [Module R A]
      [SMulCommClass G R A] :
      (MulAction.fixedPoints (↥V) A) →ₗ[R]
        (MulAction.fixedPoints (↥U) A)
    The Hecke operator `T_g = [UgV] : A^V → A^U` as an `R`-linear map, where `R` is any ring
    acting on `A` and commuting with the `G`-action. 
Proof for Lemma 13.3.2
uses 0

Well-definedness is because if we change g_i to g'_i := g_i v for some v \in V then g_i a = g'_i a because a \in A^V.

The image lands in A^U because left multiplication by u fixes UgV and hence permutes the cosets g_iV.

Finally R-linearity is because the G-action is R-linear.

The finiteness hypothesis that the decomposition UgV = \coprod_i g_iV is into a finite union is necessary for the theory to work. If G is a topological group then here is a criterion which gives the finiteness hypothesis for free.

Lean code for Lemma13.3.31 theorem
  • theorem QuotientGroup.mk_image_finite_of_compact_of_open.{u_1} {G : Type u_1}
      [Group G] [TopologicalSpace G] [IsTopologicalGroup G] {g : G}
      {U V : Subgroup G} (hU : IsCompact U) (hVopen : IsOpen V) :
      (QuotientGroup.mk '' (U * {g})).Finite
    theorem QuotientGroup.mk_image_finite_of_compact_of_open.{u_1}
      {G : Type u_1} [Group G]
      [TopologicalSpace G]
      [IsTopologicalGroup G] {g : G}
      {U V : Subgroup G} (hU : IsCompact U)
      (hVopen : IsOpen V) :
      (QuotientGroup.mk '' (U * {g})).Finite
Proof for Lemma 13.3.3
uses 0

The subset UgV of G is a continuous image of the compact set U \times V and is hence compact, and it is covered by the disjoint left cosets g_iV; this cover must thus be finite.

Lean code for Lemma13.3.41 theorem
  • theorem AbstractHeckeOperator.comm.{u_1, u_2, u_3} {G : Type u_1} [Group G]
      {A : Type u_2} [AddCommMonoid A] [DistribMulAction G A]
      {U : Subgroup G} {R : Type u_3} [Ring R] [Module R A]
      [SMulCommClass G R A] {g₁ g₂ : G}
      (h₁ : (QuotientGroup.mk '' (U * {g₁})).Finite)
      (h₂ : (QuotientGroup.mk '' (U * {g₂})).Finite)
      (hcomm :
         s₁ s₂,
          Set.BijOn QuotientGroup.mk s₁ (QuotientGroup.mk '' (U * {g₁})) 
            Set.BijOn QuotientGroup.mk s₂
                (QuotientGroup.mk '' (U * {g₂})) 
               a  s₁,  b  s₂, a * b = b * a) :
      AbstractHeckeOperator.HeckeOperator g₁ U U h₁ ∘ₗ
          AbstractHeckeOperator.HeckeOperator g₂ U U h₂ =
        AbstractHeckeOperator.HeckeOperator g₂ U U h₂ ∘ₗ
          AbstractHeckeOperator.HeckeOperator g₁ U U h₁
    theorem AbstractHeckeOperator.comm.{u_1, u_2, u_3}
      {G : Type u_1} [Group G] {A : Type u_2}
      [AddCommMonoid A] [DistribMulAction G A]
      {U : Subgroup G} {R : Type u_3} [Ring R]
      [Module R A] [SMulCommClass G R A]
      {g₁ g₂ : G}
      (h₁ :
        (QuotientGroup.mk ''
            (U * {g₁})).Finite)
      (h₂ :
        (QuotientGroup.mk ''
            (U * {g₂})).Finite)
      (hcomm :
         s₁ s₂,
          Set.BijOn QuotientGroup.mk s₁
              (QuotientGroup.mk ''
                (U * {g₁})) 
            Set.BijOn QuotientGroup.mk s₂
                (QuotientGroup.mk ''
                  (U * {g₂})) 
               a  s₁,
                 b  s₂, a * b = b * a) :
      AbstractHeckeOperator.HeckeOperator g₁ U
            U h₁ ∘ₗ
          AbstractHeckeOperator.HeckeOperator
            g₂ U U h₂ =
        AbstractHeckeOperator.HeckeOperator g₂
            U U h₂ ∘ₗ
          AbstractHeckeOperator.HeckeOperator
            g₁ U U h₁
Proof for Lemma 13.3.4
uses 0

We have [UgU][UhU]a=\sum_ig_i(\sum_jh_ja)=\sum_{i,j}g_ih_ja and [UhU][UgU]a=\sum_jh_j\sum_ig_ia=\sum_{j,i}h_jg_ia and these sums are equal because g_ih_j=h_jg_i.

13.4. Restricted products🔗

In the concrete example of Hecke operators which we care about, the invariants A^G will be spaces of quaternionic automorphic forms by definition. We do not need to worry about the definition of A in this project at all. However we will need to do various computations with the specific groups G which we are interested in, and they are restricted products. So we now develop some theory for restricted products, starting by recalling the definition.

If I is an index set, if X_i are sets indexed by i\in I and if Y_i are subsets, then the restricted product \prod'_iX_i is defined to be the subset of the full product \prod_i X_i consisting of those tuples (x_i) such that x_i\in Y_i for all but finitely many i. We suppress the Y_i from the notation in this document, although in Lean we cannot do this and the restricted product looks something like \prod{}^{r} i,[X\ i, Y\ i].

It is straightforward to check that if the X_i are groups or rings or R-modules, and the Y_i are subgroups or subrings or submodules, then the restricted product is a group, ring or R-module. Indeed the structure is inherited via the inclusion \prod'_iX_i\subseteq\prod_iX_i and the fact that arbitrary products of groups, rings, and modules are groups, rings, and modules.

More subtle is the theory of topological space structures. If the X_i are topological spaces then we do not give \prod'_iX_i the subspace topology coming from the product topology on \prod_iX_i; instead we give it the finest topology making all of the natural maps \prod_{i\in S}X_i\times\prod_{i\notin S}Y_i\to \prod'_iX_i continuous, as S runs through all finite subsets of I. Here the product of X_is and Y_is has the product topology. For example if all of the Y_i are open then one can check that \prod_iY_i is an open subset of \prod'_iX_i, whereas it is not of the form \left(\prod'_iX_i\right)\cap U for any open subset U of \prod_iX_i in general; the map from \prod'_iX_i to \prod_iX_i is continuous but is not in general an embedding.

If you have seen automorphic forms before, then here is an obvious-sounding claim: because the adeles \mathbb{A}_F of a number field are a restricted product of completions F_v with respect to the integer rings \mathcal{O}_v, then GL_2(\mathbb{A}_F) is obviously topologically a restricted product of GL_2(F_v) with respect to GL_2(\mathcal{O}_v). We now spend some time justifying this claim, which is a little more intricate than it sounds.

If A_i is a family of topological spaces equipped with open subsets B_i, and C_i is a family of topological spaces equipped with open subsets D_i, and A_i \times C_i is equipped with the open subset B_i \times D_i, then the natural bijection \prod'_i(A_i \times C_i)= (\prod'_i A_i) \times (\prod'_i B_i) is a homeomorphism.

Lean code for Lemma13.4.11 definition
  • def Homeomorph.restrictedProductProd.{u_4, u_5, u_6} {ι : Type u_4}
      {A : ι  Type u_5} {B : ι  Type u_6} {C : (i : ι)  Set (A i)}
      {D : (i : ι)  Set (B i)} [(i : ι)  TopologicalSpace (A i)]
      [(i : ι)  TopologicalSpace (B i)] (hCopen :  (i : ι), IsOpen (C i))
      (hDopen :  (i : ι), IsOpen (D i)) :
      RestrictedProduct (fun i  A i × B i) (fun i  C i ×ˢ D i)
          Filter.cofinite ≃ₜ
        RestrictedProduct (fun i  A i) (fun i  C i) Filter.cofinite ×
          RestrictedProduct (fun i  B i) (fun i  D i) Filter.cofinite
    def Homeomorph.restrictedProductProd.{u_4,
        u_5, u_6}
      {ι : Type u_4} {A : ι  Type u_5}
      {B : ι  Type u_6}
      {C : (i : ι)  Set (A i)}
      {D : (i : ι)  Set (B i)}
      [(i : ι)  TopologicalSpace (A i)]
      [(i : ι)  TopologicalSpace (B i)]
      (hCopen :  (i : ι), IsOpen (C i))
      (hDopen :  (i : ι), IsOpen (D i)) :
      RestrictedProduct (fun i  A i × B i)
          (fun i  C i ×ˢ D i)
          Filter.cofinite ≃ₜ
        RestrictedProduct (fun i  A i)
            (fun i  C i) Filter.cofinite ×
          RestrictedProduct (fun i  B i)
            (fun i  D i) Filter.cofinite
    The homeomorphism between restricted product of binary products, and the binary projuct
    of the restricted products, when the products are with respect to open subsets.
    

This may well not be true if B_i and D_i are not open, because filtered colimits and binary products do not appear in general to commute in the category of topological spaces. I don't know an explicit counterexample though.

Proof for Lemma 13.4.1
uses 0

We need to check continuity in both directions. The easy way is continuity of the map from the restricted product to the map from the binary product; the lemma RestrictedProduct.continuous_dom in mathlib tells us that a map from a restricted product is continuous when its restriction to \left(\prod_{i\in S}(A_i\times C_i)\right)\times\left(\prod_{i\notin S}(B_i\times D_i)\right) is continuous for all finite S\subseteq I; the universal property of the binary product tells us that the map into the binary product is continuous iff the maps into the factors are continuous, but the map into \prod'_iX_i is a product of the natural maps from \left(\prod_{i\in S}(A_i\times C_i)\right)\times\left(\prod_{i\notin S}(B_i\times D_i)\right) to \left(\prod_{i\in S}A_i\right)\times\left(\prod_{i\notin S}B_i\right) and the inclusion, and both are known to be continuous (an arbitrary product of continuous maps is continuous, and the other claim is in the restricted product API in mathlib).

The harder direction is the other way, because we are working against both universal properties. The trick is RestrictedProduct.continuous_dom_prod in mathlib (this is where we assume B_i and D_i are open), which tells us that a map out of a binary product of restricted products is continuous when its restriction to \left(\left(\prod_{i\in S}A_i\right)\times\left(\prod_{i\notin S}B_i\right)\right)\times \left(\left(\prod_{i\in S}C_i\right)\times\left(\prod_{i\notin S}D_i\right)\right) is, for all finite S (note that the S in the mathlib lemma is actually our I-S). The map from this to the restricted product factors through \left(\prod_{i\in S}(A_i\times C_i)\right)\times\left(\prod_{i\notin S}(B_i\times D_i)\right); the first map is a homeomorphism (use the fact that \prod_i X_i\times Y_i is homeomorphic to \left(\prod_i X_i\right)\times\left(\prod_i Y_i\right)), and the second is continuous by definition of the topology on a restricted product.

Restricted products with respect to open subspaces commute with finite products. In other words, if j runs through a finite set J and i runs through an arbitrary set I, and if X_{ji} are topological spaces equipped with open subspaces Y_{ji}, then the obvious bijection \prod'_i(\prod_j X_{ji})=\prod_j(\prod'_i X_{ji}) is a homeomorphism.

Lean code for Corollary13.4.21 definition
  • def Homeomorph.restrictedProductPi.{u_7, u_8, u_9} {ι : Type u_7}
      {n : Type u_8} [Fintype n] {A : n  ι  Type u_9}
      [(j : n)  (i : ι)  TopologicalSpace (A j i)]
      {C : (j : n)  (i : ι)  Set (A j i)}
      (hCopen :  (j : n) (i : ι), IsOpen (C j i)) :
      RestrictedProduct (fun i  (j : n)  A j i)
          (fun i  {f |  (j : n), f j  C j i}) Filter.cofinite ≃ₜ
        ((j : n) 
          RestrictedProduct (fun i  A j i) (fun i  C j i) Filter.cofinite)
    def Homeomorph.restrictedProductPi.{u_7, u_8,
        u_9}
      {ι : Type u_7} {n : Type u_8}
      [Fintype n] {A : n  ι  Type u_9}
      [(j : n) 
          (i : ι)  TopologicalSpace (A j i)]
      {C : (j : n)  (i : ι)  Set (A j i)}
      (hCopen :
         (j : n) (i : ι), IsOpen (C j i)) :
      RestrictedProduct
          (fun i  (j : n)  A j i)
          (fun i 
            {f |  (j : n), f j  C j i})
          Filter.cofinite ≃ₜ
        ((j : n) 
          RestrictedProduct (fun i  A j i)
            (fun i  C j i) Filter.cofinite)
    The homeomorphism between a restricted product of finite products, and a finite product
    of restricted products, when the products are with respect to open subsets.
    
Proof for Corollary 13.4.2

Induction on the size of the finite set, using Lemma 13.4.1 to get started.

Lean code for Corollary13.4.31 definition
  • def Homeomorph.restrictedProductMatrix.{u_7, u_8, u_9, u_10} {ι : Type u_7}
      {m : Type u_8} {n : Type u_9} [Fintype m] [Fintype n]
      {A : ι  Type u_10} [(i : ι)  TopologicalSpace (A i)]
      {C : (i : ι)  Set (A i)} (hCopen :  (i : ι), IsOpen (C i)) :
      RestrictedProduct (fun i  Matrix m n (A i)) (fun i  (C i).matrix)
          Filter.cofinite ≃ₜ
        Matrix m n
          (RestrictedProduct (fun i  A i) (fun i  C i) Filter.cofinite)
    def Homeomorph.restrictedProductMatrix.{u_7,
        u_8, u_9, u_10}
      {ι : Type u_7} {m : Type u_8}
      {n : Type u_9} [Fintype m] [Fintype n]
      {A : ι  Type u_10}
      [(i : ι)  TopologicalSpace (A i)]
      {C : (i : ι)  Set (A i)}
      (hCopen :  (i : ι), IsOpen (C i)) :
      RestrictedProduct
          (fun i  Matrix m n (A i))
          (fun i  (C i).matrix)
          Filter.cofinite ≃ₜ
        Matrix m n
          (RestrictedProduct (fun i  A i)
            (fun i  C i) Filter.cofinite)
    The homeomorphism between a restricted product of m x n matrices, and m x n matrices
    of restricted products, when the products are with respect to open sets.
    
Proof for Corollary 13.4.3

Immediate from the previous corollary Corollary 13.4.2.

Lemma13.4.4
uses 0
Used by 3
Reverse dependency previews
Preview
Theorem 13.4.7
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
markupTeXL∃∀N

If M is a topological monoid and U is an open submonoid, then the units U^\times of U are naturally an open subgroup of M^\times.

Lean code for Lemma13.4.41 theorem
  • theorem Submonoid.units_isOpen.{u_1} {M : Type u_1} [TopologicalSpace M]
      [Monoid M] {U : Submonoid M} (hU : IsOpen U) : IsOpen U.units
    theorem Submonoid.units_isOpen.{u_1}
      {M : Type u_1} [TopologicalSpace M]
      [Monoid M] {U : Submonoid M}
      (hU : IsOpen U) : IsOpen U.units

M^\times does not get the subspace topology from M; it is embedded into M \times M via g \mapsto (g, g^{-1}) and gets the subspace topology from the product. This makes it into a topological group.

Proof for Lemma 13.4.4
uses 0

We have U \times U is an open subset of M \times M, and if we view M^\times embedded in M \times M via g \mapsto (g, g^{-1}), then the intersection of this subgroup with U \times U is open in M^\times and consists of the elements of M^\times which are in U and whose inverse is also in U, which is easily checked to be the copy of U^\times we're talking about.

If M is a Hausdorff topological monoid and U is a compact submonoid, then the units U^\times of U are naturally a compact subgroup of M^\times.

Lean code for Lemma13.4.51 theorem
  • theoremdefined in Mathlib/Topology/Algebra/Group/Basic.lean
    complete
    theorem Submonoid.units_isCompact.{u} {α : Type u} [Monoid α]
      [TopologicalSpace α] [T1Space α] [ContinuousMul α] {S : Submonoid α}
      (hS : IsCompact S) : IsCompact S.units
    theorem Submonoid.units_isCompact.{u} {α : Type u}
      [Monoid α] [TopologicalSpace α]
      [T1Space α] [ContinuousMul α]
      {S : Submonoid α} (hS : IsCompact S) :
      IsCompact S.units

Is Hausdorffness necessary?

Proof for Lemma 13.4.5
uses 0

First I claim that M^\times embedded in M \times M via g \mapsto (g, g^{-1}) is a closed subset of M \times M. Indeed, if p : M \times M \to M is (a,b) \mapsto ab and q : M \times M \to M is (a,b) \mapsto ba, then p and q are continuous, M^\times \subseteq M \times M is the intersection p^{-1}\{1\} \cap q^{-1}\{1\}, and \{1\} is closed because M is Hausdorff.

We have U \times U is a compact subset of M \times M, and so U^\times = M^\times \cap U \times U is a closed subspace of a compact space and is thus compact.

Lean code for Lemma13.4.61 definition
  • defdefined in Mathlib/Topology/Algebra/Group/Units.lean
    complete
    def ContinuousMulEquiv.piUnits.{u_1, u_2} {ι : Type u_1} {M : ι  Type u_2}
      [(i : ι)  Monoid (M i)] [(i : ι)  TopologicalSpace (M i)] :
      ((i : ι)  M i)ˣ ≃ₜ* ((i : ι)  (M i)ˣ)
    def ContinuousMulEquiv.piUnits.{u_1, u_2}
      {ι : Type u_1} {M : ι  Type u_2}
      [(i : ι)  Monoid (M i)]
      [(i : ι)  TopologicalSpace (M i)] :
      ((i : ι)  M i)ˣ ≃ₜ* ((i : ι)  (M i)ˣ)
    The isomorphism of topological groups between the units of a product and
    the product of the units. 
Proof for Lemma 13.4.6
uses 0

We prove that the maps in both directions are continuous. Let's start with the map from left to right.

A map into a product is continuous when the maps to the factors are continuous. A map into the units of a monoid is continuous when the two projection maps to the monoid (the inclusion and the map u \mapsto u^{-1}) are continuous (because M^\times has the topology induced from M \times M). This reduces us to checking that the maps (\prod_i U_i)^\times \to U_j sending (u_i) to u_j resp u_j^{-1} are continuous. But the former map is the continuous inclusion (\prod_i U_i)^\times \to \prod_i U_i followed by the continuous projection to U_j, and the latter map is the continuous inclusion (\prod_i U_i)^\times \to \prod_i U_i sending x to x^{-1} followed by the projection.

To go the other way: because the units have the induced topology it suffices to check that the two maps \prod_i(U_i^\times) \to \prod_i U_i sending (u_i) to (u_i) resp (u_i^{-1}) are continuous. A map to a product is continuous when the induced maps to the factors are. A projection from a project is continuous, and the identity and inverse are continuous maps U_j^\times \to U_j, and the maps we're concerned with are composites of these maps and are hence continuous.

Lean code for Theorem13.4.71 definition
  • def ContinuousMulEquiv.restrictedProductUnits.{u_7, u_8, u_9} {ι : Type u_7}
      {M : ι  Type u_8} [(i : ι)  Monoid (M i)]
      [(i : ι)  TopologicalSpace (M i)] [ (i : ι), ContinuousMul (M i)]
      {S : ι  Type u_9} [(i : ι)  SetLike (S i) (M i)]
      [ (i : ι), SubmonoidClass (S i) (M i)] (A : (i : ι)  S i)
      (hA :  (i : ι), IsOpen (A i)) :
      (RestrictedProduct (fun i  M i) (fun i  (A i))
            Filter.cofinite)ˣ ≃ₜ*
        RestrictedProduct (fun i  (M i)ˣ)
          (fun i  (Submonoid.ofClass (A i)).units) Filter.cofinite
    def ContinuousMulEquiv.restrictedProductUnits.{u_7,
        u_8, u_9}
      {ι : Type u_7} {M : ι  Type u_8}
      [(i : ι)  Monoid (M i)]
      [(i : ι)  TopologicalSpace (M i)]
      [ (i : ι), ContinuousMul (M i)]
      {S : ι  Type u_9}
      [(i : ι)  SetLike (S i) (M i)]
      [ (i : ι), SubmonoidClass (S i) (M i)]
      (A : (i : ι)  S i)
      (hA :  (i : ι), IsOpen (A i)) :
      (RestrictedProduct (fun i  M i)
            (fun i  (A i))
            Filter.cofinite)ˣ ≃ₜ*
        RestrictedProduct (fun i  (M i)ˣ)
          (fun i 
            (Submonoid.ofClass (A i)).units)
          Filter.cofinite
    The monoid homeomorphism between the units of a restricted product of topological monoids
    and the restricted product of the units of the monoids, when the products are with
    respect to open submonoids.
    
Proof for Theorem 13.4.7
Proof uses 2
Proof dependency previews
Preview
Lemma 13.4.4
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

I don't know a clean way of showing that the map from left to right is continuous, so here is a direct proof that the map is a homeomorphism. It is certainly an abstract group isomorphism between topological groups. So to prove that it is a homeomorphism it suffices to prove that it is a homeomorphism near the identity, or equivalently that there are open neighbourhoods X and Y of the identity elements on each side such that the map induces a homeomorphism from X to Y. We choose the units of \prod_i U_i and the product \prod_i(U_iˣ). Note that the former is open because of Submonoid.units_isOpen. The result now follows from the previous lemma ContinuousMulEquiv.piUnits.

We could work over a general nonarchimedean normed field but we still do not have them in mathlib, so we stick to the case of interest which is the completion of a number field K at a finite place v. Such a completion is a topological field K_v equipped with a discrete valuation, a ring of integers \calO_v having a principal maximal ideal (\varpi), and a finite residue field k_v := \calO_v/(\varpi).

There is no formal Lean code for the lemmas in this section; it would seem more sensible to prove them in the right generality, and we don't have a definition of nonarchimedean local field yet.

13.5. Some local theory🔗

Lean code for Lemma13.5.11 theorem
  • complete
    theorem NumberField.isOpenAdicCompletionIntegers.{u_1} (K : Type u_1) [Field K]
      [NumberField K]
      (v :
        IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K)) :
      IsOpen
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v)
    theorem NumberField.isOpenAdicCompletionIntegers.{u_1}
      (K : Type u_1) [Field K] [NumberField K]
      (v :
        IsDedekindDomain.HeightOneSpectrum
          (NumberField.RingOfIntegers K)) :
      IsOpen
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers
            K v)
Proof for Lemma 13.5.1
uses 0

Openness is already in mathlib.

Lean code for Lemma13.5.21 theorem
  • complete
    theorem NumberField.instCompactSpaceAdicCompletionIntegers.{u_1} (K : Type u_1)
      [Field K] [NumberField K]
      (v :
        IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K)) :
      CompactSpace
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v)
    theorem NumberField.instCompactSpaceAdicCompletionIntegers.{u_1}
      (K : Type u_1) [Field K] [NumberField K]
      (v :
        IsDedekindDomain.HeightOneSpectrum
          (NumberField.RingOfIntegers K)) :
      CompactSpace
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers
            K v)
Proof for Lemma 13.5.2
uses 0

Compactness lies a little deeper because it assumes that the residue field of K_v is finite.

Lean code for Lemma13.5.31 theorem
  • complete
    theorem IsDedekindDomain.M2.localFullLevel.isOpen.{u_1} {F : Type u_1} [Field F]
      [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers F)) :
      IsOpen (IsDedekindDomain.M2.localFullLevel v).carrier
    theorem IsDedekindDomain.M2.localFullLevel.isOpen.{u_1}
      {F : Type u_1} [Field F] [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum
          (NumberField.RingOfIntegers F)) :
      IsOpen
        (IsDedekindDomain.M2.localFullLevel
            v).carrier
Proof for Lemma 13.5.3

Topologically M_2(\calO_v) \cong \calO_v^4 as a subset of K_v^4, so this follows from Lemma 13.5.1 because a product of compacts is compact and a product of opens is open.

Lean code for Lemma13.5.41 theorem
  • complete
    theorem IsDedekindDomain.M2.localFullLevel.isCompact.{u_1} {F : Type u_1}
      [Field F] [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers F)) :
      IsCompact (IsDedekindDomain.M2.localFullLevel v).carrier
    theorem IsDedekindDomain.M2.localFullLevel.isCompact.{u_1}
      {F : Type u_1} [Field F] [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum
          (NumberField.RingOfIntegers F)) :
      IsCompact
        (IsDedekindDomain.M2.localFullLevel
            v).carrier
Proof for Lemma 13.5.4

Topologically M_2(\calO_v) \cong \calO_v^4 as a subset of K_v^4, so this follows from theorem Lemma 13.5.2 because a product of compacts is compact and a product of opens is open.

Proof for Lemma 13.5.5
Proof uses 3
Proof dependency previews
Preview
Lemma 13.4.4
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

K_v is known to be Hausdorff, so M_2(K_v) is Hausdorff and the result follows from Lemma 13.4.4 and Lemma 13.4.5.

Recall that there is a projection \calO_v \to k_v where k_v is the residue field of v, a finite field. This induces a ring homomorphism M_2(\calO_v) \to M_2(k_v) with kernel M_2(\varpi\calO_v), an ideal I of M_2(\calO_v) isomorphic to (\varpi\calO_v)^4 and hence also compact and open.

Say \Gamma_v is a subgroup of GL_2(k_v). Then \Gamma_v is finite. Consider it as a submonoid of the multiplicative monoid M_2(k_v). Its preimage U_v in M_2(\calO_v) is easily checked to be a submonoid of M_2(\calO_v); furthermore it is a finite union of cosets of I and is hence compact and open as a submonoid of M_2(\calO_v) and hence of M_2(K_v).

Proof for Lemma 13.5.6
Proof uses 2
Proof dependency previews
Preview
Lemma 13.4.4
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

Γ_v is a group and hence its preimage U_v is a subgroup of the monoid M_2(K_v). It is compact and open as we just saw. Hence its units (also U_v) are a subgroup of GL_2(K_v), which is compact and open, again by Lemma 13.4.4 and Lemma 13.4.5.

Say now \begin{pmatrix}1&*\\0&1\end{pmatrix}\subseteq\Gamma_v\subseteq\begin{pmatrix}*&*\\0&*\end{pmatrix} and let U:=U_v be its preimage in GL_2(\calO_v), considered as a compact open subgroup of GL_2(K_v). Choose 0\not=\alpha\in\calO_v and define g=\begin{pmatrix}\alpha&0\\0&1\end{pmatrix}\in GL_2(K_v). Let's do an explicit double coset decomposition in preparation for a calculation with Hecke operators.

Lean code for Lemma13.5.71 theorem
  • theorem TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.bijOn_unipotent_mul_diagU1_U1diagU1.{u_1}
      {F : Type u_1} [Field F] [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers F))
      (α : (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers F v))
      ( : α  0) :
      Set.BijOn
        (TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.unipotentMulDiagU1
          v α )
        
        (TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.U1diagU1
          v α )
    theorem TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.bijOn_unipotent_mul_diagU1_U1diagU1.{u_1}
      {F : Type u_1} [Field F] [NumberField F]
      (v :
        IsDedekindDomain.HeightOneSpectrum
          (NumberField.RingOfIntegers F))
      (α :
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers
            F v))
      ( : α  0) :
      Set.BijOn
        (TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.unipotentMulDiagU1
          v α )
        
        (TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicForm.HeckeOperator.Local.U1diagU1
          v α )
    The double coset space `U1diagU1` is the disjoint union of
    `unipotentMulDiagU1` as t ranges over `O_v / αO_v`. 
Proof for Lemma 13.5.7
uses 0

We first manipulate the statement into a statement about finite groups. We have UgU=\coprod_t g_tU\iff UgUg^{-1}=\coprod_t g_tUg^{-1}=\coprod_t g_tg^{-1}(gUg^{-1}). By the second isomorphism theorem this is true if U=\coprod_t g_tg^{-1}(gUg^{-1}\cap U). So when is an element of U in gUg^{-1}? Equivalently, if x\in U, when is g^{-1}xg\in U? An explicit calculation of matrices shows us that this is true iff g=\begin{pmatrix} a&b\\c&d\end{pmatrix} with \alpha\mid b. Define U^\alpha to be this subgroup of U. We have reduced the question to showing that the matrices h_t:=\begin{pmatrix}1&\tilde{t}\\0&1\end{pmatrix} are a set of left coset representatives for the subgroup U^\alpha of U.

It thus suffices to show that if u=\begin{pmatrix} a&b\\c&d\end{pmatrix}\in U then u\in h_tU^\alpha iff b\in\calO_v reduces mod \alpha to t\in\calO_v/\alpha. We do this by computing h_t^{-1}u=\begin{pmatrix} a-\tilde{t}c&b-\tilde{t}d\\c&d\end{pmatrix} and observing that its top right hand entry mod~\alpha is zero iff b mod \alpha is t.

13.6. Adelic groups🔗

We are finally ready to discuss the group G and the subgroups U which we will be using to define our Hecke operators. Let K be a number field, let D a quaternion algebra over K and let A_K^\infty be the finite adeles of K; recall that this is a commutative topological ring, defined to be the restricted product of the commutative topological fields K_v as v runs through the finite places of K, with respect to the compact open subrings \calO_v.

The group~$G$ we are interested in for the rest of this miniproject is the group $(DotimesKAK^infty)^times$. We want to write down compact open subgroups of this group, but the first thing we need to do is to find a way of talking about elements of the group.

We will assume that there exists an \A_K^\infty-algebra isomorphism D\otimes_K\A_K^\infty=M_2(\A_K^\infty) and we will fix such an isomorphism r, called a rigidification in the Lean code. We give both of these \A_K^\infty-algebras the \A_K^\infty-module topology, which is a fancy way of saying the product topology. They are both free of rank 4 as \A_K^\infty-modules, and the rigidification is then a homeomorphism because all \A_K^\infty-module maps between modules with the \A_K^\infty-module topology are continuous.

This means that our group~$G$ is isomorphic (both algebraically and topologically) to $GL2(AK^infty)$. Before we go any further, let say something about matrix rings over complete fields.

Lean code for Theorem13.6.11 definition
  • def IsDedekindDomain.FiniteAdeleRing.GL2.restrictedProduct.{u_1}
      {F : Type u_1} [Field F] [NumberField F] :
      GL (Fin 2)
          (IsDedekindDomain.FiniteAdeleRing (NumberField.RingOfIntegers F)
            F) ≃ₜ*
        RestrictedProduct
          (fun v 
            GL (Fin 2)
              (IsDedekindDomain.HeightOneSpectrum.adicCompletion F v))
          (fun v  (IsDedekindDomain.M2.localFullLevel v).units)
          Filter.cofinite
    def IsDedekindDomain.FiniteAdeleRing.GL2.restrictedProduct.{u_1}
      {F : Type u_1} [Field F]
      [NumberField F] :
      GL (Fin 2)
          (IsDedekindDomain.FiniteAdeleRing
            (NumberField.RingOfIntegers F)
            F) ≃ₜ*
        RestrictedProduct
          (fun v 
            GL (Fin 2)
              (IsDedekindDomain.HeightOneSpectrum.adicCompletion
                F v))
          (fun v 
            (IsDedekindDomain.M2.localFullLevel
                  v).units)
          Filter.cofinite
    `GL_2(𝔸_F^∞)` is isomorphic and homeomorphic to the
    restricted product of the local components `GL_2(F_v)`.
    
Proof for Theorem 13.6.1
Proof uses 3
Proof dependency previews
Preview
Corollary 13.4.3
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

This follows from lemma and lemma.

If S is a finite set of finite places of K, and for each v \in S we choose a subgroup Γ_v of GL₂(k_v) then we saw in the previous section how to create a compact open subgroup \tilde{Γ}_v of GL₂(K_v). For v \notin S define \tilde{Γ}_v = GL₂(\mathcal{O}_v). Then \prod_v \tilde{Γ}_v is a compact open subgroup of \prod_v GL₂(\mathcal{O}_v). It is compact subgroups of this form which we shall be using.

13.7. Automorphic forms🔗

We recall some of the definitions of spaces of automorphic forms, from the quaternion algebra project [??].

We fix a totally real field F, a totally definite quaternion algebra D/F, and a coefficient additive abelian group R. Set G = (D \otimes_F \A_F^\infty)^\times as in the previous section. Note that G naturally contains copies of D^\times and (\A_F^\infty)^\times. Recall from definition Definition 12.4.1 that an R-valued weight 2 automorphic form is a function f : G \to R satisfying the following axioms:

  1. f(dg) = f(g) for all d \in D^\times \subseteq (D \otimes_F \A_F^\infty)^\times.

  2. There exists a compact open subgroup U, the level of f, such that f(gu) = f(g) for all g \in G and u \in U.

  3. f(gz) = f(g) for all z \in (\A_F^\infty)^\times.

It can be checked that the collection of all such forms is an additive abelian group, and if R is a ring then it is naturally an R-module. Let's call this group A for short. Then A has a left action of G, with g \cdot f defined via (g \cdot f)(x) := f(xg). Recall from definition TotallyDefiniteQuaternionAlgebra.WeightTwoAutomorphicFormOfLevel that a weight 2 automorphic form of level U is simply an element of the fixed points A^U. In other words, the forms of level U are the forms satisfying the three axioms defining an automorphic form but with the compact open subgroup in the second axiom being U.

13.8. Concrete Hecke operators🔗

Let F be a number field. For each finite place v we have the completion F_v of F at v, which is a normed field equipped with its integer ring \calO_v, a local ring with finite residue field k_v.

For v a finite place of F, let \Delta_v be a subgroup of k_v^\times and consider the subgroup \Gamma_v of GL_2(k_v) consisting of matrices \begin{pmatrix}a&b\\0&d\end{pmatrix} with a,d\in k_v^\times and a/d\in\Delta_v.

It is easily checked that this is a subgroup, and that \begin{pmatrix}1&*\\0&1\end{pmatrix}\subseteq\Gamma_v\subseteq\begin{pmatrix}*&*\\0&*\end{pmatrix}, so lemma [??] applies. Let U_{\Delta_v} be the preimage of this subgroup in GL_2(\calO_v). This is a compact open subgroup of GL_2(\calO_v), by the remarks above.

Let S be a finite set of finite places of F, and define U_\Delta(S) to be the matrices in \prod_v GL_2(\calO_v) which are in U_{\Delta_v} for all v\in S (we put no condition at the places v\notin S). We can consider U_\Delta(S) as a subgroup of GL_2(\A_F^\infty); it is a product of compact subgroups and thus compact, and it is a product of opens all but finitely many of which are GL_2(\calO_v) and is thus open. Because the inclusion \prod_v GL_2(\calO_v)\to GL_2(\A_F^\infty) is an open embedding, we can regard U_\Delta(S) as a compact open subgroup of GL_2(\A_F^\infty).

If we fix r a rigidification, it induces an isomorphism GL_2(\A_F^\infty)=(D\otimes_F\A_F^\infty)^\times and so we can identify U_\Delta(S) with its image in (D\otimes_F\A_F^\infty).

We introduce Hecke operators of two types.

First, for v any place not in S, we choose a uniformiser \varpi_v\in F_v, form the invertible 2\times 2 matrix \begin{pmatrix}\varpi_v&0\\0&1\end{pmatrix}\in GL_2(F_v), and extend this element to an element g\in G by letting its component at all finite places w\not=v be the identity. We define the Hecke operator T_v:A^U\to A^U to be [UgU], using the notation defined at the beginning of this section.

For the second kind of Hecke operator we choose 0\not=\alpha\in\calO_v and we consider the 2\times 2 matrix in GL_2(\A_K^\infty) which is \begin{pmatrix}\alpha&0\\0&1\end{pmatrix} at v and 1 at all other local components. Via the rigidification r we obtain an element g\in G. We define the Hecke operator U_{v,\alpha} to be [UgU].

The Hecke algebra of interest to us will be generated by the Hecke operators T_v for v\notin S and U_{v,\alpha} for v\in S.

13.9. Analysis of the Hecke algebra🔗

First we discuss commutativity of the Hecke operators. First, assume that v \notin S. Then U = GL₂(\mathcal{O}_v) \times U' where U' is a subgroup of the restricted product of GL₂(F_w) for w \not=v. We can use RestrictedProduct.SubmonoidClass.isProductAt to express this concept of being an internal direct product. If g is the element of G used to make T_v then g is also supported at w, so the double coset space UgU is just (GL₂(\mathcal{O}_v)\begin{pmatrix}\varpi&0\\0&1\end{pmatrix}GL₂(\mathcal{O}_v))\times U' and in particular can be decomposed into single left U-cosets of the form g_iU where g_i is also supported at v. This is RestrictedProduct.mem_coset_and_mulSupport_subset_of_isProductAt.

Similarly if v \in S, if 0 \not=\alpha \in \calO_v and if g_v=\begin{pmatrix}\alpha&0\\0&1\end{pmatrix} and is 1 elsewhere, then the double coset space UgU can again be written as \coprod_i g_iU with the g_i supported only at v.

We deduce immediately from lemma Lemma 13.3.4 that two Hecke operators associated to different finite places of F commute. What remains is to check that U_{α,v} and U_{β,v} commute. In fact we claim more, namely that U_{α,v}U_{β,v}=U_{αβ,v}. This will suffice because αβ=βα.

Proof for Lemma 13.9.1
uses 0

Follows easily from the explicit double coset decomposition proved above.

The reason that the Hecke algebra is Noetherian is that the main theorem of the Fujisaki miniproject immediately implies that A^G is a submodule of a finite free R-module and is hence Noetherian. Its endomorphism algebra is hence a Noetherian R-module, so the sub-R-algebra generated by the Hecke operators is also a Noetherian R-module and thus a Noetherian ring.