Tao Corollary 3.5 at the sharp block count: the single-block odd estimate
ProvedTaoFivePrimes.theorem51_cor35_sharp_blockCorollary 3.5 at the sharp block count. Let , , with and , and . Assume the source's single-block Vinogradov estimate: for every and every with ,
a term with vanishing sine contributing . Let with — that is, a range of width at most . Then the odd integers of that range satisfy
with block count one, not the two that the published would give.
Why the count is one. Substituting turns the odd integers of a range of width into all integers of a range of width , with frequency and phase . The single-block estimate above is then applied once. The covering count over-counts by exactly one whenever , and it is precisely the case that occurs here; carrying the published count instead doubles the constant, from to , in the Type I estimate of the source's Section 5.2.
Role. This is the sharpened form of TaoFivePrimes.vinogradov_odd: same odd restriction, but stated on a range of the admissible width with the block count kept at one. It is the input that Tao's Section 5.2 block argument actually uses when he writes and later over blocks of width exactly .
import Mathlib open Finset
theorem TaoFivePrimes.theorem51_cor35_sharp_block
(A B : ℝ) (alpha beta theta : ℝ) (a : ℤ) (q : ℕ) (hq : 0 < q)
(halpha : 2 * alpha = (a : ℝ) / q + beta) (hbeta : |beta| ≤ 1 / (q : ℝ) ^ 2)
(hA : 0 ≤ A) (hB : 0 ≤ B)
(hvino : ∀ (alpha' beta' theta' u v : ℝ) (a' : ℤ),
alpha' = (a' : ℝ) / q + beta' → |beta'| ≤ 1 / (q : ℝ) ^ 2 → u < v →
(∑ n ∈ Finset.Ioc ⌊u⌋ ⌊v⌋,
(if Real.sin (Real.pi * alpha' * (n : ℝ) + theta') = 0 then A
else min A (B / |Real.sin (Real.pi * alpha' * (n : ℝ) + theta')|)))
≤ ((⌊(v - u) / (q : ℝ)⌋ : ℤ) + 1)
* (2 * A + (2 / Real.pi) * B * (q : ℝ) * Real.log (4 * q)))
(x y : ℝ) (hwidth : y ≤ x + 2 * (q : ℝ)) :
(∑ n ∈ (Finset.Ioc ⌊x⌋ ⌊y⌋).filter (fun n : ℤ => Odd n),
(if Real.sin (Real.pi * alpha * (n : ℝ) + theta) = 0 then A
else min A (B / |Real.sin (Real.pi * alpha * (n : ℝ) + theta)|)))
≤ 2 * A + (2 / Real.pi) * B * (q : ℝ) * Real.log (4 * q) := by sorry