Greedy construction over the first `k` windows (`greedy`)
ProvedJ6Sieve.greedyGreedy construction over the first k windows.
The following holds (Lean statement, in the scope of module Solutions.J6Sieve):
theorem J6Sieve.greedy (d X H : ℕ) (A : ℕ → ℕ) (hA : ∀ i < d, A i + H ≤ X)
(hH : sieveBound d X < H) :
∀ k ≤ d, ∃ s : ℕ → ℕ, (∀ i < k, rough (zz d X) (s i) ∧ A i < s i ∧ s i ≤ A i + H) ∧
∀ i < k, ∀ j < k, i ≠ j → Nat.Coprime (s i) (s j)
Context. J6Sieve: pairwise coprime odd numbers in short windows
Elementary (Brun pure sieve + greedy) construction: if d windows (A_i, A_i + H] lie in
(0, X] and H > sieveBound d X, one can choose odd, pairwise coprime s_i in them.
sieveBound d X < 2 ^ (4 * (log₂ (4 (d (log₂ X + 1) + 1)) + 2)^2).
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction. import Definitions.Def_IntMul_Kappa_R6_Defs1 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open J6Sieve open Finset
theorem J6Sieve.greedy (d X H : ℕ) (A : ℕ → ℕ) (hA : ∀ i < d, A i + H ≤ X)
(hH : sieveBound d X < H) :
∀ k ≤ d, ∃ s : ℕ → ℕ, (∀ i < k, rough (zz d X) (s i) ∧ A i < s i ∧ s i ≤ A i + H) ∧
∀ i < k, ∀ j < k, i ≠ j → Nat.Coprime (s i) (s j) := by sorry