PFProof FactoryOpen mathematics research
← Research work
SettledCovering design theoryOpen 1993 – 2026Machine-checked

C(12,6,4) = 41

The smallest number of 6-element blocks from a 12-element set such that every 4-element subset lies inside at least one block is 41. The value had been pinned between 40 and 41 since 1993. The lower end is now closed: no 40-block cover exists.

40 ≤ C(12,6,4) ≤ 41 C(12,6,4) = 41 A 33-year one-block gap, closed by exhaustive refutation
41Blocks, exactly
247Branches, all refuted
1.36 GBReplayed proof certificates
33 yearsThe gap stood open
The statement

What a covering number is

A covering design C(v, k, t) is a family of k-element blocks drawn from a v-element ground set with the property that every t-element subset of the ground set is contained in at least one block. The covering number C(v, k, t) is the least possible number of blocks. Here v = 12, k = 6, t = 4: the 495 four-element subsets of a twelve-point set must all be covered by six-point blocks, and the question is how few blocks suffice.

Forty-one has been known to suffice since 1993. Whether forty could also suffice was not known. It cannot.

The argument

Three parts

The result is an equality, so it needs an upper bound, a lower bound, and the refutation of the one value in between.

Upper bound

C(12,6,4) ≤ 41

An explicit 41-block design, taken from the La Jolla Covering Repository and re-checked here from first principles: all 41 blocks distinct, all 495 quadruples covered, zero uncovered.

This step is a finite check, not a search. It was re-run independently rather than cited.

blocks sha256 16e56e8a8a5590ed…3375ae71 · uncovered: 0
Lower bound

C(12,6,4) ≥ 40

Two applications of the Schönheim recursion. C(10,4,2) ≥ 9 gives C(11,5,3) ≥ 20, which gives C(12,6,4) ≥ 40.

The only step that is not arithmetic is C(10,4,2) ≥ 9, and that one is discharged by a machine-checked refutation rather than by citation.

Certificate lb-c1042-8-deg3 · UNSAT · replay verified
The gap

C(12,6,4) ≠ 40

The hard part. A 40-block cover is shown to be impossible by reducing to a finite, exhaustively enumerated case tree of 247 branches and refuting every branch.

Every refutation is a resolution proof that was written out, replayed by an independent checker, and hashed.

247 of 247 branches closed · 0 missing
Why the search is finite

The forcing argument

A blind search over 40-block families from the 924 possible blocks is far too large. The proof first shows that a 40-block cover, if one existed, would be extremely rigid — rigid enough to enumerate.

  1. Every point has degree exactly 20.

    A 40-block cover uses 40 × 6 = 240 point slots across 12 points, an average of 20. The blocks through any single point form a C(11,5,3) cover of the remaining 11 points, so every degree is at least C(11,5,3) = 20. Average 20 with minimum 20 forces every degree to equal 20.

  2. Each point's link is a 20-block C(11,5,3) cover.

    Delete a point from each of the 20 blocks through it. The result is a 20-block covering design on 11 points with 5-element blocks covering all triples — the minimum possible size.

  3. The link's own degree vector is forced to be (10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9).

    Link degrees sum to 20 × 5 = 100. Each link point's blocks form a C(10,4,2) cover, so each link degree is at least 9. Eleven values, each at least 9, summing to 100, leaves slack exactly one: ten nines and a single ten. There is no freedom left.

  4. The remaining freedom is a finite orbit tree.

    Fixing the degree-10 point and quotienting by a relabelling group of order 3840 turns the residual choice into a tree of root, secondary and tertiary orbits — 247 branches in total. The group used is a proper subgroup of the full symmetry group, which is the conservative direction: a smaller group gives finer orbits and more branches, never fewer.

  5. All 247 branches are refuted.

    Each branch becomes a propositional formula over 462 primary variables with exact-cardinality constraints, and each is solved to UNSAT with a proof written out and replayed. 200 branches are closed by the twelve closure jobs below; the remaining 47 are the deepest nodes, each with its own certificate.

Evidence

Certificate ledger

Every entry below is an UNSAT result whose resolution proof was written to disk in DRAT format and then replayed end to end by an independent checker, which reported s VERIFIED. Nothing in this table is asserted on the solver's word alone.

JobWhat it closesBranchesVerdictProof sha256
lb-c1042-8-deg3C(10,4,2) ≥ 9 — the one non-elementary input to the lower boundUNSAT · s VERIFIEDca55b356da9d…
r345-tailRoot orbits 3–5: a point-1 block outside orbits 0–2 is impossibleUNSAT · s VERIFIEDbb41db833e12…
r0s0-ter-tailTertiary orbits under root 0 / secondary 089UNSAT · s VERIFIED66e84117eb53…
r1-sec-tailSecondary orbits under root 152UNSAT · s VERIFIEDd12afd05a16a…
r0-sec-tailSecondary orbits under root 032UNSAT · s VERIFIED18a3a0dda5a1…
r2plus-b20Root orbit 2, no canonical-representative assumption19UNSAT · s VERIFIED22c5344b9732…
r1-gap-s6Root 1, secondary orbit 61UNSAT · s VERIFIED11da644e8642…
r1-gap-s7Root 1, secondary orbit 71UNSAT · s VERIFIED91e9500633b0…
r1-gap-s9Root 1, secondary orbit 91UNSAT · s VERIFIEDfe128269579c…
r1-gap-s10Root 1, secondary orbit 101UNSAT · s VERIFIEDa14c97b5a1bc…
r1-gap-s11Root 1, secondary orbit 111UNSAT · s VERIFIEDbc9e5bdb0d41…
r1-gap-s12Root 1, secondary orbit 121UNSAT · s VERIFIEDd4f7c611c52c…
r1-gap-s13Root 1, secondary orbit 131UNSAT · s VERIFIEDab02b8bdbffb…
r1-gap-s14Root 1, secondary orbit 141UNSAT · s VERIFIEDc05b407317dc…
frontier nodes (47)The 47 deepest branches, each refuted under the blocker catalogue47UNSAT · s VERIFIED47 separate certificates

247 of 247 branches accounted for · 0 missing · 1,364,390,619 bytes of compressed DRAT retained · every CNF re-derivable byte-identically from its branch specification

Honesty

What this rests on, and what it does not

An exhaustive computer proof is only as good as the things it assumes. Both lists are given in full.

In the trust base

  • The proof checker. Certificates were replayed with drat-trim. A second, formally verified checker has not yet been run over a sample, so the checker is currently a single point of trust.
  • The cardinality encoder. An over-constraining encoder would produce spurious UNSAT — exactly the failure that would fake this result. Guarded against by re-solving the hardest branches under a second, independent encoding; all agreed on UNSAT with replayed certificates under both.
  • The problem encoding. The map from covering designs to propositional variables and clauses, audited separately, including a check that the forced degree vector is genuinely forced rather than assumed.
  • The case split. Verified independently of the code that generated it: the relabelling group is a genuine group, its orbits genuinely partition their domains, and the branch tree is exhaustive.

Not in the trust base

  • No inherited claim. An earlier record asserted that 47 nodes covered the whole search. That assertion was audited and found to be false — the true branch space is 247. The gap was closed with fresh certificates rather than papered over.
  • No cited lower bound. The one non-elementary input, C(10,4,2) ≥ 9, is machine-checked here rather than taken from the literature.
  • No cited upper bound. The 41-block design was re-verified from its block list against all 495 quadruples.
  • No solver-only claims. Every UNSAT in this proof has a replayed certificate behind it.

Open items

  • Replaying a sample of certificates through a formally verified checker, to remove drat-trim from the trust base entirely.
  • External review. This result has not been peer reviewed and has not been submitted anywhere.

Reproducibility

  • Every branch formula is regenerated byte-identically from its branch specification and diffed against the recorded hash, so no formula has to be taken on trust.
  • All proof artefacts are retained and hashed. The write-up will ship with the manifests.
Provenance

How long the gap stood

Status

Paper coming soon

A full write-up with the complete certificate manifests, the encoding, the symmetry audit and reproduction instructions is being prepared. This page is the summary, not the paper.

Until then, the honest description of this result is: proved and machine-checked end to end, independently replayed, not yet peer reviewed. If you find an error in it, that is exactly the kind of message worth sending.

Problem dossier and attempt history →