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
    Instances For
      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)
      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
        Instances For

          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
            Instances For
              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
                Instances For

                  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
                    Instances For
                      noncomputable def DirichletCharacter.conductor {R : Type u_1} [CommMonoidWithZero R] {n : } (χ : DirichletCharacter R n) :

                      The minimum natural number level n through which χ factors.

                      Equations
                        Instances For
                          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
                            Instances For
                              @[deprecated DirichletCharacter.isPrimitive_one_level_zero (since := "2025-07-27")]

                              Alias of DirichletCharacter.isPrimitive_one_level_zero.

                              The primitive character associated to a Dirichlet character.

                              Equations
                                Instances For
                                  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
                                    Instances For
                                      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
                                        Instances For
                                          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
                                            Instances For
                                              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
                                                Instances For
                                                  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.