Erdős's first problem (1931, $500) asks whether a set A ⊆ {1,…,N} whose 2^|A| subset sums are all distinct must have N ≫ 2^|A|. Bohman's construction of 1998 held the record, N ≤ 0.22002·2^|A|, for twenty-eight years. On 28 August 2026 a pre-release GPT-6 Astra, run autonomously by Epoch AI, disproved the conjecture in Lean: for every ε there are such sets with N ≤ ε·2^|A|. The proof is an existence proof, ineffective at exactly one step, and no set below Bohman's constant was known. This page makes that step explicit and ships the sets: 1,701 integers at N/2^n = 0.217967, and 79,092 integers at 0.145269, 33.9% below the record — each with a certificate an independent program re-decides in exact arithmetic, and every one re-decided on this machine before it entered this page.
Local working document, machine-derived, not peer-reviewed. The sets are theorems: every step of the chain is a finite exact computation the verifier repeats, and the two structural lemmas it does not recompute at full size (the cube property of the base lattice, for Bloom's gadget and for every tilt) are proved in the theorem note, checked exhaustively for d ≤ 9 at every build, and probed at full size. The construction is the one in the Astra proof as read by Bloom; what is new here is the effective transfer, the tilt lemmas, the Siegel numbers and the sets themselves. Nothing here is a Lean proof.
Write f(n) = inf max A / 2n−1 over dissociated sets of n positive integers (Bloom's normalisation); the ratio on this page is ρ = N/2n = f/2, and Bohman is ρ ≤ 0.22002. Bloom's exposition of the Astra proof (erdosproblems.com/1, 3 September 2026, pinned in the corpus) reads it as a statement about lattices: an explicit rational lattice Λs in the hyperplane Σxi = 0 of ℝd, d = bs, with no nonzero point in the open cube (−1,1)d and a covolume constant Δs that tends to zero. A dissociated set follows once one has a primitive integer lattice close to Q·Λs; the proof obtains it from a density theorem and, in the Lean, from a Smith normal form with the scale sent to infinity.
The proof is currently non-quantitative, but just due to the non-effectiveness of the part where we approximate an arbitrary lattice by a primitive lattice.Thomas Bloom, exposition on erdosproblems.com/1, 2026-09-03
Every other step is explicit. So the object was one effective lemma away, and the number the proof never computed is one number per lattice.
Let B be the (d−1)×(d−1) matrix of the first r = d−1 coordinates of a basis of Λs, and A = D·B its integer scaling (D = qs for the tilt α = p/q). Take an upper-triangular Hermite basis H of the column lattice of A with its rows reversed; the cube property is a property of the lattice, so it survives. For an integer scale t put
where sh has ones just below the diagonal and lift appends the row that makes every column sum to zero. Deleting the first row of C leaves an upper-triangular matrix with diagonal −1, so the column lattice of M is saturated in ℤr+1 and its primitive normal a is an explicit prefix recurrence — the Lean's transferWeights with the Smith form replaced by the Hermite form. The one quantity the ineffective proof never computed is the buffer
With t = ⌈(2k + K)/D⌉ every integer relation c·a = 0 with |ci| < 2k is forced to zero (c = Mz by saturation, and ‖c‖ ≥ (Dt − K)‖lift(H/D)z‖ ≥ 2k by the cube property), and the binary-block lemma gives A = {ai2j : 0 ≤ i ≤ r, 0 ≤ j < k}: n = dk elements, all subset sums distinct, N/2n = max ai / 2kr+1, which tends to Δs/2 as k grows. Nothing is estimated; every certificate is exact rational arithmetic.
b = 13, s = 3, α = 11/20: d = 2,197, D = 8,000, Δs = 0.290062, K = 48,362.5 (about 22.0·d), k = 36, t = NaN. The 2,197 base weights differ from each other by at most 2.91e-8%: the set is 2,197 integers of about 23,774 digits, each times the first 36 powers of two.
Everything rests on one small matrix: Bloom's base gadget T = I + P/2 on ℤb ∩ Vb (b odd), height 3/2 and covolume 1 + 2−b, whose two properties — no nonzero lattice point in the open cube, and the strip property with one real coordinate — Bloom proves by a case analysis and the Lean formalises as composeMatrix_admissible. Nothing in the argument singles out the tilt 1/2. For Tα = I + αP with any rational 0 < α < 1 the height is 1 + α, the covolume 1 + αb, the iteration is unchanged, and
The cube property holds for every tilt, in three lines: if z ≠ 0 is an integer vector with |zi + αzi+1| < 1 for all i and m = max|zi| is attained at i, then α|zi+1| > m − 1 forces |zi+1| = m with the opposite sign, and around the odd cycle zi = −zi. The strip property is decided exactly per (α, b) by a finite search that a structure lemma makes small: the largest integer coordinate has modulus below 1/(1−α) and sits at the last index, so one enumerates the integer chains backwards and intersects the two constraints on the real coordinate — milliseconds at b = 31, and cross-validated against a brute-force decision of both properties for b ≤ 9. Larger tilts pay in covolume and gain in height, so the best tilt depends on the dimension budget, and it beats 1/2 at every budget: at d = 81 the tilt 3/5 already crosses Bohman where Bloom's gadget needs d = 729, and at d = 441 the tilt 3/4 reaches 0.172386 where the 729-dimensional Bloom lattice reaches 0.176980. Two-parameter cyclic gadgets I + aP + bP² fail the cube condition from b = 7 on through period-three patterns.
| b | s | α | d | D | Δ_s | Δ_s / 2 (the limit) | buffer K | K / d | best verified N/2^n |
|---|---|---|---|---|---|---|---|---|---|
| 9 | 2 | 3/5 | 81 | 25 | 0.431825 | 0.215913 | 242.5 | 2.99 | 0.215928 (k = 28) |
| 11 | 2 | 13/20 | 121 | 400 | 0.407792 | 0.203896 | 1,660.8 | 13.73 | 0.204055 (k = 28) |
| 11 | 2 | 2/3 | 121 | 9 | 0.413245 | 0.206622 | 217.7 | 1.80 | 0.206643 (k = 28) |
| 13 | 2 | 2/3 | 169 | 9 | 0.386780 | 0.193390 | 349.9 | 2.07 | 0.193433 (k = 28) |
| 21 | 2 | 3/4 | 441 | 16 | 0.344050 | 0.172025 | 1,277.1 | 2.90 | 0.172386 (k = 28) |
| 9 | 3 | 1/2 | 729 | 8 | 0.353867 | 0.176933 | 1,546.6 | 2.12 | 0.176980 (k = 32) |
| 31 | 2 | 4/5 | 961 | 25 | 0.318575 | 0.159287 | 3,460.8 | 3.60 | 0.159783 (k = 30) |
| 11 | 3 | 1/2 | 1,331 | 8 | 0.316172 | 0.158086 | 2,984.1 | 2.24 | 0.158122 (k = 34) |
| 13 | 3 | 1/2 | 2,197 | 8 | 0.302989 | 0.151495 | 5,158.9 | 2.35 | 0.151520 (k = 36) |
| 13 | 3 | 11/20 | 2,197 | 8,000 | 0.290062 | 0.145031 | 48,362.5 | 22.01 | 0.145269 (k = 36) |
The buffer is the number the proof never computed, and it is small: 1.03–1.13·d for the two-level Bloom lattices and 1.6–2.35·d for the three-level ones. Measured level by level at fixed b, its operator norm grows by about b/2 from the first level to the second and by about b from the second to the third — the dimension times a slowly growing function of the level, polynomial in d, which is what the effective theorem needs and what nothing here proves (the scan is certs/erdos1/logs/kscan-levels-certmachine.log; in every case the longest row of H⁻¹ is the first, the dual vector of the last projected coordinate). A tilt with denominator q pays through D = qs, which is why 11/20 at d = 2,197 carries K ≈ 22·d while its operator norm ‖EH−1‖ is 3.5; small denominators are the lever. A bound on K as a function of (b, s) is exactly what the effective asymptotic theorem still needs (§7).
Every row is a set A = {ai·2j} with the base weights read from its certificate, and every row was verified by instruments/erdos1/verify.py on this machine — the bench that built the certificates verified them once already, and both logs are kept. A row enters this table by one rule, stated once in the ledger builder: the verifier's run ended with every check passed and the instance's own block is complete. An unverified instance became the bench's headline once for twenty minutes; that rule is the fix. The smallest set below Bohman's constant in this family is the 1,701-element one at d = 81 (α = 3/5, k = 21; one fewer binary shift, k = 20 with n = 1,620, lands at 0.220057, above by the width of the buffer).
| b, s, α | d | k | n = |A| | digits of N | N / 2^n | Bloom's f = N/2^(n−1) | vs 0.22002 |
|---|---|---|---|---|---|---|---|
| 9, 2, 3/5 | 81 | 16 | 1,296 | 390 | 0.297911 | 0.595822 | above |
| 9, 2, 3/5 | 81 | 18 | 1,458 | 439 | 0.233466 | 0.466932 | above |
| 9, 2, 3/5 | 81 | 20 | 1,620 | 488 | 0.220057 | 0.440114 | above |
| 9, 2, 3/5 | 81 | 21 | 1,701 | 512 | 0.217967 | 0.435934 | below · −0.9% |
| 9, 2, 3/5 | 81 | 22 | 1,782 | 536 | 0.216929 | 0.433858 | below · −1.4% |
| 9, 2, 3/5 | 81 | 24 | 1,944 | 585 | 0.216180 | 0.432359 | below · −1.7% |
| 9, 2, 3/5 | 81 | 28 | 2,268 | 683 | 0.215928 | 0.431857 | below · −1.8% |
| 11, 2, 13/20 | 121 | 20 | 2,420 | 728 | 0.251217 | 0.502434 | above |
| 11, 2, 13/20 | 121 | 22 | 2,662 | 801 | 0.214039 | 0.428079 | below · −2.7% |
| 11, 2, 13/20 | 121 | 24 | 2,904 | 874 | 0.206812 | 0.413624 | below · −6% |
| 11, 2, 13/20 | 121 | 28 | 3,388 | 1,020 | 0.204055 | 0.408110 | below · −7.2% |
| 11, 2, 2/3 | 121 | 18 | 2,178 | 656 | 0.228941 | 0.457881 | above |
| 11, 2, 2/3 | 121 | 20 | 2,420 | 728 | 0.211918 | 0.423837 | below · −3.6% |
| 11, 2, 2/3 | 121 | 22 | 2,662 | 801 | 0.207916 | 0.415832 | below · −5.5% |
| 11, 2, 2/3 | 121 | 24 | 2,904 | 874 | 0.206954 | 0.413908 | below · −5.9% |
| 11, 2, 2/3 | 121 | 28 | 3,388 | 1,020 | 0.206643 | 0.413285 | below · −6% |
| 13, 2, 2/3 | 169 | 20 | 3,380 | 1,017 | 0.204743 | 0.409487 | below · −6.9% |
| 13, 2, 2/3 | 169 | 22 | 3,718 | 1,119 | 0.196145 | 0.392289 | below · −10.8% |
| 13, 2, 2/3 | 169 | 24 | 4,056 | 1,221 | 0.194069 | 0.388138 | below · −11.7% |
| 13, 2, 2/3 | 169 | 28 | 4,732 | 1,424 | 0.193433 | 0.386865 | below · −12% |
| 21, 2, 3/4 | 441 | 20 | 8,820 | 2,655 | 0.294264 | 0.588529 | above |
| 21, 2, 3/4 | 441 | 22 | 9,702 | 2,920 | 0.196745 | 0.393491 | below · −10.5% |
| 21, 2, 3/4 | 441 | 24 | 10,584 | 3,186 | 0.177898 | 0.355796 | below · −19.1% |
| 21, 2, 3/4 | 441 | 26 | 11,466 | 3,451 | 0.173475 | 0.346950 | below · −21.1% |
| 21, 2, 3/4 | 441 | 28 | 12,348 | 3,717 | 0.172386 | 0.344773 | below · −21.6% |
| 9, 3, 1/2 | 729 | 24 | 17,496 | 5,267 | 0.189259 | 0.378518 | below · −13.9% |
| 9, 3, 1/2 | 729 | 26 | 18,954 | 5,705 | 0.179938 | 0.359875 | below · −18.2% |
| 9, 3, 1/2 | 729 | 28 | 20,412 | 6,144 | 0.177680 | 0.355360 | below · −19.2% |
| 9, 3, 1/2 | 729 | 32 | 23,328 | 7,022 | 0.176980 | 0.353960 | below · −19.5% |
| 31, 2, 4/5 | 961 | 22 | 21,142 | 6,364 | 0.352433 | 0.704865 | above |
| 31, 2, 4/5 | 961 | 24 | 23,064 | 6,943 | 0.194426 | 0.388853 | below · −11.6% |
| 31, 2, 4/5 | 961 | 26 | 24,986 | 7,521 | 0.167372 | 0.334745 | below · −23.9% |
| 31, 2, 4/5 | 961 | 28 | 26,908 | 8,100 | 0.161276 | 0.322552 | below · −26.6% |
| 31, 2, 4/5 | 961 | 30 | 28,830 | 8,678 | 0.159783 | 0.319567 | below · −27.3% |
| 11, 3, 1/2 | 1,331 | 28 | 37,268 | 11,218 | 0.160447 | 0.320894 | below · −27% |
| 11, 3, 1/2 | 1,331 | 30 | 39,930 | 12,020 | 0.158673 | 0.317346 | below · −27.8% |
| 11, 3, 1/2 | 1,331 | 32 | 42,592 | 12,821 | 0.158232 | 0.316465 | below · −28% |
| 11, 3, 1/2 | 1,331 | 34 | 45,254 | 13,623 | 0.158122 | 0.316245 | below · −28.1% |
| 13, 3, 1/2 | 2,197 | 36 | 79,092 | 23,809 | 0.151520 | 0.303039 | below · −31.1% |
| 13, 3, 11/20 | 2,197 | 36 | 79,092 | 23,809 | 0.145269 | 0.290537 | below · −33.9% |
At finite k the ratio exceeds Δs/2 by roughly the factor (1 + (K + D)/2k)r from the rounding of t, plus the lower-order terms of the recurrence, all of which the certificate carries exactly; k = ⌈log2(rK)⌉ + 6 already puts the ratio within one percent of the limit. Three-level lattices with Bloom's gadget need b ≥ 9 to cross Bohman (d = 729); the tilted two-level lattices cross at d = 81.
In the normalisation of Bloom's exposition (after Aliev), Cd is the least constant such that every nonzero a ∈ ℤd has a nonzero x ∈ ℤd with a·x = 0 and ‖x‖∞d−1 ≤ Cd‖a‖∞. Bombieri and Vaaler give Cd ≪ √d; the recorded lower bound is Schinzel's Cd ≥ 1, and Bloom remarks that the Astra lattices should give explicit lower bounds. They do, with no further work: the base weights are 2k-relation-free, so every admissible x has ‖x‖∞ ≥ 2k, whence 2k(d−1) ≤ Cd max a, that is Cd ≥ 2kr/max a = 1/f — an exact rational, printed truncated. A Bohman-type set gives Cd ≥ 1/0.44004 = 2.2725 for all large d; these are the first explicit values above that, and they grow with the instance as the construction predicts.
| d | α | k | f = N/2^(n−1) | C_d ≥ |
|---|---|---|---|---|
| 81 | 3/5 | 28 | 0.431857 | 2.315583 |
| 121 | 13/20 | 28 | 0.408110 | 2.450317 |
| 169 | 2/3 | 28 | 0.386865 | 2.584880 |
| 441 | 3/4 | 28 | 0.344773 | 2.900463 |
| 729 | 1/2 | 32 | 0.353960 | 2.825177 |
| 961 | 4/5 | 30 | 0.319567 | 3.129239 |
| 1,331 | 1/2 | 34 | 0.316245 | 3.162105 |
| 2,197 | 11/20 | 36 | 0.290537 | 3.441897 |
build.py constructs; verify.py rebuilds Λs from (b, s, α) and checks, independently of the construction's intermediate objects:
The inputs the verifier does not recompute at full size are the cube property of the base lattice — Bloom's Lemma 1 for α = 1/2, formalised in Lean for the identical gadget, and Lemma 1′ for every tilt, proved in the theorem note — and the strip property, decided per (α, b) by the structured search. At every build the battery checks Δs against an exact determinant on small lattices, the cube property exhaustively for d ≤ 9, the structured strip decision against a brute-force one for b ≤ 7, and every (α, b) in the ledger; the instrument's probes test thousands of lattice vectors at full dimension (18,612 at d = 729, none inside the cube). The battery also plants forgeries the verifier must refuse — a base weight off by one, a halved buffer, a Hermite entry off by one, a gadget that violates the cube condition, a verifier log that did not end green — 6 of 6 fired at this build, 13 checks green.
The verifier needs FLINT (python-flint), so it is not a standard-library verifier like the three on the landing page; it is detached all the same — one file, no code shared with the builder beyond the definition of the lattice, which it must share to rebuild it.
Bohman's bound holds for all large n; these sets are for specific n. The effective asymptotic statement f(n) ≤ n−c/log log n with an explicit c, the form Bloom expects, would follow from a bound on the buffer K as a function of (b, s), because k must only exceed log2(rK) by a constant. K is measured here (linear in d in every instance computed) and not proved; the Hermite basis is computed, not analytic, and an analytic triangular basis of Λs with an explicit inverse would settle it. The tilt family is a proven lever for the constant, and bigger tilted instances (α = 0.65, b = 21, s = 3 gives Δ = 0.235 at d = 9,261) need a Hermite path beyond PARI at that size. Nothing here concerns the lower bound N ≥ C(n, ⌊n/2⌋) or the true order of f.
The ledger (every instance, verified or not, with the sha256 of its certificate) · the certificates under 20 MB in /certs/erdos1/ (the two 2,197-dimensional ones are 46 MB gzipped and live in the repository) · the verifier · the theorem note with the proof chain and the tilt lemmas · the paper (v0.2, numbers interpolated from this ledger). Sources pinned in the corpus: the problem page and its exposition, the forum thread, the Lean resolution (tadamcz/erdos1 at 0e395153), Epoch's FrontierMath Erdős extract.