Equations
- SelbergSieve.selbergTerms s = BoundingSieve.nu.pmul (ArithmeticFunction.prodPrimeFactors fun (p : ℕ) => 1 / (1 - BoundingSieve.nu p))
Instances For
- hμPlus : IsUpperMoebius self.μPlus
Instances For
Equations
- SelbergSieve.ubToμPlus = { coe := fun (ub : SelbergSieve.UpperBoundSieve) => ub.μPlus }
- hμMinus : IsLowerMoebius self.μMinus
Instances For
Equations
- SelbergSieve.lbToμMinus = { coe := fun (lb : SelbergSieve.LowerBoundSieve) => lb.μMinus }
theorem
SelbergSieve.nu_ne_zero_of_mem_divisors_prodPrimes
(s : BoundingSieve)
{d : ℕ}
(hd : d ∈ BoundingSieve.prodPrimes.divisors)
:
Instances For
theorem
SelbergSieve.nu_lt_self_of_dvd_prodPrimes
(s : BoundingSieve)
(d : ℕ)
(hdP : d ∣ BoundingSieve.prodPrimes)
(hd_ne_one : d ≠ 1)
:
theorem
SelbergSieve.selbergTerms_pos
(s : BoundingSieve)
(l : ℕ)
(hl : l ∣ BoundingSieve.prodPrimes)
:
theorem
SelbergSieve.one_div_selbergTerms_eq_conv_moebius_nu
(s : BoundingSieve)
(l : ℕ)
(hl : Squarefree l)
(hnu_nonzero : BoundingSieve.nu l ≠ 0)
:
1 / (selbergTerms s) l = ∑ d ∈ l.divisors, ↑(ArithmeticFunction.moebius (l / d)) * (BoundingSieve.nu d)⁻¹
theorem
SelbergSieve.nu_eq_conv_one_div_selbergTerms
(s : BoundingSieve)
(d : ℕ)
(hdP : d ∣ BoundingSieve.prodPrimes)
:
(BoundingSieve.nu d)⁻¹ = ∑ l ∈ BoundingSieve.prodPrimes.divisors, if l ∣ d then 1 / (selbergTerms s) l else 0
theorem
SelbergSieve.conv_selbergTerms_eq_selbergTerms_mul_nu
(s : BoundingSieve)
{d : ℕ}
(hd : d ∣ BoundingSieve.prodPrimes)
:
(∑ l ∈ BoundingSieve.prodPrimes.divisors, if l ∣ d then (selbergTerms s) l else 0) = (selbergTerms s) d * (BoundingSieve.nu d)⁻¹
theorem
SelbergSieve.siftedSum_le_mainSum_errSum_of_UpperBoundSieve
(s : BoundingSieve)
(μPlus : UpperBoundSieve)
:
theorem
SelbergSieve.upperMoebius_of_lambda_sq
(weights : ℕ → ℝ)
(hw : weights 1 = 1)
:
IsUpperMoebius (lambdaSquared weights)
theorem
SelbergSieve.lambdaSquared_mainSum_eq_quad_form
(s : BoundingSieve)
(w : ℕ → ℝ)
:
mainSum (lambdaSquared w) = ∑ d1 ∈ BoundingSieve.prodPrimes.divisors,
∑ d2 ∈ BoundingSieve.prodPrimes.divisors,
BoundingSieve.nu d1 * w d1 * BoundingSieve.nu d2 * w d2 * (BoundingSieve.nu (d1.gcd d2))⁻¹
theorem
SelbergSieve.lambdaSquared_mainSum_eq_diag_quad_form
(s : BoundingSieve)
(w : ℕ → ℝ)
:
mainSum (lambdaSquared w) = ∑ l ∈ BoundingSieve.prodPrimes.divisors,
1 / (selbergTerms s) l * (∑ d ∈ BoundingSieve.prodPrimes.divisors, if l ∣ d then BoundingSieve.nu d * w d else 0) ^ 2