Documentation

LeanPool.LeanModularForms.HeckeRIngs.GLn.PolynomialRing

Polynomial Ring Structure of the p-local Hecke Ring #

Shimura's Theorem 3.20: the p-local Hecke ring RP^{(n)} is isomorphic to a polynomial ring ℤ[X₁,...,Xₙ] in n variables.

Main definitions #

Main results #

References #

Generator diagonals #

def HeckeRing.GLn.TGenDiag (n p : ) (k : Fin n) :
Fin n

The diagonal for the k-th generator: (1,...,1,p,...,p) with n-1-k ones followed by k+1 entries of p. Here k : Fin n, giving n generators.

Equations
Instances For
    @[simp]
    theorem HeckeRing.GLn.T_gen_diag_val (n p : ) (k i : Fin n) :
    TGenDiag n p k i = if i < n - 1 - k then 1 else p
    theorem HeckeRing.GLn.T_gen_diag_pos (n p : ) (hp : Nat.Prime p) (k i : Fin n) :
    0 < TGenDiag n p k i
    theorem HeckeRing.GLn.divChain_T_gen (n p : ) (k : Fin n) :
    DivChain n (TGenDiag n p k)

    The TGen diagonal satisfies the divisibility chain condition.

    theorem HeckeRing.GLn.T_gen_diag_is_ppow (n p : ) (k : Fin n) :
    TGenDiag n p k = ppowDiag n p fun (i : Fin n) => if i < n - 1 - k then 0 else 1

    The TGen diagonal has p-power entries (each entry is 1 = p^0 or p = p^1).

    theorem HeckeRing.GLn.T_gen_exp_monotone (n : ) (k : Fin n) :
    Monotone fun (i : Fin n) => if i < n - 1 - k then 0 else 1

    The exponent function for TGen is monotone.

    noncomputable def HeckeRing.GLn.TGen (n p : ) [NeZero n] (k : Fin n) :

    The k-th generator of RP: T(1,...,1,p,...,p) with k+1 entries of p.

    Equations
    Instances For
      theorem HeckeRing.GLn.T_gen_mem_R_p (n p : ) (hp : Nat.Prime p) [NeZero n] (k : Fin n) :
      TGen n p k RP n p hp

      Each TGen lies in RP.

      Weight of a p-power diagonal #

      def HeckeRing.GLn.ppowWeight (n : ) (e : Fin n) :

      Weight of a p-power diagonal: the sum of all exponents.

      Equations
      Instances For
        theorem HeckeRing.GLn.ppowWeight_eq_zero_iff (n : ) (e : Fin n) :
        ppowWeight n e = 0 ∀ (i : Fin n), e i = 0

        Weight is zero iff all exponents are zero.

        Polynomial ring isomorphism (Theorem 3.20) #

        noncomputable def HeckeRing.GLn.evalHom (n : ) [NeZero n] (p : ) :

        Evaluation homomorphism: Xₖ ↦ TGen k. Maps ℤ[X₁,...,Xₙ] into the Hecke algebra.

        Equations
        Instances For

          Infrastructure for the isomorphism #

          theorem HeckeRing.GLn.T_elem_ones_eq_one (n : ) [NeZero n] :
          (TElem fun (x : Fin n) => 1) = 1

          T(1,...,1) is the multiplicative identity in the Hecke algebra, for any n.

          theorem HeckeRing.GLn.T_scalar_pow (n : ) [NeZero n] (c : ) (hc : 0 < c) (k : ) :
          (TElem fun (x : Fin n) => c) ^ k = TElem fun (x : Fin n) => c ^ k

          T(c,...,c)^k = T(c^k,...,c^k): scalar diagonal elements are closed under powers.

          theorem HeckeRing.GLn.T_gen_mem_evalHom_range (n : ) [NeZero n] (p : ) (k : Fin n) :
          TGen n p k (evalHom n p).range

          Each TGen k lies in the range of evalHom.

          Surjectivity for n = 2 (Shimura Theorem 3.20) #

          Bridge lemmas: TGen at n=2 matches GL2 definitions #

          TGen 2 p 0 = TAd 1 p: the first generator is T(1,p).

          TGen 2 p 1 = TPp p: the second generator is the diamond operator.

          TSum(p) = TGen 0: the sum T(p) is the first generator for p prime.

          Step 3: TSum(p^k) in evalHom range by strong induction #

          TSum(p^k) lies in the range of the evaluation homomorphism, for all k.

          Step 4: TAd(1, p^k) in evalHom range #

          TAd(1, p^k) lies in the range of the evaluation homomorphism.

          Step 5: General ppow element for n=2 #

          theorem HeckeRing.GLn.Surj.T_elem_ppow_in_range (p : ) (hp : Nat.Prime p) (e : Fin 2) (hmono : Monotone e) :

          TElem (ppowDiag 2 p e) is in the evalHom range when e is monotone. Factor out T(p^{e₀}, p^{e₀}) to reduce to T(1, p^{e₁-e₀}).

          Step 6: Assembly — every RP element is in the image #

          theorem HeckeRing.GLn.Surj.T_gen_generates_R_p_two (p : ) (hp : Nat.Prime p) (f : HeckeAlgebra 2) :
          f RP 2 p hpf (evalHom 2 p).range

          Surjectivity of evalHom at n=2: every element of RP 2 p is in the range of the evaluation homomorphism ℤ[X₁, X₂] → HeckeAlgebra 2.

          Surjectivity for n = 1 #

          theorem HeckeRing.GLn.SurjOne.T_gen_generates_R_p_one (p : ) (hp : Nat.Prime p) (f : HeckeAlgebra 1) :
          f RP 1 p hpf (evalHom 1 p).range

          n=1 surjectivity: every element of RP is in the range of evalHom.

          Injectivity #

          evalHom maps into RP #

          theorem HeckeRing.GLn.Inj.evalHom_mem_R_p (n : ) [NeZero n] (p : ) (hp : Nat.Prime p) (P : MvPolynomial (Fin n) ) :
          (evalHom n p) P RP n p hp

          Every element in the image of evalHom belongs to RP.

          noncomputable def HeckeRing.GLn.Inj.evalHomR (n : ) [NeZero n] (p : ) (hp : Nat.Prime p) :
          MvPolynomial (Fin n) →+* (RP n p hp)

          The restricted evaluation homomorphism into RP.

          Equations
          Instances For

            n=1 injectivity #

            n=1: evalHom is injective. Different monomials map to distinct basis elements, so the images are ℤ-linearly independent.

            Surjectivity of restricted evalHom #

            theorem HeckeRing.GLn.Inj.evalHomR_surjective (n : ) [NeZero n] (p : ) (hp : Nat.Prime p) (h_surj : fRP n p hp, f (evalHom n p).range) :

            Surjectivity of evalHomR follows from surjectivity onto RP.

            theorem HeckeRing.GLn.Inj.evalHomR_injective (n : ) [NeZero n] (p : ) (_hp : Nat.Prime p) (h_inj : Function.Injective (evalHom n p)) :

            Injectivity of evalHomR follows from injectivity of evalHom.