LeanPool.SelbergSieve4.Selberg #
A Selberg sieve is a finite sieve together with a sieve level.
- prodPrimes : ℕ
- nu_mult : self.nu.IsMultiplicative
- level : ℝ
Sieve level.
Instances For
Selberg bounding sum over divisors below the square-root level.
Equations
- s.selbergBoundingSum = ∑ l ∈ s.prodPrimes.divisors, if ↑(l ^ 2) ≤ s.level then s.selbergTerms l else 0
Instances For
Selberg weights attached to the sieve.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
SelbergSieve.selbergWeights_eq_zero_of_not_dvd
(s : SelbergSieve)
{d : ℕ}
(hd : ¬d ∣ s.prodPrimes)
:
theorem
SelbergSieve.selbergWeights_mul_mu_nonneg
(s : SelbergSieve)
(d : ℕ)
(hdP : d ∣ s.prodPrimes)
:
theorem
SelbergSieve.selbergWeights_eq_dvds_sum
(s : SelbergSieve)
(d : ℕ)
:
s.nu d * s.selbergWeights d = s.selbergBoundingSum⁻¹ * ↑(ArithmeticFunction.moebius d) * ∑ l ∈ s.prodPrimes.divisors, if d ∣ l ∧ ↑(l ^ 2) ≤ s.level then s.selbergTerms l else 0
theorem
SelbergSieve.selbergWeights_diagonalisation
(s : SelbergSieve)
(l : ℕ)
(hl : l ∈ s.prodPrimes.divisors)
:
(∑ d ∈ s.prodPrimes.divisors, if l ∣ d then s.nu d * s.selbergWeights d else 0) = if ↑(l ^ 2) ≤ s.level then s.selbergTerms l * ↑(ArithmeticFunction.moebius l) * s.selbergBoundingSum⁻¹ else 0
Lambda-squared upper-bound weight generated by the Selberg weights.
Equations
Instances For
Upper-bound sieve induced by the Selberg weights.
Equations
- s.selbergUbSieve = { μPlus := s.selbergMuPlus, hμPlus := ⋯ }
Instances For
theorem
SelbergSieve.mainSum_eq_diag_quad_form
(s : SelbergSieve)
:
s.mainSum s.selbergMuPlus = ∑ l ∈ s.prodPrimes.divisors,
↑1 / s.selbergTerms l * (∑ d ∈ s.prodPrimes.divisors, if l ∣ d then s.nu d * s.selbergWeights d else 0) ^ 2
theorem
SelbergSieve.selberg_bound_muPlus
(s : SelbergSieve)
(n : ℕ)
(hn : n ∈ s.prodPrimes.divisors)
: