The Selberg Sieve #
This file proves selberg_bound_simple
, the main theorem of the Selberg.
Equations
- s.selbergBoundingSum = ∑ l ∈ BoundingSieve.prodPrimes.divisors, if ↑l ^ 2 ≤ SelbergSieve.level then (SelbergSieve.selbergTerms s.toBoundingSieve) l else 0
Instances For
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 ∣ BoundingSieve.prodPrimes)
:
theorem
SelbergSieve.selbergWeights_mul_mu_nonneg
(s : SelbergSieve)
(d : ℕ)
(hdP : d ∣ BoundingSieve.prodPrimes)
:
theorem
SelbergSieve.selbergWeights_eq_dvds_sum
(s : SelbergSieve)
(d : ℕ)
:
BoundingSieve.nu d * s.selbergWeights d = s.selbergBoundingSum⁻¹ * ↑(ArithmeticFunction.moebius d) * ∑ l ∈ BoundingSieve.prodPrimes.divisors, if d ∣ l ∧ ↑l ^ 2 ≤ level then (selbergTerms s.toBoundingSieve) l else 0
theorem
SelbergSieve.selbergWeights_diagonalisation
(s : SelbergSieve)
(l : ℕ)
(hl : l ∈ BoundingSieve.prodPrimes.divisors)
:
(∑ d ∈ BoundingSieve.prodPrimes.divisors, if l ∣ d then BoundingSieve.nu d * s.selbergWeights d else 0) = if ↑l ^ 2 ≤ level then (selbergTerms s.toBoundingSieve) l * ↑(ArithmeticFunction.moebius l) * s.selbergBoundingSum⁻¹
else 0
Equations
Instances For
Equations
- s.selbergUbSieve = { μPlus := s.selbergMuPlus, hμPlus := ⋯ }
Instances For
theorem
SelbergSieve.mainSum_eq_diag_quad_form
(s : SelbergSieve)
:
mainSum s.selbergMuPlus = ∑ l ∈ BoundingSieve.prodPrimes.divisors,
1 / (selbergTerms s.toBoundingSieve) l * (∑ d ∈ BoundingSieve.prodPrimes.divisors, if l ∣ d then BoundingSieve.nu d * s.selbergWeights d else 0) ^ 2
theorem
SelbergSieve.selbergBoundingSum_ge
(s : SelbergSieve)
{d : ℕ}
(hdP : d ∣ BoundingSieve.prodPrimes)
:
theorem
SelbergSieve.selberg_bound_muPlus
(s : SelbergSieve)
(n : ℕ)
(hn : n ∈ BoundingSieve.prodPrimes.divisors)
: