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)
    @[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
    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

                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] (hψ : ψ.Even) :
                          theorem DirichletCharacter.Odd.not_even {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) [NeZero 2] (hψ : ψ.Odd) :
                          theorem DirichletCharacter.Odd.toUnitHom_eval_neg_one {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) (hψ : ψ.Odd) :
                          (MulChar.toUnitHom ψ) (-1) = -1
                          theorem DirichletCharacter.Odd.eval_neg {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) (x : ZMod m) (hψ : ψ.Odd) :
                          ψ (-x) = -ψ x
                          theorem DirichletCharacter.Even.eval_neg {S : Type u_2} [CommRing S] {m : } (ψ : DirichletCharacter S m) (x : ZMod m) (hψ : ψ.Even) :
                          ψ (-x) = ψ x
                          theorem DirichletCharacter.Even.to_fun {S : Type u_2} [CommRing S] {m : } {χ : DirichletCharacter S m} (hχ : χ.Even) :

                          An even Dirichlet character is an even function.

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

                          An odd Dirichlet character is an odd function.