LeanPool.SelbergSieve4.SieveLemmas #
Data for a finite weighted sieve problem.
Finite support of integers being sifted.
- prodPrimes : ℕ
Product of the primes used by the sieve.
- prodPrimes_squarefree : Squarefree self.prodPrimes
Nonnegative weights on the support.
- totalMass : ℝ
Main term for the weighted support.
- nu : ArithmeticFunction ℝ
Local density arithmetic function.
- nu_mult : self.nu.IsMultiplicative
Instances For
Selberg local factor product used in the simple upper-bound sieve.
Equations
- s.selbergTerms = s.nu.pmul (ArithmeticFunction.prodPrimeFactors fun (p : ℕ) => 1 / (1 - s.nu p))
Instances For
Expands selbergTerms as a product over the prime factors of d.
theorem
Sieve.squarefree_of_mem_divisors_prodPrimes
(s : Sieve)
{d : ℕ}
(hd : d ∈ s.prodPrimes.divisors)
:
theorem
Sieve.nu_ne_zero_of_mem_divisors_prodPrimes
(s : Sieve)
{d : ℕ}
(hd : d ∈ s.prodPrimes.divisors)
:
Kronecker delta at 1, valued in the reals.
Instances For
theorem
Sieve.nu_lt_self_of_dvd_prodPrimes
(s : Sieve)
(d : ℕ)
:
d ∣ s.prodPrimes → d ≠ 1 → s.nu d < 1
theorem
Sieve.one_div_selbergTerms_eq_conv_moebius_nu
(s : Sieve)
(l : ℕ)
(hl : Squarefree l)
(hnu_nonzero : s.nu l ≠ 0)
:
theorem
Sieve.conv_selbergTerms_eq_selbergTerms_mul_nu
(s : Sieve)
{d : ℕ}
(hd : d ∣ s.prodPrimes)
:
(∑ l ∈ s.prodPrimes.divisors, if l ∣ d then s.selbergTerms l else 0) = s.selbergTerms d * (s.nu d)⁻¹
theorem
Sieve.upperMoebius_of_lambda_sq
(weights : ℕ → ℝ)
(hw : weights 1 = 1)
:
UpperMoebius (lambdaSquared weights)
theorem
Sieve.lambdaSquared_mainSum_eq_diag_quad_form
(s : Sieve)
(w : ℕ → ℝ)
:
s.mainSum (lambdaSquared w) = ∑ l ∈ s.prodPrimes.divisors,
↑1 / s.selbergTerms l * (∑ d ∈ s.prodPrimes.divisors, if l ∣ d then s.nu d * w d else 0) ^ 2