Covering designs · Lean 4
C(24,14,4) ≥ 20
Pick blocks of 14 points out of 24 so that every set of 4 points sits inside some block. How few blocks can do it? The best known answer is 23. For decades the best lower bound was 19 (Schönheim 1964, Mills 1979). A Lean proof, written by AI agents and checked by Lean’s kernel, shows that 19 is impossible. Read the blog post for background info.
Checked by Lean’s kernelRegistered on PalomarNot yet peer-reviewed
Try it
Cover every four-point set
Each row is a block: 14 of the 24 points, shown as filled cells. A set of four points is covered if some row contains all four. There are 10,626 four-point sets. Click cells to move points around, or let the computer search.
Block 1 · 14 of 14 points. Tap points to add or remove them.
264
four-point sets not covered
This is the best arrangement a computer search found. It still misses 264 sets.
A covering needs 0. The Lean proof shows that no arrangement of 19 blocks gets there, so at least 20 are needed.
Report it as an issue on GitHubThe proof in eight parts
- 1Counting: every point is in at least 11 blocks, every pair in at least 6.
- 2With 19 blocks, all but one or two points are in exactly 11.
- 3A rank bound finds balanced groups of points.
- 4Regular 11-block coverings of 22 points are rigid: doubled designs.
- 5So there is a balanced quadruple, or one exceptional shape.
- 6A quadruple leads to the Petersen graph and a colour clash.
- 7The exceptional shape needs 18 pairs of blocks, out of 15.
- 8Both fail: no covering with 19 blocks.
What changes
The covering number C(v,k,t) is the fewest k-point blocks that cover every t-point subset of v points. The new bound feeds the standard Schönheim inequality and lifts four more tabulated lower bounds.
| Covering number | Old lower bound | New lower bound | Best known covering | Status |
|---|---|---|---|---|
| C(24,14,4) | 19 | 20 | 23 | Checked by Lean |
| C(25,15,5) | 32 | 34 | 42 | Checked by Lean |
| C(26,16,6) | 52 | 56 | 78 | By hand, from the line above |
| C(27,17,7) | 83 | 89 | 143 | By hand, from the line above |
| C(28,18,8) | 130 | 139 | 258 | By hand, from the line above |
Still open
Nobody knows whether C(24,14,4) is 20, 21, 22 or 23. The search that led here was looking for a covering of all 5-point subsets of 25 points with 41 blocks of 15. None has been found, and none has been ruled out. The code is on GitHub.