Zulip Chat Archive
Stream: PR reviews
Topic: Orthogonality of Dirichlet characters
Michael Stoll (Nov 05 2024 at 15:28):
I am starting a series of PRs with the goal of getting the following statement into Mathlib:
theorem sum_char_inv_mul_char_eq [HasEnoughRootsOfUnity R n.totient] {a : ZMod n}
(ha : IsUnit a) (b : ZMod n) :
∑ χ : DirichletCharacter R n, χ a⁻¹ * χ b = if a = b then n.totient else 0 := by
This is a requirement for Dirichlet's Theorem on primes in AP (and useful beyond that).
The overall plan is to do it in stages:
- results for finite cyclic groups
- results for finite abelian groups
- results for multiplicative characters
- results for Dirichlet characters
The "results" of the kind Hom(G, G') ≃* G
and related, where the target G'
"has enough roots of unity". See the Orthogonality file in EulerProducts for the complete development (~500 loc).
The first installment is #18659, which establishes a multiplicative version of the classification theorem for finite abelian groups (this helps in going from 1. to 2. above). Reviews are welcome!
Michael Stoll (Nov 05 2024 at 19:38):
The next one is #18669; it splits RingTheory.RootsOfUnity.Basic
into two files: RingTheory.RootsOfUnity.Basic
(~ first quarter) and RingTheory.RootsOfUnity.PrimitiveRoots
(the remaining three quarters). The natural splitting point is where primitive roots of unity are introduced.
This is in preparation for adding more material; the current Basic
file has already close to 1000 lines.
Riccardo Brasca (Nov 05 2024 at 19:57):
Merging it.
Michael Stoll (Nov 05 2024 at 21:40):
#18673 adds some API around Pi.mulSingle
, which is helpful for dealing with products (this is used in deriving results for general finite abelian groups from results on cyclic groups).
Michael Stoll (Nov 05 2024 at 21:48):
#18675 adds NeZero
instances for Monoid.exponent G
and n.totient
, which are convenient for the later development.
Michael Stoll (Nov 05 2024 at 23:43):
#18681 introduces the class HasEnoughRootsOfUnity
, which is the property we need for targets of Hom
groups to give a workable notion of duality.
Michael Stoll (Nov 06 2024 at 10:17):
After the preparations, #18687 now deals with point 1 above (results for cyclic groups).
Michael Stoll (Nov 07 2024 at 08:48):
:ping_pong: #18687 has an approving review. Is there more to be done?
Michael Stoll (Nov 07 2024 at 13:12):
#18729 is again a preparatory PR: it moves GroupTheory.FiniteAbelian
as GroupTheory.FiniteAbelian.Basic
to a new folder, so that I can add a new file GroupTheory.FiniteAbelian.Duality
with new material (that requires more imports) in the next PR.
BTW, thanks for merging these PRs quickly!
Michael Stoll (Nov 07 2024 at 20:39):
#18738 is now dealing with point 2 above (duality for finite abelian groups). It adds a new file GroupTheory.FiniteAbelian.Duality
(and has some minor fixes of documentation and a missing namespace).
Riccardo Brasca (Nov 07 2024 at 21:07):
Having a look
Michael Stoll (Nov 08 2024 at 10:13):
#18759 adds an instance HasEnoughRootsOfUnity F n
when F
is an algebraically closed field and n
is not divisible by the characteristic of F
. In particular, this provides HasEnoughRootsOfUnity ℂ n
for all nonzero n
, which will be needed for Dirichlet's Theorem and should also be useful for #15999.
Michael Stoll (Nov 08 2024 at 10:38):
#18760 does step 3 above (duality for multiplicative characters).
Michael Stoll (Nov 08 2024 at 10:39):
@Yaël Dillies I will look at #15999 later today, after #18759 is merged (so that I can try to use it for golfing).
Yaël Dillies (Nov 08 2024 at 10:39):
Amazing!
Michael Stoll (Nov 08 2024 at 16:55):
Michael Stoll said:
#18760 does step 3 above (duality for multiplicative characters).
:ping_pong:
Michael Stoll (Nov 08 2024 at 21:23):
#18777 is now the last step, culminating in the statement given in the first message of this thread.
Last updated: May 02 2025 at 03:31 UTC