The composite diagonal element of the Γ₀(N) Hecke ring #
Diagonal/PrimePower.lean builds the generator T_p and the family T_{p^r} that the
Diamond–Shurman recurrence produces, and closes by naming its own gap: "the composite element
assembled over a prime factorisation is [not] proved here". This file assembles it.
heckeTCompositeGamma0 N n multiplies the blocks heckeTGeneratorRecGamma0 N p (v_p n) over
the primes of n, least prime first. The assembly is TauCeti.Nat.primePowerProd rather than
n.factorization.prod: a Finsupp.prod needs a CommMonoid instance, and the Hecke ring
𝕋 (Δ₀(N)) (Γ₀(N)) ℤ carries only a Ring one — its commutativity is a theorem about the
Atkin–Lehner anti-involution, not a structure field. The ordered product asks only for One
and Mul — its bracketing is fixed, so neither associativity nor a unit law enters — and so is
available now.
The block map is heckeTGeneratorRecGamma0 N applied directly, with no primality guard. That
is exactly what Diagonal/PrimePower.lean bought by dropping Nat.Prime p from the recurrence:
the family is total in p, so it is a block map, and the composite needs no dite over
primality and no junk branch to reason around. The primality of n.minFac still does all the
mathematical work — it is what heckeTCompositeGamma0_prime_pow runs on — but it enters as a
hypothesis of the lemmas rather than as a guard inside the definition.
What this file adds to the per-prime theory #
The per-prime product formula is heckeTGeneratorRecGamma0_mul, in Diagonal/PrimePower.lean,
a statement about the recurrence family with no assembly in it. This file assembles it over a
factorisation, in two forms: multiplicativity at coprime arguments, and the full divisor table at
arbitrary nonzero ones. Both rest on the commutativity of the Γ₀(N) Hecke ring, which comes from
the Atkin–Lehner anti-involution.
Main definitions #
HeckeRing.GL2.heckeTCompositeGamma0: the composite element assembled over the prime factorisation ofn.
Main results #
HeckeRing.GL2.heckeTCompositeGamma0_prime_pow: on a prime power the composite is the recurrence family, with no positivity hypothesis.HeckeRing.GL2.heckeTCompositeGamma0_of_one_lt: the peeling step, as a rewriting rule.HeckeRing.GL2.heckeTCompositeGamma0_prime_pow_of_not_coprime: at a prime sharing a factor with the level the composite degenerates to a power of the generator.HeckeRing.GL2.heckeTCompositeGamma0_mul_of_coprime: the composite is multiplicative on coprime arguments,T_{mn} = T_m · T_n.HeckeRing.GL2.heckeTCompositeGamma0_mul_eq_sum_divisors_gcd: the global multiplication tableT_m · T_n = ∑_{d ∣ gcd m n} d • (S_d · T_{mn/d²}), for nonzeromandn. Named after the generic theorem it instantiates:_mulalone would read as multiplicativity in the index, which is the neighbouringheckeTCompositeGamma0_mul_of_coprime. At coprimemandnthe gcd is1and the sum collapses to itsd = 1term, recovering that lemma.HeckeRing.GL2.heckeTCompositeGamma0_mem_of_forall_prime_dvd: a subring containingT_pand the scalar cosetT(p, p)at every primep ∣ ncontainsT_n.HeckeRing.GL2.heckeTCompositeGamma0_mem_closure_coprimeDetCoset: fornprime tom,T_nlies in the subring generated by the double cosets of determinant prime tom.HeckeRing.GL2.commute_map_heckeTCompositeGamma0_of_forall_coprimeDetCoset: consequently, an element commuting with the image of every such coset under a ring homomorphism commutes with the image of everyT_nwithnprime tom.
References #
- Diamond–Shurman, A first course in modular forms, §5.3 — the multiplicative assembly
T_n = ∏_p T_{p^{v_p(n)}}this file transcribes to the ring. - G. Shimura, Introduction to the arithmetic theory of automorphic functions,
§3.3 — Theorem 3.24(3), the multiplication table that
heckeTCompositeGamma0_mul_eq_sum_divisors_gcdstates at levelΓ₀(N). - Ported from AINTLIB commit
2baa76f742bdb4fb8ee323fabba41203bd390e08, Apache-2.0, Chris Birkbeck,projects/LeanModularForms/LeanModularForms/HeckeRIngs/GL2/Unified/Gamma0RingDn.lean, declarationsheckeRingDn,heckeRingDn_ppow,heckeRingDn_peel,heckeRingDn_mul_coprimeandheckeRingDn_mul(lines 604-612, the divisor table). The source guards its block map withif hp : Nat.Prime p then … else 1because its prime-power family demands a primality proof; this file's does not, so the guard is dropped andheckeTCompositeGamma0_prime_powloses the source's0 < vhypothesis with it. The source's peeling combinatorpeelProdis generalised out of the Hecke namespace intoTauCeti.Nat.primePowerProd, where it belongs — it is combinatorics aboutNat.minFac, with no Hecke content. For coprime multiplicativity the source installs aCommRinginstance on the Hecke ring and calls itsCommMonoid-level peeling lemma; hereTauCeti.Nat.primePowerProd_mul_of_coprimeasks instead for the commutations it actually uses, so no instance is swapped in and the obligations are discharged fromHeckeCosetModule.mul_comm_of_antiInvolutiondirectly.
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.
Equations
Instances For
The defining equation of the composite: it is the ordered product of the recurrence
family over the factorisation. The body is sealed, so without this the
TauCeti.Nat.primePowerProd API — in particular the multiplicativity that arrives with
commutativity — is unreachable for it.
The junk input: 0 has no factorisation, and the empty product is the identity.
T₁ = 1: the empty product over the empty factorisation.
The peeling step: for 1 < n the composite splits off the block at the least prime
factor of n, carrying its whole multiplicity.
On a prime power the composite is the recurrence family: T_{p^v} assembled is
T_{p^v} generated.
No positivity is asked of v, unlike the general TauCeti.Nat.primePowerProd_prime_pow: at
v = 0 both sides are the identity, the left by heckeTCompositeGamma0_one and the right by
heckeTGeneratorRecGamma0_zero. That the two junk conventions agree is what lets every
consumer below drop the hypothesis.
At a prime the composite is the generator: T_p assembled is T_p. This is
TauCeti.Nat.primePowerProd_prime read through the definition. Marked @[simp] alongside
heckeTCompositeGamma0_prime_pow, which cannot fire here: a bare prime is not syntactically a
power, so without this lemma a prime input does not reduce to the generator.
When p shares a factor with the level the scalar term of the recurrence vanishes and the
composite degenerates to a power of the generator: T_{p^v} = T_p^v. This is the bad-prime
half of the classical statement, and it is unconditional in v.
Coprime multiplicativity: T_{mn} = T_m · T_n when m and n share no prime factor.
The classical multiplicative relation among the Γ₀(N) Hecke operators, at the level of the
Hecke ring. Together with heckeTCompositeGamma0_prime_pow, which identifies the composite on
a prime power with the Diamond–Shurman recurrence family, it determines T_n for every
positive n from the prime-power data: split n into its prime powers here, then evaluate
each factor there. The junk input 0 has no factorisation to split and is fixed separately by
heckeTCompositeGamma0_zero. No hypothesis relates m or n to the level — the bad primes
are already absorbed into the blocks.
The composite scalar, and the global multiplication table #
Shimura, Theorem 3.24(3) at level Γ₀(N), in full — the global multiplication table:
T_m · T_n = ∑_{d ∣ gcd m n} d • (S_d · T_{mn/d²}).
This is the composite counterpart of heckeTGeneratorRecGamma0_mul, which is the same identity
one prime at a time. At coprime m and n it specialises to
heckeTCompositeGamma0_mul_of_coprime: the gcd is 1, the sum collapses to its d = 1 term, and
S₁ = 1 leaves T_m · T_n.
Both arguments must be nonzero. heckeTCompositeGamma0 sends 0 to the empty product 1 and
gcd 0 0 = 0 has no divisors, so at m = n = 0 the left side is 1 and the right an empty sum.
Together with heckeTCompositeGamma0_prime_pow this determines every product of two composite
elements from the prime-power data. Divisors sharing a factor with the level contribute nothing,
by heckeTScalarGamma0_of_not_coprime, so the sum over all divisors of
gcd m n is the right index even though only the good ones carry weight.
Subrings containing the prime generators #
A subring containing the prime data of n contains T_n. If a subring S of the
Γ₀(N) Hecke ring contains the generator T_p and the scalar coset T(p, p) at every prime
p ∣ n, it contains heckeTCompositeGamma0 N n: each prime-power block is a polynomial in the
two by the Diamond–Shurman recurrence, and T_n is the product of its blocks.
The elements away from m lie in the subring generated by the cosets of determinant #
prime to m
The Hecke elements away from m lie in the subring generated by the double cosets of
determinant prime to m. For n coprime to m, T_n is a polynomial with integer
coefficients in the classes of double cosets Γ₀(N) α Γ₀(N) with det α prime to m.
An operator commuting with the action of every such class therefore commutes with every T_n
with n prime to m; at m = N this is how the Fricke operator is shown to commute with the good
Hecke operators, and at m = Q for an exact divisor Q of N how the Atkin–Lehner operator W_Q
is shown to commute with the T_n for n prime to Q.
Commuting with the cosets of determinant prime to m is commuting with the T_n away from
m. Under a ring homomorphism φ out of the Γ₀(N) Hecke ring, an element commuting with the
image of every double coset of determinant prime to m commutes with the image of T_n for every
n prime to m. This is how the Fricke operator (m = N) and the Atkin–Lehner operators
(m = Q) are shown to commute with the Hecke operators away from m.