Documentation

Mathlib.NumberTheory.DirichletCharacter.Basic

Dirichlet Characters #

Let R be a commutative monoid with zero. A Dirichlet character χ of level n over R is a multiplicative character from ZMod n to R sending non-units to 0. We then obtain some properties of toUnitHom χ, the restriction of χ to a group homomorphism (ZMod n)ˣ →* Rˣ.

Main definitions:

Tags #

dirichlet character, multiplicative character

Definitions #

@[reducible, inline]
abbrev DirichletCharacter (R : Type u_1) [CommMonoidWithZero R] (n : ) :
Type u_1

The type of Dirichlet characters of level n.

Equations
theorem DirichletCharacter.toUnitHom_eq_char' {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) {a : ZMod n} (ha : IsUnit a) :
χ a = ((MulChar.toUnitHom χ) ha.unit)
@[deprecated DirichletCharacter.toUnitHom_inj (since := "2024-12-29")]

Alias of DirichletCharacter.toUnitHom_inj.

theorem DirichletCharacter.eval_modulus_sub {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) (x : ZMod n) :
χ (n - x) = χ (-x)

Changing levels #

noncomputable def DirichletCharacter.changeLevel {R : Type u_1} [CommMonoidWithZero R] {n m : } (hm : n m) :

A function that modifies the level of a Dirichlet character to some multiple of its original level.

Equations

The changeLevel map is injective (except in the degenerate case m = 0).

@[simp]
theorem DirichletCharacter.changeLevel_eq_one_iff {R : Type u_1} [CommMonoidWithZero R] {n m : } {χ : DirichletCharacter R n} (hm : n m) [NeZero m] :
(changeLevel hm) χ = 1 χ = 1
@[simp]
theorem DirichletCharacter.changeLevel_trans {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) {m d : } (hm : n m) (hd : m d) :
(changeLevel ) χ = (changeLevel hd) ((changeLevel hm) χ)
theorem DirichletCharacter.changeLevel_eq_cast_of_dvd {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) {m : } (hm : n m) (a : (ZMod m)ˣ) :
((changeLevel hm) χ) a = χ (↑a).cast

χ of level n factors through a Dirichlet character χ₀ of level d if d ∣ n and χ₀ = χ ∘ (ZMod n → ZMod d).

Equations
theorem DirichletCharacter.FactorsThrough.dvd {R : Type u_1} [CommMonoidWithZero R] {n : } {χ : DirichletCharacter R n} {d : } (h : χ.FactorsThrough d) :
d n

The fact that d divides n when χ factors through a Dirichlet character at level d

noncomputable def DirichletCharacter.FactorsThrough.χ₀ {R : Type u_1} [CommMonoidWithZero R] {n : } {χ : DirichletCharacter R n} {d : } (h : χ.FactorsThrough d) :

The Dirichlet character at level d through which χ factors

Equations

The fact that χ factors through χ₀ of level d

The character of level d through which χ factors is uniquely determined.

A Dirichlet character χ factors through d | n iff its associated unit-group hom is trivial on the kernel of ZMod.unitsMap.

Edge cases #

theorem DirichletCharacter.level_one' {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) (hn : n = 1) :
χ = 1
theorem DirichletCharacter.map_zero' {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) (hn : n 1) :
χ 0 = 0

A Dirichlet character of modulus ≠ 1 maps 0 to 0.

theorem DirichletCharacter.changeLevel_one {R : Type u_1} [CommMonoidWithZero R] {n d : } (h : d n) :
(changeLevel h) 1 = 1

The conductor #

The set of natural numbers d such that χ factors through a character of level d.

Equations
noncomputable def DirichletCharacter.conductor {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) :

The minimum natural number level n through which χ factors.

Equations
theorem DirichletCharacter.conductor_one {R : Type u_1} [CommMonoidWithZero R] {n : } (hn : n 0) :

The conductor of the trivial character is 1.

A character is primitive if its level is equal to its conductor.

Equations

The primitive character associated to a Dirichlet character.

Equations
noncomputable def DirichletCharacter.mul {R : Type u_1} [CommMonoidWithZero R] {n m : } (χ₁ : DirichletCharacter R n) (χ₂ : DirichletCharacter R m) :

Dirichlet character associated to multiplication of Dirichlet characters, after changing both levels to the same

Equations
noncomputable def DirichletCharacter.primitive_mul {R : Type u_1} [CommMonoidWithZero R] {n m : } (χ₁ : DirichletCharacter R n) (χ₂ : DirichletCharacter R m) :

Primitive character associated to multiplication of Dirichlet characters, after changing both levels to the same

Equations
def DirichletCharacter.Odd {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) :

A Dirichlet character is odd if its value at -1 is -1.

Equations
def DirichletCharacter.Even {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) :

A Dirichlet character is even if its value at -1 is 1.

Equations
theorem DirichletCharacter.Even.not_odd {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) [NeZero 2] ( : ψ.Even) :
theorem DirichletCharacter.Odd.not_even {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) [NeZero 2] ( : ψ.Odd) :
theorem DirichletCharacter.Odd.toUnitHom_eval_neg_one {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) ( : ψ.Odd) :
(MulChar.toUnitHom ψ) (-1) = -1
theorem DirichletCharacter.Odd.eval_neg {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) (x : ZMod m) ( : ψ.Odd) :
ψ (-x) = -ψ x
theorem DirichletCharacter.Even.eval_neg {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) (x : ZMod m) ( : ψ.Even) :
ψ (-x) = ψ x
theorem DirichletCharacter.Even.to_fun {S : Type u_2} [CommRing S] {m : } {χ : DirichletCharacter S m} ( : χ.Even) :

An even Dirichlet character is an even function.

theorem DirichletCharacter.Odd.to_fun {S : Type u_2} [CommRing S] {m : } {χ : DirichletCharacter S m} ( : χ.Odd) :

An odd Dirichlet character is an odd function.