Abstract Hecke ring + modular forms over a commensurability class - #76
Abstract Hecke ring + modular forms over a commensurability class#76CBirkbeck wants to merge 6 commits into
Conversation
Port the core definitions of the abstract Hecke ring (following Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Ch. 3) from AINTLIB: the arithmetic pair HeckePair (H, Delta), the double-coset quotient HeckeCoset, and the Hecke ring type 𝕋 of formal Z-linear combinations of double cosets. Definitions only -- the convolution product and its properties are not included yet. Part of #75. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Note on
|
… + commensurator action Port from AINTLIB (self-contained on mathlib): the space of modular forms of weight k over the commensurability class of a fixed group Γ₀ as a direct limit, with the commensurator action and the level-invariants theorem. In its own folder LeanBridge/CommensurableLimit/, separate from the existing code. - CommensurabilityClass.lean: directed index `CommIndex Γ₀` (det-one subgroups commensurable with Γ₀, reverse-inclusion order) + gap lemmas `HasDetOne.of_le`, `commensurable_inf`, `commensurable_le_commensurator`. - DirectLimit.lean: `ModularFormCommensurable Γ₀ k := Module.DirectLimit (ModularForm Γ k)` over CommIndex Γ₀, with ofLevel / lift / injectivity; headline `ModularFormArithmetic` at 𝒮ℒ. - CommensuratorAction.lean: `PComm Γ₀ := commensurator Γ₀ ⊓ GL(2,ℝ)⁺` acts via the ℂ-linear slash-translate, bundled `commRep : Representation ℂ (PComm Γ₀) (limit)`; theorem `range_ofLevel_eq_invariants` — the Γ-invariants of the action are exactly `ModularForm Γ.carrier k`. Builds on mathlib v4.31.0; sorry-free; axioms only propext/Classical.choice/Quot.sound. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…etPlusMinusOne The base Γ₀ of ModularFormCommensurable only needs det = ±1, not det = 1: the ℂ-vector-space structure of the direct limit comes from the index subgroups (CommIndex.carrier, each HasDetOne), not from Γ₀. So weaken the hypothesis [Γ₀.HasDetOne] to [Γ₀.HasDetPlusMinusOne] on the def and its AddCommGroup/Module instances. ModularFormArithmetic (Γ₀ = 𝒮ℒ) is unaffected since HasDetOne ⇒ HasDetPlusMinusOne. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…le commensurator Generalize the commensurator action from the positive-determinant part PComm = commensurator ⊓ GLPos (a ℂ-representation) to the FULL commensurator (an ℝ-representation). A det < 0 commensurator element acts by the slash action with σ = complex conjugation, which is ℝ-linear but not ℂ-linear, so the representation is over ℝ; ModularFormCommensurable stays a ℂ-vector space (the ℝ-structure is restriction of scalars). - add translateℝ: ℝ-linear translate for any determinant (replaces translateₗ) - build the ℝ-linear smulMap on the ℂ-direct-limit via an ℝ-linear equiv to the same system rebuilt over ℝ (Module.DirectLimit ℝ) - commRep : Representation ℝ (commensurator Γ₀) (ModularFormCommensurable Γ₀ k) - update smulMap_one/_mul, toFunₗ_smulMap, range_ofLevel_eq_invariants, ofLevelInvariantsEquiv (now ≃ₗ[ℝ]); drop PComm and the det>0 machinery Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…usOne bases
The whole ModularFormCommensurable section (commRep, ofLevelInvariantsEquiv,
range_ofLevel_eq_invariants, ...) was still pinned to [Γ₀.HasDetOne] solely
because Nonempty (CommIndex Γ₀) only had a HasDetOne instance (Γ₀ itself as the
witness level). Add a Nonempty (CommIndex Γ₀) instance for HasDetPlusMinusOne
bases, with witness the determinant-one part Γ₀ ⊓ ker(det): for det = ±1 groups
the determinant maps Γ₀ onto a subgroup of {±1}, so the det-one part has index
≤ 2 (proved via Subgroup.index_ker + finiteness of the det image), hence is
commensurable with Γ₀ and determinant-one. Then relax the CommensuratorAction
section variable to [Γ₀.HasDetPlusMinusOne]; the action now works for genuinely
det = ±1 bases, not just det = 1.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…/AddCommGroup The Hecke ring type 𝕋 P Z and its additive structure only need additive structure on the coefficients Z, not a full CommRing. Weaken the 𝕋 definition and FunLike instance to [Zero Z], add an AddCommMonoid (𝕋 P Z) instance for [AddCommMonoid Z], and state the AddCommGroup instance over [AddCommGroup Z]. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Abstract Hecke ring + modular forms over a commensurability class
Two foundational slices toward #75 (Shimura, Ch. 3), ported from AINTLIB with mathlib-only imports. Builds on mathlib
v4.31.0; sorry-free.ForMathlib/AbstractHeckeRing.lean— the abstract Hecke ring:HeckePair (H, Δ)withH ≤ Δ ≤ commensurator H, the double-coset quotientHeckeCoset, and the ring𝕋of formalℤ-linear combinations of double cosets. Definitions only (convolution product is a follow-up).CommensurableLimit/— modular forms of weightkover a commensurability class: the direct limitModularFormCommensurable Γ₀ kofModularForm Γ kover det-one subgroups commensurable withΓ₀, the commensurator actioncommRep, andrange_ofLevel_eq_invariants(the level-Γinvariants are exactlyModularForm Γ.carrier k).Part of #75.