# Documentation

Mathlib.NumberTheory.LegendreSymbol.GaussSum

# Gauss sums #

We define the Gauss sum associated to a multiplicative and an additive character of a finite field and prove some results about them.

## Main definition #

Let R be a finite commutative ring and let R' be another commutative ring. If χ is a multiplicative character R → R' (type MulChar R R') and ψ is an additive character R → R' (type AddChar R R', which abbreviates (Multiplicative R) →* R'), then the Gauss sum of χ and ψ is ∑ a, χ a * ψ a.

## Main results #

Some important results are as follows.

• gaussSum_mul_gaussSum_eq_card: The product of the Gauss sums of χ and ψ and that of χ⁻¹ and ψ⁻¹ is the cardinality of the source ring R (if χ is nontrivial, ψ is primitive and R is a field).
• gaussSum_sq: The square of the Gauss sum is χ(-1) times the cardinality of R if in addition χ is a quadratic character.
• MulChar.IsQuadratic.gaussSum_frob: For a quadratic character χ, raising the Gauss sum to the pth power (where p is the characteristic of the target ring R') multiplies it by χ p.
• Char.card_pow_card: When F and F' are finite fields and χ : F → F' is a nontrivial quadratic character, then (χ (-1) * #F)^(#F'/2) = χ #F'.
• FiniteField.two_pow_card: For every finite field F of odd characteristic, we have 2^(#F/2) = χ₈#F in F.

This machinery can be used to derive (a generalization of) the Law of Quadratic Reciprocity.

## Tags #

additive character, multiplicative character, Gauss sum

### Definition and first properties #

def gaussSum {R : Type u} [] [] {R' : Type v} [CommRing R'] (χ : MulChar R R') (ψ : AddChar R R') :
R'

Definition of the Gauss sum associated to a multiplicative and an additive character.

Instances For
theorem gaussSum_mulShift {R : Type u} [] [] {R' : Type v} [CommRing R'] (χ : MulChar R R') (ψ : AddChar R R') (a : Rˣ) :
χ a * gaussSum χ () = gaussSum χ ψ

Replacing ψ by mulShift ψ a and multiplying the Gauss sum by χ a does not change it.

### The product of two Gauss sums #

theorem gaussSum_mul_gaussSum_eq_card {R : Type u} [] [] {R' : Type v} [CommRing R'] [IsDomain R'] {χ : MulChar R R'} (hχ : ) {ψ : AddChar R R'} (hψ : ) :
gaussSum χ ψ * = ↑()

We have gaussSum χ ψ * gaussSum χ⁻¹ ψ⁻¹ = Fintype.card R when χ is nontrivial and ψ is primitive (and R is a field).

theorem gaussSum_sq {R : Type u} [] [] {R' : Type v} [CommRing R'] [IsDomain R'] {χ : MulChar R R'} (hχ₁ : ) (hχ₂ : ) {ψ : AddChar R R'} (hψ : ) :
gaussSum χ ψ ^ 2 = χ (-1) * ↑()

When χ is a nontrivial quadratic character, then the square of gaussSum χ ψ is χ(-1) times the cardinality of R.

### Gauss sums and Frobenius #

theorem gaussSum_frob {R : Type u} [] [] {R' : Type v} [CommRing R'] (p : ) [fp : Fact ()] [hch : CharP R' p] (χ : MulChar R R') (ψ : AddChar R R') :
gaussSum χ ψ ^ p = gaussSum (χ ^ p) (ψ ^ p)

When R' has prime characteristic p, then the pth power of the Gauss sum of χ and ψ is the Gauss sum of χ^p and ψ^p.

theorem MulChar.IsQuadratic.gaussSum_frob {R : Type u} [] [] {R' : Type v} [CommRing R'] (p : ) [fp : Fact ()] [hch : CharP R' p] (hp : IsUnit p) {χ : MulChar R R'} (hχ : ) (ψ : AddChar R R') :
gaussSum χ ψ ^ p = χ p * gaussSum χ ψ

For a quadratic character χ and when the characteristic p of the target ring is a unit in the source ring, the pth power of the Gauss sum ofχ and ψ is χ p times the original Gauss sum.

theorem MulChar.IsQuadratic.gaussSum_frob_iter {R : Type u} [] [] {R' : Type v} [CommRing R'] (p : ) [fp : Fact ()] [hch : CharP R' p] (n : ) (hp : IsUnit p) {χ : MulChar R R'} (hχ : ) (ψ : AddChar R R') :
gaussSum χ ψ ^ p ^ n = χ (p ^ n) * gaussSum χ ψ

For a quadratic character χ and when the characteristic p of the target ring is a unit in the source ring and n is a natural number, the p^nth power of the Gauss sum ofχ and ψ is χ (p^n) times the original Gauss sum.

### Values of quadratic characters #

theorem Char.card_pow_char_pow {R : Type u} [] [] {R' : Type v} [CommRing R'] [IsDomain R'] {χ : MulChar R R'} (hχ : ) (ψ : AddChar R R') (p : ) (n : ) [fp : Fact ()] [hch : CharP R' p] (hp : IsUnit p) (hp' : p 2) (hg : gaussSum χ ψ ^ 2 = χ (-1) * ↑()) :
(χ (-1) * ↑()) ^ (p ^ n / 2) = χ (p ^ n)

If the square of the Gauss sum of a quadratic character is χ(-1) * #R, then we get, for all n : ℕ, the relation (χ(-1) * #R) ^ (p^n/2) = χ(p^n), where p is the (odd) characteristic of the target ring R'. This version can be used when R is not a field, e.g., ℤ/8ℤ.

theorem Char.card_pow_card {F : Type u_1} [] [] {F' : Type u_2} [Field F'] [Fintype F'] {χ : MulChar F F'} (hχ₁ : ) (hχ₂ : ) (hch₁ : ringChar F' ) (hch₂ : ringChar F' 2) :
(χ (-1) * ↑()) ^ ( / 2) = χ ↑()

When F and F' are finite fields and χ : F → F' is a nontrivial quadratic character, then (χ(-1) * #F)^(#F'/2) = χ(#F').

### The quadratic character of 2 #

This section proves the following result.

For every finite field F of odd characteristic, we have 2^(#F/2) = χ₈#F in F. This can be used to show that the quadratic character of F takes the value χ₈#F at 2.

The proof uses the Gauss sum of χ₈ and a primitive additive character on ℤ/8ℤ; in this way, the result is reduced to card_pow_char_pow.

theorem FiniteField.two_pow_card {F : Type u_1} [] [] (hF : 2) :
2 ^ () = ↑(ZMod.χ₈ ↑())

For every finite field F of odd characteristic, we have 2^(#F/2) = χ₈#F in F.