Tao Corollary 3.5: the Vinogradov-type lemma restricted to odd integers
ProvedTaoFivePrimes.vinogradov_oddLet and , and suppose for some integer , some and some with . Then for all reals ,
the sum being over the odd integers of the interval and the term at a zero of the sine being read as , in accordance with the convention .
This is the Vinogradov-type Lemma 3.4 with a factor of two saved in the block count, becoming , by restricting the summation to odd . Together with the analogous saving in Corollary 3.2 it is what allows the exponential sums of Sections 5 and 6 to be summed over the odd integers only, which is where this paper improves on the classical treatment.
Quoted input Lemma 3.4 itself is attributed in the source to Davenport and Rademacher and is not available in the ambient library, so it appears here as a hypothesis, stated in the generality the deduction requires: for every frequency admitting a rational approximation with the same denominator and error at most , every phase, and every interval.
Formalization Note The summand is written with an explicit case distinction at , so that the value there is ; the ambient convention would otherwise make the term vanish and weaken both the hypothesis and the conclusion. The odd integers of are described by integer floor bounds.
import Mathlib open Finset
theorem TaoFivePrimes.vinogradov_odd
(A B : ℝ) (alpha beta theta : ℝ) (a : ℤ) (q : ℕ) (hq : 0 < q)
(halpha : 2 * alpha = (a : ℝ) / q + beta) (hbeta : |beta| ≤ 1 / (q : ℝ) ^ 2)
(x y : ℝ) (hxy : x < y)
(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))) :
(∑ 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)|)))
≤ ((⌊(y - x) / (2 * (q : ℝ))⌋ : ℤ) + 1)
* (2 * A + (2 / Real.pi) * B * (q : ℝ) * Real.log (4 * q)) := by sorry