Selberg sieve
DefinitionSelberg level set#✓fully proved
For a bounding sieve whose sifting primes have product \(P\) and a natural number \(R\), the level-\(R\) set is the set of divisors \(l\) of \(P\) with \(l \le R\).
def levelSet (s : BoundingSieve) (R : ℕ) : Finset ℕ :=
s.prodPrimes.divisors.filter fun l ↦ l ≤ R
Used by 10
DefinitionSelberg level sum#✓fully proved
For a bounding sieve whose sifting primes have product \(P\), with multiplicative density function \(\nu\), and a natural number \(R\), the level-\(R\) Selberg sum is \(G = \sum_{l \mid P,\ l \le R} g(l)\), where \(g(l) = \nu(l) \prod_{p \mid l} (1 - \nu(p))^{-1}\), the product running over the primes \(p\) dividing \(l\).
noncomputable def levelSum (s : BoundingSieve) (R : ℕ) : ℝ :=
∑ l ∈ levelSet s R, s.selbergTerms l
def levelSet (s : BoundingSieve) (R : ℕ) : Finset ℕ :=
s.prodPrimes.divisors.filter fun l ↦ l ≤ R
MathlibExt/NumberTheory/SelbergSieve.lean:30
Uses 1 · Used by 9
DefinitionNormalized Selberg coefficients#✓fully proved
Let \(s\) be a bounding sieve with density function \(\nu\) and Selberg terms \(g(l) = \nu(l) \prod_{p \mid l} (1 - \nu(p))^{-1}\), the product running over the primes \(p\) dividing \(l\), and let \(R\) be a natural number. Write \(D_R\) for the level set of \(s\) at level \(R\) (the divisors of the sifting product of \(s\) that are at most \(R\)) and \(G(R) = \sum_{l \in D_R} g(l)\) for the level sum. The normalized Selberg coefficient of \(s\) at level \(R\) is the function on natural numbers given by \(y_l = \mu(l)\, g(l) / G(R)\) for \(l \in D_R\) and \(y_l = 0\) otherwise, where \(\mu\) is the Möbius function.
noncomputable def levelY
(s : BoundingSieve) (R l : ℕ) : ℝ :=
if l ∈ levelSet s R then
((ArithmeticFunction.moebius l : ℤ) : ℝ) * s.selbergTerms l /
levelSum s R
else 0
def levelSet (s : BoundingSieve) (R : ℕ) : Finset ℕ :=
s.prodPrimes.divisors.filter fun l ↦ l ≤ R
MathlibExt/NumberTheory/SelbergSieve.lean:30
noncomputable def levelSum (s : BoundingSieve) (R : ℕ) : ℝ :=
∑ l ∈ levelSet s R, s.selbergTerms l
MathlibExt/NumberTheory/SelbergSieve.lean:34
Uses 2 · Used by 8
DefinitionSelberg sieve weights#✓fully proved
Let \(s\) be a bounding sieve with sifting product \(P\) (the product of its sifting primes) and density function \(\nu\), let \(R\) be a natural number, and let \(y_m\) denote the normalized Selberg coefficients of \(s\) at level \(R\). For a natural number \(d\), the level-\(R\) Selberg weight of \(s\) at \(d\) is
where \(\mu\) is the Möbius function, \(m\) runs over the divisors of \(P\), and \(\nu(d)^{-1}\) is read as \(0\) when \(\nu(d) = 0\).
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
noncomputable def levelY
(s : BoundingSieve) (R l : ℕ) : ℝ :=
if l ∈ levelSet s R then
((ArithmeticFunction.moebius l : ℤ) : ℝ) * s.selbergTerms l /
levelSum s R
else 0
MathlibExt/NumberTheory/SelbergSieve.lean:38
Uses 1 · Used by 9
TheoremThe Selberg level sum is at least one#✓fully proved
For every bounding sieve and every natural number \(R \ge 1\), the level-\(R\) Selberg sum is at least \(1\).
theorem levelSum_ge_one (s : BoundingSieve) (R : ℕ)
(hR : 1 ≤ R) : 1 ≤ levelSum s R
noncomputable def levelSum (s : BoundingSieve) (R : ℕ) : ℝ :=
∑ l ∈ levelSet s R, s.selbergTerms l
MathlibExt/NumberTheory/SelbergSieve.lean:34
Uses 2 · Used by 5
TheoremInversion formula for the Selberg level weights#✓fully proved
For a bounding sieve whose sifting primes have product \(P\), with density function \(\nu\), a natural number \(R\) and a divisor \(l\) of \(P\), the level-\(R\) Selberg weights \(\lambda_d\) satisfy \(\sum_{d \mid P,\ l \mid d} \nu(d)\,\lambda_d = y_l\), where \(y_l\) is the normalized level-\(R\) Selberg \(y\)-coefficient at \(l\).
theorem levelWeights_inner (s : BoundingSieve) (R l : ℕ)
(hl : l ∣ s.prodPrimes) :
(∑ d ∈ s.prodPrimes.divisors,
if l ∣ d then s.nu d * levelWeights s R d else 0) =
levelY s R l
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
noncomputable def levelY
(s : BoundingSieve) (R l : ℕ) : ℝ :=
if l ∈ levelSet s R then
((ArithmeticFunction.moebius l : ℤ) : ℝ) * s.selbergTerms l /
levelSum s R
else 0
MathlibExt/NumberTheory/SelbergSieve.lean:38
Uses 2 · Used by 1
TheoremThe Selberg level weight at one#✓fully proved
For every bounding sieve and every natural number \(R \ge 1\), the level-\(R\) Selberg weight at \(1\) equals \(1\).
theorem levelWeights_one (s : BoundingSieve) (R : ℕ)
(hR : 1 ≤ R) : levelWeights s R 1 = 1
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
Uses 5 · Used by 2
TheoremMain term of the Selberg level weights#✓fully proved
For a bounding sieve whose sifting primes have product \(P\), with density function \(\nu\), and a natural number \(R \ge 1\), let \(\lambda_d\) be the level-\(R\) Selberg weights and \(\Lambda_d = \sum_{d_1, d_2 \mid d,\ \operatorname{lcm}(d_1, d_2) = d} \lambda_{d_1} \lambda_{d_2}\) their \(\Lambda^2\) coefficients. Then \(\sum_{d \mid P} \Lambda_d\,\nu(d) = 1/G\), where \(G\) is the level-\(R\) Selberg sum.
theorem levelWeights_mainSum (s : BoundingSieve) (R : ℕ)
(hR : 1 ≤ R) :
s.mainSum (BoundingSieve.lambdaSquared (levelWeights s R)) =
1 / levelSum s R
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
noncomputable def levelSum (s : BoundingSieve) (R : ℕ) : ℝ :=
∑ l ∈ levelSet s R, s.selbergTerms l
MathlibExt/NumberTheory/SelbergSieve.lean:34
Uses 6 · Used by 2
TheoremWeighted bound for the Selberg level weights#✓fully proved
For a bounding sieve whose sifting primes have product \(P\), with density function \(\nu\), a natural number \(R \ge 1\) and a divisor \(d\) of \(P\), the level-\(R\) Selberg weight \(\lambda_d\) at \(d\) satisfies \(|\nu(d)\,\lambda_d| \le 1\).
theorem levelWeights_nu_mul_abs_le
(s : BoundingSieve) (R d : ℕ) (hR : 1 ≤ R) (hd : d ∣ s.prodPrimes) :
|s.nu d * levelWeights s R d| ≤ 1
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
Uses 5 · Used by 1
TheoremSelberg level weights are bounded by one#✓fully proved
For a bounding sieve whose sifting primes have product \(P\), a natural number \(R \ge 1\) and a divisor \(d\) of \(P\), the level-\(R\) Selberg weight \(\lambda_d\) at \(d\) satisfies \(|\lambda_d| \le 1\).
theorem levelWeights_abs_le
(s : BoundingSieve) (R d : ℕ) (hR : 1 ≤ R) (hd : d ∣ s.prodPrimes) :
|levelWeights s R d| ≤ 1
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
Uses 5
TheoremSupport of the Selberg level weights#✓fully proved
For every bounding sieve and all natural numbers \(R\) and \(d\), if the level-\(R\) Selberg weight \(\lambda_d\) at \(d\) is nonzero, then \(d \le R\).
theorem levelWeights_support
(s : BoundingSieve) (R d : ℕ)
(hd : levelWeights s R d ≠ 0) : d ≤ R
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
Uses 4 · Used by 1
TheoremError bound for the Selberg level weights#✓fully proved
Take a bounding sieve whose sifting primes have product \(P\), with density function \(\nu\) and remainders \(r_d = A_d - \nu(d) X\), where \(A_d\) is the total weight of the multiples of \(d\) in the set to be sifted and \(X\) approximates its total weight. Let \(R \ge 1\) be a natural number and suppose that \(d\,\nu(d) \ge 1\) and \(|r_d| \le d\) for every divisor \(d\) of \(P\). Let \(\lambda_d\) be the level-\(R\) Selberg weights and \(\Lambda_d = \sum_{d_1, d_2 \mid d,\ \operatorname{lcm}(d_1, d_2) = d} \lambda_{d_1} \lambda_{d_2}\) their \(\Lambda^2\) coefficients. Then \(\sum_{d \mid P} |\Lambda_d|\,|r_d| \le R^{12}\).
theorem levelWeights_errSum_le
(s : BoundingSieve) (R : ℕ) (hR : 1 ≤ R)
(hnu : ∀ d : ℕ, d ∣ s.prodPrimes → 1 ≤ (d : ℝ) * s.nu d)
(hrem : ∀ d : ℕ, d ∣ s.prodPrimes → |s.rem d| ≤ (d : ℝ)) :
s.errSum (BoundingSieve.lambdaSquared (levelWeights s R)) ≤
(R : ℝ) ^ 12
noncomputable def levelWeights
(s : BoundingSieve) (R d : ℕ) : ℝ :=
(s.nu d)⁻¹ * ∑ m ∈ s.prodPrimes.divisors,
if d ∣ m then ((ArithmeticFunction.moebius (m / d) : ℤ) : ℝ) *
levelY s R m else 0
MathlibExt/NumberTheory/SelbergSieve.lean:47
Uses 4 · Used by 2
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.