Gauss sums for Dirichlet characters #
theorem
factorsThrough_of_gaussSum_ne_zero
{N : โ}
[NeZero N]
{R : Type u_1}
[CommRing R]
(e : AddChar (ZMod N) R)
[IsDomain R]
{ฯ : DirichletCharacter R N}
{d : โ}
(hd : d โฃ N)
(he : e.mulShift โd = 1)
(h_ne : gaussSum ฯ e โ 0)
:
ฯ.FactorsThrough d
If gaussSum ฯ e โ 0, and d is such that e.mulShift d = 1, then ฯ must factor through
d. (This will be used to show that Gauss sums vanish when ฯ is primitive and e is not.)
theorem
gaussSum_eq_zero_of_isPrimitive_of_not_isPrimitive
{N : โ}
[NeZero N]
{R : Type u_1}
[CommRing R]
(e : AddChar (ZMod N) R)
[IsDomain R]
{ฯ : DirichletCharacter R N}
(hฯ : ฯ.IsPrimitive)
(he : ยฌe.IsPrimitive)
:
If ฯ is primitive, but e is not, then gaussSum ฯ e = 0.
theorem
gaussSum_mulShift_of_isPrimitive
{N : โ}
[NeZero N]
{R : Type u_1}
[CommRing R]
(e : AddChar (ZMod N) R)
[IsDomain R]
{ฯ : DirichletCharacter R N}
(hฯ : ฯ.IsPrimitive)
(a : ZMod N)
:
If ฯ is a primitive character, then the function a โฆ gaussSum ฯ (e.mulShift a), for any
fixed additive character e, is a constant multiple of ฯโปยน.