# Documentation

Mathlib.NumberTheory.LegendreSymbol.ZModChar

# Quadratic characters on ℤ/nℤ #

This file defines some quadratic characters on the rings ℤ/4ℤ and ℤ/8ℤ.

We set them up to be of type MulChar (ZMod n) ℤ, where n is 4 or 8.

## Tags #

### Quadratic characters mod 4 and 8 #

We define the primitive quadratic characters χ₄on ZMod 4 and χ₈, χ₈' on ZMod 8.

@[simp]
theorem ZMod.χ₄_apply :
∀ (a : Fin ()), ZMod.χ₄ a = Matrix.vecCons 0 ![1, 0, -1] a

Define the nontrivial quadratic character on ZMod 4, χ₄. It corresponds to the extension ℚ(√-1)/ℚ.

Instances For

χ₄ takes values in {0, 1, -1}

theorem ZMod.χ₄_nat_mod_four (n : ) :
ZMod.χ₄ n = ZMod.χ₄ ↑(n % 4)

The value of χ₄ n, for n : ℕ, depends only on n % 4.

theorem ZMod.χ₄_int_mod_four (n : ) :
ZMod.χ₄ n = ZMod.χ₄ ↑(n % 4)

The value of χ₄ n, for n : ℤ, depends only on n % 4.

theorem ZMod.χ₄_int_eq_if_mod_four (n : ) :
ZMod.χ₄ n = if n % 2 = 0 then 0 else if n % 4 = 1 then 1 else -1

An explicit description of χ₄ on integers / naturals

theorem ZMod.χ₄_nat_eq_if_mod_four (n : ) :
ZMod.χ₄ n = if n % 2 = 0 then 0 else if n % 4 = 1 then 1 else -1
theorem ZMod.χ₄_eq_neg_one_pow {n : } (hn : n % 2 = 1) :
ZMod.χ₄ n = (-1) ^ (n / 2)

Alternative description of χ₄ n for odd n : ℕ in terms of powers of -1

theorem ZMod.χ₄_nat_one_mod_four {n : } (hn : n % 4 = 1) :
ZMod.χ₄ n = 1

If n % 4 = 1, then χ₄ n = 1.

theorem ZMod.χ₄_nat_three_mod_four {n : } (hn : n % 4 = 3) :
ZMod.χ₄ n = -1

If n % 4 = 3, then χ₄ n = -1.

theorem ZMod.χ₄_int_one_mod_four {n : } (hn : n % 4 = 1) :
ZMod.χ₄ n = 1

If n % 4 = 1, then χ₄ n = 1.

theorem ZMod.χ₄_int_three_mod_four {n : } (hn : n % 4 = 3) :
ZMod.χ₄ n = -1

If n % 4 = 3, then χ₄ n = -1.

theorem ZMod.neg_one_pow_div_two_of_one_mod_four {n : } (hn : n % 4 = 1) :
(-1) ^ (n / 2) = 1

If n % 4 = 1, then (-1)^(n/2) = 1.

theorem ZMod.neg_one_pow_div_two_of_three_mod_four {n : } (hn : n % 4 = 3) :
(-1) ^ (n / 2) = -1

If n % 4 = 3, then (-1)^(n/2) = -1.

@[simp]
theorem ZMod.χ₈_apply :
∀ (a : Fin ()), ZMod.χ₈ a = Matrix.vecCons 0 ![1, 0, -1, 0, -1, 0, 1] a

Define the first primitive quadratic character on ZMod 8, χ₈. It corresponds to the extension ℚ(√2)/ℚ.

Instances For

χ₈ takes values in {0, 1, -1}

theorem ZMod.χ₈_nat_mod_eight (n : ) :
ZMod.χ₈ n = ZMod.χ₈ ↑(n % 8)

The value of χ₈ n, for n : ℕ, depends only on n % 8.

theorem ZMod.χ₈_int_mod_eight (n : ) :
ZMod.χ₈ n = ZMod.χ₈ ↑(n % 8)

The value of χ₈ n, for n : ℤ, depends only on n % 8.

theorem ZMod.χ₈_int_eq_if_mod_eight (n : ) :
ZMod.χ₈ n = if n % 2 = 0 then 0 else if n % 8 = 1 n % 8 = 7 then 1 else -1

An explicit description of χ₈ on integers / naturals

theorem ZMod.χ₈_nat_eq_if_mod_eight (n : ) :
ZMod.χ₈ n = if n % 2 = 0 then 0 else if n % 8 = 1 n % 8 = 7 then 1 else -1
@[simp]
theorem ZMod.χ₈'_apply :
∀ (a : Fin ()), ZMod.χ₈' a = Matrix.vecCons 0 ![1, 0, 1, 0, -1, 0, -1] a

Define the second primitive quadratic character on ZMod 8, χ₈'. It corresponds to the extension ℚ(√-2)/ℚ.

Instances For

χ₈' takes values in {0, 1, -1}

theorem ZMod.χ₈'_int_eq_if_mod_eight (n : ) :
ZMod.χ₈' n = if n % 2 = 0 then 0 else if n % 8 = 1 n % 8 = 3 then 1 else -1

An explicit description of χ₈' on integers / naturals

theorem ZMod.χ₈'_nat_eq_if_mod_eight (n : ) :
ZMod.χ₈' n = if n % 2 = 0 then 0 else if n % 8 = 1 n % 8 = 3 then 1 else -1

The relation between χ₄, χ₈ and χ₈'