Bounds for the Selberg sieve #
This file proves a number of results to help bound Sieve.selbergSum
Main Results #
selbergBoundingSum_ge_sum_div
: Ifν
is completely multiplicative thenS ≥ ∑_{n ≤ √y}, ν n
boundingSum_ge_log
: Ifν n = 1 / n
thenS ≥ log y / 2
rem_sum_le_of_const
: IfR_d ≤ C
then the error term is at mostC * y * (1 + log y)^3
theorem
Sieve.prodDistinctPrimes_squarefree
(s : Finset ℕ)
(h : ∀ p ∈ s, Nat.Prime p)
:
Squarefree (∏ p ∈ s, p)
theorem
Sieve.siftedSum_eq
(s : SelbergSieve)
(hw : ∀ i ∈ BoundingSieve.support, BoundingSieve.weights i = 1)
(z : ℝ)
(hz : 1 ≤ z)
(hP : BoundingSieve.prodPrimes = primorial ⌊z⌋₊)
:
SelbergSieve.siftedSum = ↑{d ∈ BoundingSieve.support | ∀ (p : ℕ), Nat.Prime p → ↑p ≤ z → ¬p ∣ d}.card
Instances For
theorem
Sieve.CompletelyMultiplicative.pmul
(f g : ArithmeticFunction ℝ)
(hf : CompletelyMultiplicative f)
(hg : CompletelyMultiplicative g)
:
CompletelyMultiplicative (f.pmul g)
theorem
Sieve.CompletelyMultiplicative.pdiv
{f g : ArithmeticFunction ℝ}
(hf : CompletelyMultiplicative f)
(hg : CompletelyMultiplicative g)
:
CompletelyMultiplicative (f.pdiv g)
theorem
Sieve.CompletelyMultiplicative.isMultiplicative
{f : ArithmeticFunction ℝ}
(hf : CompletelyMultiplicative f)
:
theorem
Sieve.CompletelyMultiplicative.apply_pow
(f : ArithmeticFunction ℝ)
(hf : CompletelyMultiplicative f)
(a n : ℕ)
:
theorem
Sieve.prod_factors_one_div_compMult_ge
(M : ℕ)
(f : ArithmeticFunction ℝ)
(hf : CompletelyMultiplicative f)
(hf_nonneg : ∀ (n : ℕ), 0 ≤ f n)
(d : ℕ)
(hd : Squarefree d)
(hf_size : ∀ (n : ℕ), Nat.Prime n → n ∣ d → f n < 1)
:
theorem
Sieve.prod_factors_sum_pow_compMult
(M : ℕ)
(hM : M ≠ 0)
(f : ArithmeticFunction ℝ)
(hf : CompletelyMultiplicative f)
(d : ℕ)
(hd : Squarefree d)
:
theorem
Sieve.selbergBoundingSum_ge_sum_div
(s : SelbergSieve)
(hP : ∀ (p : ℕ), Nat.Prime p → ↑p ≤ SelbergSieve.level → p ∣ BoundingSieve.prodPrimes)
(hnu : CompletelyMultiplicative BoundingSieve.nu)
(hnu_nonneg : ∀ (n : ℕ), 0 ≤ BoundingSieve.nu n)
(hnu_lt : ∀ (p : ℕ), Nat.Prime p → p ∣ BoundingSieve.prodPrimes → BoundingSieve.nu p < 1)
:
theorem
Sieve.boundingSum_ge_sum
(s : SelbergSieve)
(hnu : BoundingSieve.nu = (↑ArithmeticFunction.zeta).pdiv ↑ArithmeticFunction.id)
(hP : ∀ (p : ℕ), Nat.Prime p → ↑p ≤ SelbergSieve.level → p ∣ BoundingSieve.prodPrimes)
:
theorem
Sieve.boundingSum_ge_log
(s : SelbergSieve)
(hnu : BoundingSieve.nu = (↑ArithmeticFunction.zeta).pdiv ↑ArithmeticFunction.id)
(hP : ∀ (p : ℕ), Nat.Prime p → ↑p ≤ SelbergSieve.level → p ∣ BoundingSieve.prodPrimes)
:
theorem
Sieve.rem_sum_le_of_const
(s : SelbergSieve)
(C : ℝ)
(hrem : ∀ d > 0, |SelbergSieve.rem d| ≤ C)
:
(∑ d ∈ BoundingSieve.prodPrimes.divisors,
if ↑d ≤ SelbergSieve.level then 3 ^ ArithmeticFunction.cardDistinctFactors d * |SelbergSieve.rem d| else 0) ≤ C * SelbergSieve.level * (1 + Real.log SelbergSieve.level) ^ 3