Documentation

Mathlib.NumberTheory.ArithmeticFunction.Zeta

The arithmetic function ζ #

We define ζ to be the arithmetic function with ζ n = 1 for 0 < n (whose Dirichlet series is the Riemann zeta function).

Main Definitions #

Tags #

arithmetic functions, dirichlet convolution, divisors

ζ 0 = 0, otherwise ζ x = 1. The Dirichlet Series is the Riemann ζ.

Equations
Instances For

    ζ 0 = 0, otherwise ζ x = 1. The Dirichlet Series is the Riemann ζ.

    Equations
    Instances For
      @[simp]
      theorem ArithmeticFunction.zeta_apply {x : } :
      zeta x = if x = 0 then 0 else 1
      theorem ArithmeticFunction.zeta_apply_ne {x : } (h : x 0) :
      zeta x = 1
      theorem ArithmeticFunction.coe_zeta_smul_apply {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [MulAction R M] {f : ArithmeticFunction M} {x : } :
      (zeta f) x = ix.divisors, f i
      @[simp]
      theorem ArithmeticFunction.sum_divisorsAntidiagonal_eq_sum_divisors {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [MulAction R M] {f : ArithmeticFunction M} {x : } :
      (∑ xx.divisorsAntidiagonal, if x.1 = 0 then 0 f x.2 else f x.2) = ix.divisors, f i

      @[simp]-normal form of coe_zeta_smul_apply.

      theorem ArithmeticFunction.coe_zeta_mul_apply {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} {x : } :
      (zeta * f) x = ix.divisors, f i
      theorem ArithmeticFunction.coe_mul_zeta_apply {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} {x : } :
      (f * zeta) x = ix.divisors, f i

      This is the pointwise product of ArithmeticFunctions.

      Equations
      • f.pmul g = { toFun := fun (x : ) => f x * g x, map_zero' := }
      Instances For
        @[simp]
        theorem ArithmeticFunction.pmul_apply {R : Type u_1} [MulZeroClass R] {f g : ArithmeticFunction R} {x : } :
        (f.pmul g) x = f x * g x
        theorem ArithmeticFunction.pmul_assoc {R : Type u_1} [SemigroupWithZero R] (f₁ f₂ f₃ : ArithmeticFunction R) :
        (f₁.pmul f₂).pmul f₃ = f₁.pmul (f₂.pmul f₃)
        @[simp]

        This is the pointwise power of ArithmeticFunctions.

        Equations
        Instances For
          @[simp]
          @[simp]
          theorem ArithmeticFunction.ppow_one {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} :
          f.ppow 1 = f
          @[simp]
          theorem ArithmeticFunction.ppow_apply {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} {k x : } (kpos : 0 < k) :
          (f.ppow k) x = f x ^ k
          theorem ArithmeticFunction.ppow_succ' {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} {k : } :
          f.ppow (k + 1) = f.pmul (f.ppow k)
          theorem ArithmeticFunction.ppow_succ {R : Type u_1} [Semiring R] {f : ArithmeticFunction R} {k : } {kpos : 0 < k} :
          f.ppow (k + 1) = (f.ppow k).pmul f

          This is the pointwise division of ArithmeticFunctions.

          Equations
          • f.pdiv g = { toFun := fun (n : ) => f n / g n, map_zero' := }
          Instances For
            @[simp]
            theorem ArithmeticFunction.pdiv_apply {R : Type u_1} [GroupWithZero R] (f g : ArithmeticFunction R) (n : ) :
            (f.pdiv g) n = f n / g n
            @[simp]

            This result only holds for DivisionSemirings instead of GroupWithZeros because zeta takes values in ℕ, and hence the coercion requires an AddMonoidWithOne. TODO: Generalise zeta

            Extension for ArithmeticFunction.zeta.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For