Runs of multiples: the lower bound via the "matching construction" #
This file formalises §3 ("A matching construction") of docs/first-missing-multiple.pdf.
For y ≥ 2 let
small y= primesp ≤ √y(encoded asp * p ≤ y),q = #small y;large y= primes in(√y, y](encoded asy < p * p,p ≤ y),m = #large y;L = ⌊log₂ y⌋ = Nat.log 2 y,H = 2 q L.
S_y is the set of integers ∏_{p ≤ √y} p ^ u_p * ∏_{√y < p ≤ y} p ^ v_p with
0 ≤ u_p ≤ H and ∑ v_p ≤ m. We represent exponent vectors as finsupps ℕ →₀ ℕ and
the number as f.prod (· ^ ·). The small-prime part ranges over smallExp y H
(Finset.finsupp), the large-prime part over largeExp y m: finsupps supported on
insert 1 (large y) with total sum exactly m, the coordinate at 1 being a slack
variable (1 ^ v = 1), so that these give exactly the products with ∑ v_p ≤ m
(stars and bars with a slack variable; Finset.card_finsuppAntidiag_nat_eq_choose).
The good elements (u_p ≤ H - L, ∑ v_p ≤ m - 1) have all first y multiples in S_y,
at least a quarter of S_y is good, and |S_y| ≤ (H + 1) ^ q * C(2m, m) ≤ exp (C y / log y).
The padding step is the same as in RunsOfMultiples.Replication (replicate).
Primes p with p ≤ √y, i.e. p * p ≤ y.
Equations
- RunsOfMultiples.Alt.small y = {p ∈ (y + 1).primesBelow | p * p ≤ y}
Instances For
Primes p with √y < p ≤ y.
Equations
- RunsOfMultiples.Alt.large y = {p ∈ (y + 1).primesBelow | y < p * p}
Instances For
q = π(√y).
Equations
Instances For
m = π(y) - π(√y).
Equations
Instances For
H = 2 q L.
Equations
Instances For
Index set for the large-prime exponents, with a slack coordinate at 1.
Equations
Instances For
Small-prime exponent vectors with all entries ≤ e.
Equations
- RunsOfMultiples.Alt.smallExp y e = (RunsOfMultiples.Alt.small y).finsupp fun (x : ℕ) => Finset.range (e + 1)
Instances For
Large-prime exponent vectors (plus slack at 1) with total sum k.
Equations
Instances For
Small parts ∏_{p ≤ √y} p ^ u_p, u_p ≤ e.
Equations
Instances For
Large parts ∏_{√y < p ≤ y} p ^ v_p, ∑ v_p ≤ k.
Equations
Instances For
The block S_y.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The good elements of S_y: u_p ≤ H - L, ∑ v_p ≤ m - 1.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Basic facts #
Unique factorisation: the parts and their product are injective #
At least a quarter of S_y is good #
Every 1 ≤ j ≤ y is js * jl with js having small-prime exponents ≤ L and
jl ∈ {1} ∪ (√y, y] (at most one prime factor > √y, counted with multiplicity).
Size of S_y: log |S_y| = O(y / log y) (upper half of (12)) #
The block of §3: B = S_y, G = good elements, |G| ≥ |B| / 4,
|B| ≤ exp (C₃ y / log y). Same shape as RunsOfMultiples.block.