Documentation

PrimeNumberTheoremAnd.Mathlib.NumberTheory.Sieve.SelbergBounds

Bounds for the Selberg sieve #

This file proves a number of results to help bound Sieve.selbergSum

Main Results #

theorem Sieve.prodDistinctPrimes_squarefree (s : Finset ) (h : ps, Nat.Prime p) :
Squarefree (∏ ps, p)
theorem Sieve.siftedSum_eq (s : SelbergSieve) (hw : is.support, s.weights i = 1) (z : ) (hz : 1 z) (hP : s.prodPrimes = primorial z⌋₊) :
s.siftedSum = (Finset.filter (fun (d : ) => ∀ (p : ), Nat.Prime pp z¬p d) s.support).card
Equations
Instances For
    theorem Sieve.prod_factors_one_div_compMult_ge (M : ) (f : ArithmeticFunction ) (hf : Sieve.CompletelyMultiplicative f) (hf_nonneg : ∀ (n : ), 0 f n) (d : ) (hd : Squarefree d) (hf_size : ∀ (n : ), Nat.Prime nn df n < 1) :
    f d * pd.primeFactors, 1 / (1 - f p) pd.primeFactors, nFinset.Icc 1 M, f (p ^ n)
    theorem Sieve.prod_factors_sum_pow_compMult (M : ) (hM : M 0) (f : ArithmeticFunction ) (hf : Sieve.CompletelyMultiplicative f) (d : ) (hd : Squarefree d) :
    pd.primeFactors, nFinset.Icc 1 M, f (p ^ n) = mFinset.filter (fun (x : ) => d x) (d ^ M).divisors, f m
    theorem Sieve.prod_primes_dvd_of_dvd (P : ) {s : Finset } (h : ps, p P) (h' : ps, Nat.Prime p) :
    ps, p P
    theorem Sieve.sqrt_le_self (x : ) (hx : 1 x) :
    x x
    theorem Sieve.Nat.squarefree_dvd_pow (a : ) (b : ) (N : ) (ha : Squarefree a) (hab : a b ^ N) :
    a b
    theorem Sieve.selbergBoundingSum_ge_sum_div (s : SelbergSieve) (hP : ∀ (p : ), Nat.Prime pp s.levelp s.prodPrimes) (hnu : Sieve.CompletelyMultiplicative s.nu) (hnu_nonneg : ∀ (n : ), 0 s.nu n) (hnu_lt : ∀ (p : ), Nat.Prime pp s.prodPrimess.nu p < 1) :
    s.selbergBoundingSum mFinset.Icc 1 s.level⌋₊, s.nu m
    theorem Sieve.boundingSum_ge_sum (s : SelbergSieve) (hnu : s.nu = (↑ArithmeticFunction.zeta).pdiv ArithmeticFunction.id) (hP : ∀ (p : ), Nat.Prime pp s.levelp s.prodPrimes) :
    s.selbergBoundingSum mFinset.Icc 1 s.level⌋₊, 1 / m
    theorem Sieve.boundingSum_ge_log (s : SelbergSieve) (hnu : s.nu = (↑ArithmeticFunction.zeta).pdiv ArithmeticFunction.id) (hP : ∀ (p : ), Nat.Prime pp s.levelp s.prodPrimes) :
    s.selbergBoundingSum Real.log s.level / 2
    theorem Sieve.rem_sum_le_of_const (s : SelbergSieve) (C : ) (hrem : d > 0, |s.rem d| C) :
    (∑ ds.prodPrimes.divisors, if d s.level then 3 ^ ArithmeticFunction.cardDistinctFactors d * |s.rem d| else 0) C * s.level * (1 + Real.log s.level) ^ 3