Tao Theorem 5.1: the Type I estimate (with corrected constants)
ProvedTaoFivePrimes.typeI_estimateLet , let be coprime to , and let with . Let , let , and let . Suppose a nonnegative weight obeys, for every , the pointwise bound
(with the value where the sine vanishes). Then
This is the Type I estimate of the source's minor-arc theorem. In the application is the length of the divisor range, , , and is the modulus of the inner exponential sum , whose pointwise bound is what Corollary 3.2 supplies. The two pieces are the small divisors , where the frequency is bounded away from the integers so the reciprocal-sine weight never exceeds , and the remaining range, cut into blocks of length on each of which the weight is frozen at the left endpoint and the odd-restricted Vinogradov-type lemma is applied once.
Deviation from the source The source's corresponding display is
which its own chain does not give, for two independent reasons. First, the integral test it invokes drops an additive constant: the term of alone equals , so the claimed bound fails whenever (at , the two sides are and ). Second, its per-block application of Corollary 3.5 uses the factor where the corollary gives , the blocks having length exactly . The bound above is what the chain actually yields: the logarithm gains the additive , the leading coefficient is rather than , and the block constant doubles. Nothing here contradicts the source's Theorem 5.1, whose statement carries further terms; only the intermediate Type I display is affected.
Formalization Note The divisor range is the odd integers of . The truncation parameters are kept abstract as and rather than specialized to and . At the zeros of the sine the weight takes the value of the first argument of the minimum, which is the source's convention. The Vinogradov-type lemma of the source (its Lemma 3.4) is carried as the hypothesis hvino, quantified over the truncation level because the blocks use different ones; the odd-restricted Corollary 3.5 is imported and applied to it.
import Mathlib open Finset
theorem TaoFivePrimes.typeI_estimate
(alpha beta : ℝ) (a : ℤ) (q : ℕ) (hq : 2 ≤ q) (haq : Nat.Coprime a.natAbs q)
(halpha : 4 * alpha = (a : ℝ) / q + beta) (hbeta : |beta| ≤ 1 / (q : ℝ) ^ 2)
(x M Lx Cb : ℝ) (hx : 0 < x) (hLx : 0 ≤ Lx) (hCb : 0 ≤ Cb) (hM : (q : ℝ) / 2 ≤ M)
(hvino : ∀ (A' 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' (Cb / |Real.sin (Real.pi * alpha' * (n : ℝ) + theta')|)))
≤ ((⌊(v - u) / (q : ℝ)⌋ : ℤ) + 1)
* (2 * A' + (2 / Real.pi) * Cb * (q : ℝ) * Real.log (4 * q)))
(W : ℤ → ℝ) (hW0 : ∀ d, 0 ≤ W d)
(hWb : ∀ d : ℤ, 1 ≤ d → (d : ℝ) ≤ M →
W d ≤ (if Real.sin (Real.pi * (2 * alpha) * (d : ℝ)) = 0 then
(1 / 2) * (x / (d : ℝ)) * Lx + Cb
else min ((1 / 2) * (x / (d : ℝ)) * Lx + Cb)
(Cb / |Real.sin (Real.pi * (2 * alpha) * (d : ℝ))|))) :
(∑ d ∈ (Finset.Ioc (0 : ℤ) ⌊M⌋).filter (fun d : ℤ => Odd d), W d)
≤ (2 * (q : ℝ) * Cb + (1 / Real.pi) * Cb * (q : ℝ) * Real.log (4 * q))
+ ((x / q) * Lx * (Real.log (2 * M / q + 4) + 4)
+ ((⌊M / (2 * (q : ℝ)) - 1 / 4⌋₊ : ℝ) + 1)
* (4 * Cb + (4 / Real.pi) * Cb * (q : ℝ) * Real.log (4 * q))) := by sorry