Documentation

TauCeti.NumberTheory.Padics.SerreSigns

Serre's sign functions on ℤ_2ˣ and the square classes of 2-adic units #

For a unit u of ℤ_2, Serre (A Course in Arithmetic, Chapter I, §3.2) puts

Both depend only on u mod 8: on the odd residues 1, 3, 5, 7 they take the values ε = 0, 1, 0, 1 and ω = 0, 1, 1, 0. They are the ZMod 2-valued logarithms of the characters ZMod.χ₄ and ZMod.χ₈ of Mathlib, and they are the exponents in Serre's closed formula for the Hilbert symbol over ℚ_2.

The point of ε and ω is that together they classify 2-adic units up to squares. A unit is the square of a unit exactly when it is 1 mod 8, and every unit u satisfies

u = (-1) ^ ε(u) · 5 ^ ω(u) · w²

for some unit w. Read in ℚ_2, a unit of ℤ_2 is a square of ℚ_2 exactly when it is 1 mod 8.

Main definitions #

Main results #

References #

noncomputable def TauCeti.serreEps (u : ℤ_[2]ˣ) :

Serre's ε(u) = (u − 1)/2 mod 2 for a unit u of ℤ_2, read off u mod 8. On the odd residues 1, 3, 5, 7 it takes the values 0, 1, 0, 1.

Instances For
    noncomputable def TauCeti.serreOmega (u : ℤ_[2]ˣ) :

    Serre's ω(u) = (u² − 1)/8 mod 2 for a unit u of ℤ_2, read off u mod 8. On the odd residues 1, 3, 5, 7 it takes the values 0, 1, 1, 0.

    Instances For

      ε is a homomorphism from ℤ_2ˣ to the additive group ZMod 2.

      ω is a homomorphism from ℤ_2ˣ to the additive group ZMod 2.

      ε(u) = 1 exactly when u is 3 or 7 modulo 8.

      ε(u) = 0 exactly when u is 1 or 5 modulo 8.

      ω(u) = 1 exactly when u is 3 or 5 modulo 8.

      ω(u) = 0 exactly when u is 1 or 7 modulo 8.

      5 is a unit of ℤ_2.

      theorem TauCeti.serreEps_eq_zero_of_coe_eq_five {u : ℤ_[2]ˣ} (hu : ↑u = 5) :

      ε(5) = 0, for the unit 5 of ℤ_2.

      theorem TauCeti.serreEps_eq_natCast_div_two_of_coe_eq_natCast {u : ℤ_[2]ˣ} {m : ℕ} (hu : ↑u = ↑m) :
      serreEps u = ↑(m / 2)

      ε(m) = ⌊m/2⌋ mod 2 for a unit of ℤ_2 that is a natural number m; as m is odd, this is Serre's (m − 1)/2 mod 2.

      ω(5) = 1, for the unit 5 of ℤ_2.

      @[simp]

      ε(1) = 0.

      @[simp]

      ω(1) = 0.

      theorem TauCeti.serreEps_pow (u : ℤ_[2]ˣ) (n : ℕ) :
      serreEps (u ^ n) = n • serreEps u

      ε(u ^ n) = n ε(u).

      theorem TauCeti.serreOmega_pow (u : ℤ_[2]ˣ) (n : ℕ) :

      ω(u ^ n) = n ω(u).

      @[simp]

      ε(-1) = 1.

      @[simp]

      ω(-1) = 0.

      The sign (-1) ^ ε(u) is Mathlib's character χ₄ of u mod 4.

      The sign (-1) ^ ω(u) is Mathlib's character χ₈ of u mod 8.

      ε and ω both vanish exactly on the units U^(3) that are 1 mod 8, which are the squares of ℤ_2ˣ by TauCeti.unitsPrincipal_three_eq_range_powMonoidHom_two.

      theorem TauCeti.exists_eq_neg_one_pow_mul_five_pow_mul_sq (u : ℤ_[2]ˣ) :
      ∃ (w : ℤ_[2]ˣ), ↑u = (-1) ^ (serreEps u).val * 5 ^ (serreOmega u).val * ↑w ^ 2

      The square classes of ℤ_2ˣ. Every unit u of ℤ_2 is (-1) ^ ε(u) · 5 ^ ω(u) times the square of a unit.

      Squares of 2-adic units in ℚ_2. A unit of ℤ_2 is a square in ℚ_2 exactly when it is 1 mod 8.

      -15 is a square in ℚ_2, since it is 1 mod 8.

      A unit u of ℤ_2 is a square of ℚ_2ˣ exactly when ε(u) = ω(u) = 0.