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 χ⁻¹.