Documentation

MathlibNt.AnalyticNumberTheory.LargeSieve.PrimitiveCharacters

Primitive Dirichlet characters for the multiplicative large sieve #

This module supplies the finite primitive-character and conductor interface needed before a Bombieri--Davenport large sieve can be stated faithfully. It deliberately does not state a sum over moduli: the pinned analytic-number- theory dependency has only the single-modulus all-character estimate characterSieveModulus_le.

The underlying Mathlib API already defines DirichletCharacter.conductor, DirichletCharacter.IsPrimitive, primitiveCharacter, and changeLevel. The definitions below package those heterogeneous conductor-level objects into a finite subtype that can be used directly by Finset sums. The module also constructs the standard primitive additive character on ZMod q, bridges its Gauss sums to the existing finite Fourier API, and proves both ‖τ(χ)‖ ^ 2 = q and ‖τ(χ)‖ = √q for primitive complex characters.

@[reducible, inline]

Primitive complex Dirichlet characters of the fixed modulus q.

This is a subtype rather than a new character structure, so every existing DirichletCharacter theorem applies to its coercion.

Equations
Instances For
    Inspect dependencies

    AnalyticNumberTheory.LargeSieve.PrimitiveCharacter · compiled type and proof/definition references.

    Inspect dependencies

    AnalyticNumberTheory.LargeSieve.instFintypePrimitiveCharacter · compiled type and proof/definition references.

    A positive modulus has at most its totient many primitive characters.

    Inspect dependencies

    AnalyticNumberTheory.LargeSieve.primitiveCharacter_card_le_totient_basic · compiled type and proof/definition references.

    Primitive characters as a filtered finset of all characters modulo q. This form is useful when applying an all-character estimate.

    Equations
    Instances For
      Inspect dependencies

      AnalyticNumberTheory.LargeSieve.primitiveCharacters · compiled type and proof/definition references.

      Inspect dependencies

      AnalyticNumberTheory.LargeSieve.mem_primitiveCharacters · compiled type and proof/definition references.

      @[simp]

      A member of the primitive subtype has conductor exactly its modulus.

      Inspect dependencies

      AnalyticNumberTheory.LargeSieve.primitive_conductor · compiled type and proof/definition references.

      The conductor-level primitive character associated to an arbitrary Dirichlet character, packaged in the finite primitive subtype.

      Equations
      Instances For
        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.conductorPrimitiveCharacter · compiled type and proof/definition references.

        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.conductorPrimitiveCharacter_val · compiled type and proof/definition references.

        Exact conductor decomposition: changing the conductor-level primitive character back to the original modulus recovers the original character.

        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.changeLevel_conductorPrimitiveCharacter · compiled type and proof/definition references.

        theorem AnalyticNumberTheory.LargeSieve.sum_primitive_eq_filter {q : ℕ} {β : Type u_1} [AddCommMonoid β] (f : DirichletCharacter ℂ q → β) :
        ∑ χ : PrimitiveCharacter q, f ↑χ = ∑ χ ∈ primitiveCharacters q, f χ

        A sum over the primitive subtype is the corresponding filtered sum over all characters.

        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.sum_primitive_eq_filter · compiled type and proof/definition references.

        theorem AnalyticNumberTheory.LargeSieve.sum_primitive_le_sum_all {q : ℕ} (f : DirichletCharacter ℂ q → ℝ) (hf : ∀ (χ : DirichletCharacter ℂ q), 0 ≤ f χ) :
        ∑ χ : PrimitiveCharacter q, f ↑χ ≤ ∑ χ : DirichletCharacter ℂ q, f χ

        Restricting a nonnegative all-character sum to primitive characters can only decrease it.

        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.sum_primitive_le_sum_all · compiled type and proof/definition references.

        theorem AnalyticNumberTheory.LargeSieve.characterSievePrimitiveModulus_le {q : ℕ} [NeZero q] (a : ℤ → ℂ) (M : ℤ) (N : ℕ) :
        ↑q / ↑q.totient * ∑ χ : PrimitiveCharacter q, ‖∑ n ∈ Finset.Icc (M + 1) (M + ↑N), a n * ↑χ ↑n‖ ^ 2 ≤ ∑ r ∈ Finset.range q, ‖∑ n ∈ Finset.Icc (M + 1) (M + ↑N), charReal (↑n * ↑r / ↑q) * a n‖ ^ 2

        The first primitive-character multiplicative large-sieve foundation: the pinned single-modulus all-character estimate restricts to the primitive subtype. This is intentionally only pointwise in q; it is not the missing Bombieri--Davenport sum over moduli.

        Inspect dependencies

        AnalyticNumberTheory.LargeSieve.characterSievePrimitiveModulus_le · compiled type and proof/definition references.

        Primitive Gauss sums #

        The standard primitive additive character x ↦ exp(2πix/q) on ZMod q.

        Equations
        Instances For
          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.primitiveGaussAddChar · compiled type and proof/definition references.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.primitiveGaussAddChar_apply · compiled type and proof/definition references.

          The standard additive character on ZMod q is primitive.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.primitiveGaussAddChar_isPrimitive · compiled type and proof/definition references.

          theorem AnalyticNumberTheory.LargeSieve.sum_zmod_eq_sum_range {q : ℕ} [NeZero q] {M : Type u_1} [AddCommMonoid M] (f : ZMod q → M) :
          ∑ a : ZMod q, f a = ∑ r ∈ Finset.range q, f ↑r

          Sums over ZMod q can be written using the canonical representatives 0 ≤ r < q.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.sum_zmod_eq_sum_range · compiled type and proof/definition references.

          theorem AnalyticNumberTheory.LargeSieve.zmod_fourier_energy {q : ℕ} [NeZero q] (z : ZMod q → ℂ) :
          ∑ a : ZMod q, ‖∑ x : ZMod q, charReal (↑a.val * ↑x.val / ↑q) * z x‖ ^ 2 = ↑q * ∑ x : ZMod q, ‖z x‖ ^ 2

          Finite Fourier energy identity on ZMod q, specialized to the additive character convention used by Gauss sums.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.zmod_fourier_energy · compiled type and proof/definition references.

          The squared L² mass of a complex Dirichlet character is φ(q).

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.dirichletCharacter_sum_norm_sq · compiled type and proof/definition references.

          The Gauss sum against a shifted standard additive character is its explicit finite Fourier sum.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.gaussSum_primitiveGaussAddChar_mulShift · compiled type and proof/definition references.

          Primitive complex Dirichlet characters have the classical Gauss-sum norm: |τ(χ)|² = q.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.primitive_gaussSum_norm_sq · compiled type and proof/definition references.

          Norm form of the primitive Gauss-sum identity.

          Inspect dependencies

          AnalyticNumberTheory.LargeSieve.primitive_gaussSum_norm · compiled type and proof/definition references.