C(24,14,4)≥ 20

The proof

More than 19 blocks are required

The argument assumes a covering of the 4-point subsets of 24 points by 19 blocks of 14, and squeezes it until it breaks. Each step opens with the idea, in plain words and with things to try. The full argument and the Lean code are one click away.

Download as PDFNot yet reviewed by a mathematicianAI agents wrote this argument. Lean checks the formal proof, not this prose.

Before the proof

A covering picks blocks, sets of points, so that every small set of points sits inside at least one block. Here is one you can finish yourself.

Warm-up: a covering you can finish

Seven points, seven blocks of three. Cover every pair. Each row is a block; click cells to move points. You’re one move away.

13
23
33
43
53
63
73

2 of 21 pairs not covered

Why not let a computer check?

There are 1,961,256 ways to choose 14 of 24 points, so about 10102 ways to choose 19 blocks. No search can try them all. The best arrangement a computer search found still misses 264 of the 10,626 four-point sets (try it). Only a proof can say that 19 blocks never work.

The map

Eight steps, ten numbered results. Click one to jump to it. As you read, the step you’re on lights up.

Lemma 1C(22,12,2) ≥ 6Corollary 2Points in ≥ 11 blocks,pairs in ≥ 6Step 2Degree 11, withtwo to spareLemma 3BalancedcomponentsLemma 6Quadruple, or{2,6,6} / {2,6,8}Proposition 8No exceptionalcomponentsLemma 4Rigidity: doubled2-(11,6,3) designCorollary 520-pointcompletionsProposition 7No balancedquadrupleTheoremC(24,14,4) ≥ 20C(25,15,5) ≥ 34
Arrows point from a result to the results that use it.

The statement and notation

A (v,k,t)(v,k,t) covering is a family of kk-element subsets (blocks) of a vv-element set such that every tt-element subset lies in at least one block. The covering number C(v,k,t)C(v,k,t) is the least number of blocks in a (v,k,t)(v,k,t) covering.

Permalink

Theorem. C(24,14,4)≥20C(24,14,4) \ge 20 and C(25,15,5)≥34C(25,15,5) \ge 34.

The previous lower bounds were 19 and 32. The best known coverings have 23 and 42 blocks, so neither number is determined.

In Lean, a family is a list of blocks, so the same block may appear more than once. Every statement below holds in that generality: nothing in the argument assumes the blocks are distinct. Challenge.lean states the theorem with Mathlib’s Finset, and IndependentCheck.lean derives that form from the list form.

Notation

Fix a family B\mathcal B of blocks on a point set VV.

  • The degree d(x)d(x) of a point xx is the number of blocks containing xx.
  • The codegree λ(x,y)\lambda(x,y) of two points is the number of blocks containing both.
  • If B\mathcal B is a (v,k,t)(v,k,t) covering and x∈Vx \in V, the blocks through xx, with xx removed, form a (v−1,k−1,t−1)(v-1,k-1,t-1) covering of V∖{x}V \setminus \{x\} with d(x)d(x) blocks. This is the derived covering at xx. Deriving twice, the blocks through two points x,yx,y form a (v−2,k−2,t−2)(v-2,k-2,t-2) covering with λ(x,y)\lambda(x,y) blocks.
  • Two points are twins if they lie in exactly the same blocks.
  • II and JJ are the identity and all-ones matrices, and 1\mathbf 1 is the all-ones vector.

Counting incidences of the derived covering gives the Schönheim bound C(v,k,t)≥⌈vk C(v−1,k−1,t−1)⌉C(v,k,t) \ge \lceil \tfrac{v}{k}\, C(v-1,k-1,t-1) \rceil [Sch64].

Step 1 of 8

Counting floors

Covering pairs of 22 points with blocks of 12 takes at least 6 blocks. Restricting a covering to the blocks through one point, or two, turns that into the old bound of 19, and into two facts used everywhere below.

The idea

Everything starts with counting. Take any covering and keep only the blocks through one point x, with x removed. Any three other points, together with x, make a 4-point set, and the block covering it contains x. So these blocks still cover every 3-point set of the other 23 points: a smaller covering, called the derived covering.

The move the whole proof reuses

Pick a point. The blocks through it, with the point taken out, still cover something smaller.

1234567
1
2
3
4
5
6
7

The Fano plane from the warm-up: every pair of the 7 points is in exactly one block.

Doing it at two points x and y leaves the blocks through both, which cover every pair of the other 22 points with blocks of 12. Lemma 1 says that takes at least 6 blocks, so any two points share at least 6 blocks. Lemma 1 is itself a counting puzzle:

Try to cover the 100 cross pairs

Each of the three other blocks has room for 12 points of X ∪ Y. It covers the pairs in the rectangle its X points × its Y points. Toggle points in and out of each block.

First block · 12/12
X
Y
Second block · 12/12
X
Y
Third block · 12/12
X
Y

Rows: points of X. Columns: points of Y.

96 of 100 pairs covered

Counting incidences turns 6 into 11, and 11 into 19: that is Schönheim’s bound. A covering of triples of 23 points needs at least 11 blocks, so every point lies in at least 11. It is also where the old lower bound of 19 came from.

Where 19 comes from

Schönheim’s bound: the blocks through any point form a smaller covering, so C(v, k, t) ≥ ⌈v/k × C(v−1, k−1, t−1)⌉. Each row uses the one above it.

Covering numberLower boundFrom
C(22,12,2)6Mills, 1979
C(23,13,3)11⌈23 × 6 / 13⌉
C(24,14,4)19⌈24 × 11 / 14⌉
C(25,15,5)32⌈25 × 19 / 15⌉

The full argument

Permalink

Lemma 1. C(22,12,2)≥6C(22,12,2) \ge 6.

Proof. Suppose five 12-subsets of a 22-set VV cover every pair. They have 60 incidences, so some point qq has degree at most 2. A single block through qq meets only 11 of the 21 other points, so qq lies in exactly two blocks AA and BB, and A∪B=VA \cup B = V. Then ∣A∩B∣=2|A \cap B| = 2, and X=A∖BX = A \setminus B and Y=B∖AY = B \setminus A have 10 points each.

The 100 pairs {x,y}\{x,y\} with x∈Xx \in X, y∈Yy \in Y lie in neither AA nor BB, so the other three blocks cover them. A block with aa points of XX and bb points of YY covers abab such pairs, and a+b≤12a + b \le 12 gives ab≤36ab \le 36. A block containing all of XX (or all of YY) covers at most 10⋅2=2010 \cdot 2 = 20, so if one did, the three blocks would cover at most 20+36+36=92<10020 + 36 + 36 = 92 < 100. So no block contains a whole side. Then each point of XX must lie in at least two of the three blocks: a single block through it would have to contain all of YY. The same holds for YY, so the three blocks need at least 40 incidences, but they have only 36. □\square

Deriving and counting incidences now gives C(23,13,3)≥⌈23⋅6/13⌉=11C(23,13,3) \ge \lceil 23 \cdot 6/13 \rceil = 11 and C(24,14,4)≥⌈24⋅11/14⌉=19C(24,14,4) \ge \lceil 24 \cdot 11/14 \rceil = 19. These are the previous lower bounds.

Permalink

Corollary 2. In any (24,14,4)(24,14,4) covering, every point has degree at least 11 and every pair has codegree at least 6.

Proof. The derived covering at a point is a (23,13,3)(23,13,3) covering, and at a pair it is a (22,12,2)(22,12,2) covering. □\square

From here until Step 8, T\mathcal T is a (24,14,4)(24,14,4) covering of a 24-set VV by exactly 19 blocks. The goal is a contradiction.

In Lean

Checked by Lean4 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 2 of 8

Degrees and excess

With only 19 blocks there is almost no slack: all but one or two points lie in exactly 11 blocks, and each of those has exactly 5 units of excess to share out.

The idea

Now suppose 19 blocks were enough, and squeeze. Nineteen blocks of 14 points have 266 places. Every point needs at least 11, which uses 264, so only 2 are left: either one point is in 13 blocks, or two points are in 12. The other 22 or 23 points are in exactly 11. Call those the low points.

(a) one point of degree 13(b) two points of degree 12
Each column is a point and each square one block containing it. Every point needs at least 11 blocks, and 19 blocks of 14 points have 266 = 24 × 11 + 2 incidences, so only two extra squares are left over.

Pairs are just as tight. Every pair needs 6 shared blocks; call anything above that the pair’s excess. A low point is in 11 blocks with 13 other points each: 143 slots shared with the other 23 points. They need 6 each, 138 in all, so a low point has exactly 5 units of excess to hand out. The rest of the proof follows where that excess goes.

Degrees and codegrees of the best attempt

This is the 19-block arrangement from the home page. Each bar is a point’s degree, the number of blocks containing it. In a real covering every bar would reach 11, and every pair would share at least 6 blocks. Here 4 points fall short and 42 pairs share only 5. Click a point to see its codegrees.

The full argument

The 19 blocks have 19⋅14=266=24⋅11+219 \cdot 14 = 266 = 24 \cdot 11 + 2 incidences, and every degree is at least 11. So the degrees are either

  • (a) one point of degree 13 and all others 11, or
  • (b) two points of degree 12 and all others 11.

Call the degree-11 points low and the others high. Let LL be the set of low points, so ∣L∣=23|L| = 23 or 2222.

For distinct points, let the excess be w(x,y)=λ(x,y)−6≥0w(x,y) = \lambda(x,y) - 6 \ge 0. Each block through xx contains 13 other points, so ∑y≠xλ(x,y)=13 d(x)\sum_{y \ne x} \lambda(x,y) = 13\, d(x), and

∑y≠xw(x,y)=13 d(x)−23⋅6={5d(x)=11,18d(x)=12,31d(x)=13.\sum_{y \ne x} w(x,y) = 13\, d(x) - 23 \cdot 6 = \begin{cases} 5 & d(x) = 11,\\ 18 & d(x) = 12,\\ 31 & d(x) = 13.\end{cases}

The excess graph Γ\Gamma has vertex set LL, with an edge of weight w(x,y)w(x,y) between low points whenever w(x,y)>0w(x,y) > 0. Write δ(x)=∑y∈Lw(x,y)\delta(x) = \sum_{y \in L} w(x,y) for the weighted degree of xx in Γ\Gamma; it is at most 5.

In Lean

Checked by Lean3 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 3 of 8

A rank bound forces balanced components

Only 19 blocks for 22 or 23 low points means the incidence matrix has a kernel. Its vectors live on balanced components: groups of low points whose excess stays among themselves, split into two equal sides.

The idea

This is the key idea. Write the incidence matrix of the low points: a row per low point, a column per block. That is 22 or 23 rows but only 19 columns, so the rows can’t be independent. There are at least 3 (or 4) independent ways to give each low point a number so that, in every block, the numbers add up to zero.

An energy identity says what those numbers can look like. Join two low points when their pair has excess, and give each low point its budget of 5. The numbers must be zero on a point that sends some excess to a high point, and must flip sign across every edge. That only works on balanced components: groups of low points whose excess stays among themselves, split into two equal sides.

Which signings cost nothing?

Give each point +1, −1 or 0 by clicking it. The energy adds a cost for every point with spare budget (δ below 5) that isn’t 0, and for every edge whose two ends don’t cancel. Find a signing with zero energy that isn’t all zeros.

233252220u · δ 50v · δ 50s · δ 50t · δ 50q · δ 50q′ · δ 50a · δ 40b · δ 40c · δ 4

spare budget 0 + edges 0 = energy 0

So there are at least 3 balanced components, and Lemma 3 draws four more facts from them. Every block contains equally many points from the two sides of each one. A point in one shares exactly 6 blocks with every point outside it. Together they hold at most 16 points. And a component of 2 points is a pair of twins: two points that lie in exactly the same blocks.

The full argument

Call a connected component KK of Γ\Gamma balanced if it is bipartite, with sides of equal size, and every vertex of KK has δ=5\delta = 5.

Permalink

Lemma 3. In a 19-block (24,14,4)(24,14,4) covering:

  1. there are at least ∣L∣−19|L| - 19 balanced components, so at least 3, and at least 4 in case (a);
  2. every block contains equally many points from the two sides of each balanced component;
  3. a point xx of a balanced component has λ(x,y)=6\lambda(x,y) = 6 for every point yy outside it, including the high points, and for every yy on the same side;
  4. the balanced components cover at most 16 points;
  5. each balanced component has even size, and a balanced component of size 2 is a pair of twins.

Proof. Let MM be the L×19L \times 19 incidence matrix of low points against blocks and G=MMTG = MM^{\mathsf T} its Gram matrix. Its diagonal entries are 11 and its off-diagonal entries are λ(x,y)=6+w(x,y)\lambda(x,y) = 6 + w(x,y), so

G=5I+6J+W,G = 5I + 6J + W,

where WW is the weighted adjacency matrix of Γ\Gamma. For any real vector zz on LL,

zT(5I+W)z=∑x(5−δ(x))zx2+∑{x,y}w(x,y) (zx+zy)2.z^{\mathsf T}(5I + W)z = \sum_{x} \bigl(5 - \delta(x)\bigr) z_x^2 + \sum_{\{x,y\}} w(x,y)\,(z_x + z_y)^2 .

Both sums are nonnegative, so 5I+W5I + W is positive semidefinite, and zz is in its kernel exactly when zx=0z_x = 0 wherever δ(x)<5\delta(x) < 5 and zy=−zxz_y = -z_x along every edge. So kernel vectors live on bipartite components whose vertices all have δ=5\delta = 5, with opposite signs on the two sides. In such a component the total edge weight is 5∣K+∣=5∣K−∣5|K^+| = 5|K^-|, so the sides have equal size: these are exactly the balanced components. The kernel of 5I+W5I + W is spanned by their alternating vectors (+1+1 on one side, −1-1 on the other).

An alternating vector sums to zero, so Jz=0Jz = 0 and it is also in the kernel of GG. Conversely, zTGz=zT(5I+W)z+6 (1Tz)2z^{\mathsf T} G z = z^{\mathsf T}(5I + W) z + 6\,(\mathbf 1^{\mathsf T} z)^2, so Gz=0Gz = 0 forces zz into the kernel of 5I+W5I + W. Hence the nullity of GG is the number of balanced components. Since G=MMTG = MM^{\mathsf T} has rank at most 19, there are at least ∣L∣−19|L| - 19 of them. This is part 1.

For an alternating vector zz, ∥MTz∥2=zTGz=0\lVert M^{\mathsf T} z\rVert^2 = z^{\mathsf T} G z = 0, so every block meets the two sides equally. This is part 2.

A vertex of a balanced component has δ(x)=5\delta(x) = 5, which is its entire excess, so it has no excess to high points or to low points outside its component. It has none to its own side either, because the component is bipartite. This is part 3.

For part 4, let UU be the union of the balanced components. By part 3 no high point has excess to UU, and each low point has total excess 5. In case (a), the degree-13 point has excess 31, all of it to low points outside UU, at most 5 each; so at least 7 low points lie outside UU, and ∣U∣≤23−7=16|U| \le 23 - 7 = 16. In case (b), the two degree-12 points h1,h2h_1, h_2 have excess 18 each and w(h1,h2)≤12−6=6w(h_1,h_2) \le 12 - 6 = 6, so together they send at least 36−12=2436 - 12 = 24 excess to low points outside UU. Each low point absorbs at most 5, so at least 5 low points lie outside UU, and ∣U∣≤17|U| \le 17. Since ∣U∣|U| is even (part 5), ∣U∣≤16|U| \le 16.

For part 5, the sides have equal size, so the size is even. In a size-2 component {x,x′}\{x,x'\} the edge has weight 5, so λ(x,x′)=11=d(x)=d(x′)\lambda(x,x') = 11 = d(x) = d(x'), and xx and x′x' lie in the same blocks. □\square

In Lean

Checked by Lean7 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 4 of 8

The rigidity lemma

Both remaining cases lead to 11 blocks of size 12 covering every triple of 22 points, with every point in 6 blocks. A trace inequality shows it must be a symmetric 2-(11,6,3) design with every point doubled.

The idea

Both remaining cases run into the same object: 11 blocks of 12 points that cover every triple of 22 points, with every point in exactly 6 blocks. Lemma 4 says it must be a symmetric 2-(11,6,3) design with every point doubled. Every point gets a twin; twins share 6 blocks, and any other two points share exactly 3.

The shape Lemma 4 forces

Eleven blocks of 12 covering every triple of 22 points, every point in 6 blocks. Click a point, then another, to see how many blocks they share. Click a block number to compare it with the others.

Columns come in pairs: point 1 and point 2 are twins, then 3 and 4, and so on.

The proof hangs on one inequality. Put K = MMT − 3J, where M is the 22 × 11 incidence matrix. With only 11 blocks, K has at most 11 non-zero eigenvalues. None is negative, and they add up to 66. Eleven such numbers have squares adding up to at least 66²/11 = 396, and to exactly 396 only when all of them are 6.

Eleven numbers that add up to 66

These are the eigenvalues of K: at most 11 of them, none negative, adding up to 66. Drag any one; the others rescale to keep the total. Watch the sum of squares.

Sum of squares: — (never below 396)

Counting the entries of K gives the other side: the sum of squares is at most 396 − 8f, where f counts pairs that share only 2 blocks. So f = 0, every eigenvalue is 6, and the codegrees are forced. The same shape appears inside 20 points (Corollary 5): six 10-point blocks covering every pair, completed by five 12-point blocks. Adding two new points to the six blocks makes them a doubled design, so the 20 points fall into 10 twin classes.

The full argument

Both remaining cases lead to an 11-block covering of 22 points. This lemma shows such a covering, if regular, has a unique shape: a doubled symmetric design, in which every point has a twin.

Permalink

Lemma 4 (rigidity). Let F\mathcal F be 11 blocks of size 12 on a 22-set YY that cover every triple, with every point of degree 6. Then there is a fixed-point-free involution σ\sigma of YY such that

  • yy and σ(y)\sigma(y) are twins, so λ(y,σ(y))=6\lambda(y,\sigma(y)) = 6;
  • λ(y,z)=3\lambda(y,z) = 3 whenever z∉{y,σ(y)}z \notin \{y, \sigma(y)\}.

Collapsing each twin pair to a point gives a symmetric 22-(11,6,3)(11,6,3) design. Consequently, two distinct blocks of F\mathcal F share exactly 6 points, the incidence matrix of F\mathcal F has rank 11, and every real vector zz on YY that sums to zero on each block satisfies z(σ(y))=−z(y)z(\sigma(y)) = -z(y).

Proof. Every codegree is at least 2: the blocks through xx and yy, with x,yx,y removed, are 10-sets covering the other 20 points. If λ(x,y)=2\lambda(x,y) = 2, those two 10-sets partition the other 20 points, so the two blocks through xx and yy have union YY and intersection {x,y}\{x,y\}.

Codegree-2 pairs form a matching. Suppose λ(u,v)=λ(u,w)=2\lambda(u,v) = \lambda(u,w) = 2 with v≠wv \ne w. The two blocks through u,vu,v and the two through u,wu,w share a block AA (they cannot share both, since two blocks with union YY meet in only two points). Let BB and CC be the others. Then A⊇{u,v,w}A \supseteq \{u,v,w\}, and with Y′=Y∖AY' = Y \setminus A (10 points) and Z=A∖{u,v,w}Z = A \setminus \{u,v,w\} (9 points) we have B={u,v}∪Y′B = \{u,v\} \cup Y' and C={u,w}∪Y′C = \{u,w\} \cup Y'. The other three blocks through uu avoid vv and ww, and they must cover all 90 triples {u,y,z}\{u,y,z\} with y∈Y′y \in Y', z∈Zz \in Z. Each has 11 points besides uu, so it covers at most ⌊112/4⌋=30\lfloor 11^2/4 \rfloor = 30 of the pairs {y,z}\{y,z\}. All three must attain 30, splitting 5/6 between Y′Y' and ZZ. Then no block contains a whole side, so every point of Y′∪ZY' \cup Z needs two of these blocks: 38 incidences, but only 33 are available.

Codegrees are 3 or 4 off the matching. Let {x,y}\{x,y\} be a codegree-2 pair. Besides the two common blocks, xx and yy each lie in 4 more blocks, all different, which uses 8 of the other 9 blocks; call the remaining one NN. Any other point zz is in exactly one of the two common blocks and in 5 of the other 9, so

λ(x,z)+λ(y,z)=7−[z∈N].\lambda(x,z) + \lambda(y,z) = 7 - [z \in N].

Since zz is not matched to xx or yy, both terms are at least 3, so each is 3 or 4.

No codegree-2 pairs at all. Let MM be the 22×1122 \times 11 incidence matrix, and let WW have off-diagonal entries λ(x,y)−3\lambda(x,y) - 3 and zero diagonal, so MMT=3I+3J+WMM^{\mathsf T} = 3I + 3J + W. Each row of WW sums to 66−63=366 - 63 = 3. A matched point has row entries −1-1 (its partner) and otherwise 0 or 1, so its row has four entries 1 and squared sum 5. An unmatched point has nonnegative entries summing to 3, so its squared sum is at most 9.

Let K=MMT−3J=3I+WK = MM^{\mathsf T} - 3J = 3I + W. Since MMT1=72 1MM^{\mathsf T}\mathbf 1 = 72\,\mathbf 1, the matrix KK has the eigenvector 1\mathbf 1 with eigenvalue 6 and agrees with MMTMM^{\mathsf T} on 1⊥\mathbf 1^\perp. So KK is positive semidefinite with rank at most 11 and trace 66. By Cauchy–Schwarz on its eigenvalues, tr⁡(K2)≥662/11=396\operatorname{tr}(K^2) \ge 66^2/11 = 396. But tr⁡(K2)=22⋅9+∑x≠yWxy2\operatorname{tr}(K^2) = 22 \cdot 9 + \sum_{x \ne y} W_{xy}^2, so the squared row sums of WW total at least 198. With ff matching edges they total at most 198−8f198 - 8f. So f=0f = 0, and every row of WW has squared sum exactly 9: one entry 3 and the rest 0. The entry 3 marks a partner σ(y)\sigma(y) with λ=6\lambda = 6, a twin, and all other codegrees are 3.

Consequences. Collapsing twin pairs gives 11 blocks of 6 classes on 11 classes, with every two classes in 3 common blocks: a symmetric 22-(11,6,3)(11,6,3) design. Its incidence matrix NN satisfies NTN=3I+3JN^{\mathsf T} N = 3I + 3J, which is invertible, so it has rank 11, and in a symmetric design two blocks share λ=3\lambda = 3 classes, which is 6 points. If zz sums to zero on each block, then zˉ(c)=z(y)+z(σ(y))\bar z(c) = z(y) + z(\sigma(y)) is a vector on classes that sums to zero on each block of the quotient, so zˉ=0\bar z = 0 by invertibility. □\square

Permalink

Corollary 5 (20-point completions). Let XX be a 20-set, H\mathcal H six 10-subsets of XX covering every pair, and E\mathcal E five 12-subsets in which every point has degree 3, such that H∪E\mathcal H \cup \mathcal E covers every triple. Then:

  1. every point has degree 3 in H\mathcal H;
  2. there is a fixed-point-free involution σ\sigma of XX whose pairs are twins in both H\mathcal H and E\mathcal E;
  3. two blocks of H\mathcal H share exactly 4 points;
  4. for y∉{x,σ(x)}y \notin \{x,\sigma(x)\}, λH(x,y)+λE(x,y)=3\lambda_{\mathcal H}(x,y) + \lambda_{\mathcal E}(x,y) = 3 and λH(x,y)≤2\lambda_{\mathcal H}(x,y) \le 2;
  5. σ\sigma is determined by H\mathcal H alone: σ(x)\sigma(x) is the only other point that lies in all three H\mathcal H-blocks through xx.

Proof. Two 10-sets through xx reach at most 18 other points, so pair coverage needs 3, and 60 incidences make every degree exactly 3. Add two new points to every block of H\mathcal H. The result, together with E\mathcal E, is 11 blocks of size 12 on 22 points with every degree 6, and it covers every triple: triples inside XX by assumption, and triples through a new point because H\mathcal H covers pairs. Lemma 4 applies. The two new points are twins of each other, so σ\sigma restricts to XX, and parts 2–4 follow from Lemma 4 (blocks share 6 points, 2 of them new). If λH(x,y)=3\lambda_{\mathcal H}(x,y) = 3 for a non-twin yy, then λE(x,y)=0\lambda_{\mathcal E}(x,y) = 0, and xx and yy would need disjoint triples of the five E\mathcal E-blocks, which is impossible. That gives the bound in part 4 and part 5. □\square

Part 5 matters below: two completions E\mathcal E and F\mathcal F of the same H\mathcal H give the same pairing.

In Lean

Checked by Lean7 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 5 of 8

Two cases

Balanced components come in even sizes and fit in 16 points. Either two of them combine into a balanced quadruple of points, or they have sizes exactly 2, 6 and 6, or 2, 6 and 8.

The idea

Lemma 3 left at least 3 balanced components, of even sizes, inside 16 points. Two shapes give the proof a handle: a component of 4 points, or two components of 2. Either one produces a balanced quadruple: four low points u, v, s, t with every block containing as many of u, v as of s, t, where u and v share exactly 6 blocks with each other and with every other point.

If neither shape appears, only one option is left: two points of degree 12, and components of sizes 2, 6 and 6, or 2, 6 and 8. Try to find another:

Fit the balanced components into 16 points

Lemma 3 gives the rules: every component has an even number of points (at least 2), together they fit in 16 points, and there are at least 3 of them, or at least 4 if some point lies in 13 blocks. Add components and see what you get.

Add a component of size

Every possibility

With two points of degree 12 there are 42 ways to choose the component sizes. All but two contain a 4 or two 2s, which give a balanced quadruple. The two that don’t are {2, 6, 6} and {2, 6, 8}: the exceptional components of Step 7. With a point of degree 13 there are 26 ways, and every one gives a quadruple.

  • {2, 2, 2}
  • {2, 2, 2, 2}
  • {2, 2, 2, 2, 2}
  • {2, 2, 2, 2, 2, 2}
  • {2, 2, 2, 2, 2, 2, 2}
  • {2, 2, 2, 2, 2, 2, 2, 2}
  • {2, 2, 4}
  • {2, 2, 2, 4}
  • {2, 2, 2, 2, 4}
  • {2, 2, 2, 2, 2, 4}
  • {2, 2, 2, 2, 2, 2, 4}
  • {2, 4, 4}
  • {2, 2, 4, 4}
  • {2, 2, 2, 4, 4}
  • {2, 2, 2, 2, 4, 4}
  • {4, 4, 4}
  • {2, 4, 4, 4}
  • {2, 2, 4, 4, 4}
  • {4, 4, 4, 4}
  • {2, 2, 6}
  • {2, 2, 2, 6}
  • {2, 2, 2, 2, 6}
  • {2, 2, 2, 2, 2, 6}
  • {2, 4, 6}
  • {2, 2, 4, 6}
  • {2, 2, 2, 4, 6}
  • {4, 4, 6}
  • {2, 4, 4, 6}
  • {2, 6, 6}
  • {2, 2, 6, 6}
  • {4, 6, 6}
  • {2, 2, 8}
  • {2, 2, 2, 8}
  • {2, 2, 2, 2, 8}
  • {2, 4, 8}
  • {2, 2, 4, 8}
  • {4, 4, 8}
  • {2, 6, 8}
  • {2, 2, 10}
  • {2, 2, 2, 10}
  • {2, 4, 10}
  • {2, 2, 12}

The next two steps rule out each case.

The full argument

Permalink

Definition. A balanced quadruple is a set of four distinct low points u,v,s,tu,v,s,t with

  • λ(u,v)=6\lambda(u,v) = 6;
  • [u∈B]+[v∈B]=[s∈B]+[t∈B][u \in B] + [v \in B] = [s \in B] + [t \in B] for every block BB;
  • λ(u,x)=λ(v,x)=6\lambda(u,x) = \lambda(v,x) = 6 for every other point xx.
Permalink

Lemma 6. Either T\mathcal T has a balanced quadruple, or we are in case (b) and the balanced components have sizes exactly {2,6,6}\{2,6,6\} or {2,6,8}\{2,6,8\}.

Proof. A balanced component of size 4 has sides {u,v}\{u,v\} and {s,t}\{s,t\}; Lemma 3 gives the three conditions with λ(u,v)=6\lambda(u,v) = 6 because u,vu,v are on the same side. Two balanced components of size 2, {u,s}\{u,s\} and {v,t}\{v,t\}, are twin pairs, and again Lemma 3 gives the conditions. Otherwise every component has size 2 or at least 6, with at most one of size 2. By Lemma 3 there are at least 3 components on at most 16 points, so the sizes are {2,6,6}\{2,6,6\} or {2,6,8}\{2,6,8\}. Case (a) would need four components, at least 2+6+6+6=202 + 6 + 6 + 6 = 20 points. □\square

In Lean

Checked by Lean2 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 6 of 8

No balanced quadruple

A balanced quadruple sorts the 19 blocks into four families, and the rigidity lemma pairs the other 20 points into ten twin classes. Those classes form the Petersen graph, which stays connected after deleting two vertices, and that forces 16 points into a group that holds only 6.

The idea

Suppose u, v, s, t is a balanced quadruple. Sort the 19 blocks by which of u and v they contain: 6 contain both (𝓗), 5 contain only u (𝓔), 5 only v (𝓕), and 3 neither (𝓖). On the other 20 points, 𝓗 with 𝓔 is exactly the 20-point shape of Corollary 5, and so is 𝓗 with 𝓕. So those 20 points pair into 10 twin classes, the same pairing both times.

Join two classes when they share two blocks of 𝓗. The matrix identities force A² + A − 2I = J: three neighbours each, no triangles, and exactly one common neighbour for every non-adjacent pair. That is the Petersen graph, and it stays connected after deleting any two vertices.

Now the three 𝓖-blocks. Two of the 20 points lie in all three; every other point lies in exactly two, so it misses exactly one, its colour. Each 𝓖-block misses only 6 points, so a colour holds at most 6. But two points in neighbouring classes share 2 blocks of 𝓗 and 1 each of 𝓔 and 𝓕, so they need at least 2 more from 𝓖, which gives them the same colour.

12345678910

One matrix C that fits every equation: the six blocks of 𝓗 (rows) against the ten classes (columns).

12345678910
1
2
3
4
5
6
Click the classes that hold the two high points (one or two classes), then spread a colour.

The full argument

Permalink

Proposition 7. A 19-block (24,14,4)(24,14,4) covering has no balanced quadruple.

Proof. Suppose u,v,s,tu,v,s,t is one, and let XX be the other 20 points. Sort the 19 blocks:

FamilyBlocks containingCountGadget pointsSize on XX
H\mathcal Huu and vvλ(u,v)=6\lambda(u,v) = 6all four10
E\mathcal Euu, not vv11−6=511 - 6 = 5uu and one of s,ts,t12
F\mathcal Fvv, not uu5vv and one of s,ts,t12
G\mathcal Gneither3none14

The gadget-point column follows from the balance condition. On XX, H\mathcal H covers every pair (the 4-set {u,v,x,y}\{u,v,x,y\} needs a block through uu and vv), and H∪E\mathcal H \cup \mathcal E and H∪F\mathcal H \cup \mathcal F each cover every triple (look at {u,x,y,z}\{u,x,y,z\} and {v,x,y,z}\{v,x,y,z\}). By Corollary 5 every x∈Xx \in X has dH(x)=3d_{\mathcal H}(x) = 3, so dE(x)=λ(u,x)−3=3d_{\mathcal E}(x) = \lambda(u,x) - 3 = 3, and likewise dF(x)=3d_{\mathcal F}(x) = 3. So (H,E)(\mathcal H, \mathcal E) and (H,F)(\mathcal H, \mathcal F) are both completions, and by part 5 of Corollary 5 they share one pairing σ\sigma of XX into ten twin classes.

The quotient graph. Let CC be the 6×106 \times 10 incidence matrix of H\mathcal H against twin classes. Rows have 5 ones, columns have 3, and two rows share 2 classes, so CCT=3I+2JCC^{\mathsf T} = 3I + 2J. The off-diagonal entries of CTCC^{\mathsf T}C are class codegrees in H\mathcal H, which are 1 or 2 (at least 1 because H\mathcal H covers pairs). Let AA be the 0/1 matrix marking codegree 2, so CTC=2I+J+AC^{\mathsf T}C = 2I + J + A. Then

(CTC)2=CT(3I+2J)C=3 CTC+18J,(C^{\mathsf T}C)^2 = C^{\mathsf T}(3I + 2J)C = 3\,C^{\mathsf T}C + 18J,

using 1TC=3 1T\mathbf 1^{\mathsf T}C = 3\,\mathbf 1^{\mathsf T}. Row sums of CTCC^{\mathsf T}C are 3⋅5=153 \cdot 5 = 15, so A1=3 1A\mathbf 1 = 3\,\mathbf 1. Expanding the square then gives

A2+A−2I=J.A^2 + A - 2I = J.

So the graph with adjacency matrix AA is 3-regular on 10 vertices, adjacent vertices have no common neighbour, and non-adjacent vertices have exactly one. (This is the Petersen graph, though the argument never needs that.)

Removing two vertices leaves it connected. Let DD be a set of at most 2 vertices, and suppose the graph minus DD is disconnected. Fix a remaining vertex zz. A remaining vertex xx outside zz‘s component is not adjacent to zz, so they have exactly one common neighbour, and it lies in DD (otherwise it would join the two components). A vertex of DD adjacent to zz has only two other neighbours, so at most 2∣D∣2|D| remaining vertices lie outside zz‘s component. So every component contains all but at most 2∣D∣2|D| of the 10−∣D∣10 - |D| remaining vertices. If ∣D∣≤1|D| \le 1, two components would each have at least 7 vertices, which is too many. If ∣D∣=2|D| = 2, there are exactly two components of 4 vertices each, and the count is tight only if every remaining vertex is adjacent to both vertices of DD. Then the vertices of DD have degree 8, not 3.

Colours. Every x∈Xx \in X has degree 9+dG(x)≥119 + d_{\mathcal G}(x) \ge 11, so dG(x)≥2d_{\mathcal G}(x) \ge 2. The three G\mathcal G-blocks have 42 incidences on 20 points, so exactly two points a,ba,b have dG=3d_{\mathcal G} = 3 and the other 18 have dG=2d_{\mathcal G} = 2. Each of those 18 misses exactly one G\mathcal G-block; call that block its colour. A G\mathcal G-block misses exactly 6 points of XX, so each colour has at most 6 points.

Edges force equal colours. If classes i,ji,j are adjacent, then for any xx in ii and yy in jj, λH(x,y)=2\lambda_{\mathcal H}(x,y) = 2 and λE(x,y)=λF(x,y)=3−2=1\lambda_{\mathcal E}(x,y) = \lambda_{\mathcal F}(x,y) = 3 - 2 = 1 by Corollary 5. Since λ(x,y)≥6\lambda(x,y) \ge 6, the two points share at least 2 G\mathcal G-blocks. If both have dG=2d_{\mathcal G} = 2, they are in the same two blocks and have the same colour.

Contradiction. Delete the at most two classes containing aa or bb. The remaining classes (at least 8) induce a connected graph, every remaining class has a neighbour, and all their points (at least 16) have dG=2d_{\mathcal G} = 2. Colours agree along every edge, for both points of each class, so all of these points share one colour. But a colour has at most 6 points. □\square

In Lean

Checked by Lean5 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 7 of 8

No exceptional components

The size-2 component is a twin pair whose 11 blocks are again a doubled design. That splits every twin pair across the larger components, leaving six or more points whose missing blocks would need 18 different pairs of blocks out of 15.

The idea

In the other case the size-2 component is a twin pair q, q′. Their 11 blocks, with q and q′ removed, are exactly the object of Lemma 4: every triple of the other 22 points covered, each point in 6. So those 22 points pair into twins, and every signing that adds up to zero on each block is opposite on twins. That splits every twin pair across the two sides of each larger component.

Take one side of each larger component: 6 or 7 low points, no two of them twins. Each is in 11 blocks, 6 of them through q, so it misses exactly 3 of the other 8. Counting shows any two of these missing triples share exactly one block, and a high point misses 2 blocks that none of them touch. So six or more triples, pairwise sharing one block, must fit into the remaining 6 blocks:

Fit the missing triples

Six blocks, drawn as dots. Each chosen point misses three of them, a triangle here. Any two triangles must share exactly one corner. Step 7 needs at least six triangles. Pick as many as you can.

123456

0 triangles · 0 of 15 pairs of blocks used

The full argument

Permalink

Proposition 8. A 19-block (24,14,4)(24,14,4) covering in case (b) cannot have balanced components of sizes {2,6,6}\{2,6,6\} or {2,6,8}\{2,6,8\}.

Proof. Let h1,h2h_1,h_2 be the high points and {q,q′}\{q,q'\} the size-2 component, a twin pair. Let P\mathcal P be the 11 blocks through qq (and q′q'), let R\mathcal R be the other 8, and let YY be the other 22 points.

The providers are rigid. On YY, P\mathcal P consists of 11 blocks of size 12 covering every triple (look at {q,x,y,z}\{q,x,y,z\}). By Lemma 3, λ(q,y)=6\lambda(q,y) = 6 for every y∈Yy \in Y, so every point of YY has degree 6 in P\mathcal P. Lemma 4 gives a twin involution σ\sigma of YY with λP=3\lambda_{\mathcal P} = 3 off the twin pairs. In R\mathcal R, low points of YY have degree 11−6=511 - 6 = 5 and h1,h2h_1,h_2 have degree 12−6=612 - 6 = 6.

Components split twin pairs. Let KK be one of the two larger components, with alternating vector zz. By Lemma 3, zz sums to zero on every block, in particular on every block of P\mathcal P, so Lemma 4 gives z(σ(y))=−z(y)z(\sigma(y)) = -z(y). Hence σ\sigma maps each side of KK onto the other.

Selected points. Let SS be one side of the size-6 component together with one side of the other large component: 6 or 7 low points, no two of them twins. For distinct x,y∈Sx,y \in S, λ(x,y)=6\lambda(x,y) = 6 by Lemma 3 and λP(x,y)=3\lambda_{\mathcal P}(x,y) = 3, so λR(x,y)=3\lambda_{\mathcal R}(x,y) = 3. For x∈Sx \in S, likewise λ(x,h1)=6\lambda(x,h_1) = 6 and λP(x,h1)=3\lambda_{\mathcal P}(x,h_1) = 3 (the twin of xx is a low point on the other side), so λR(x,h1)=3\lambda_{\mathcal R}(x,h_1) = 3.

Counting in R\mathcal R. For x∈Sx \in S let O(x)O(x) be the 3 blocks of R\mathcal R missing xx, and let O(h1)O(h_1) be the 2 missing h1h_1. Inclusion–exclusion in the 8 blocks gives

∣O(x)∩O(y)∣=8−(5+5−3)=1,∣O(x)∩O(h1)∣=8−(5+6−3)=0.|O(x) \cap O(y)| = 8 - (5 + 5 - 3) = 1, \qquad |O(x) \cap O(h_1)| = 8 - (5 + 6 - 3) = 0.

So at least six triples O(x)O(x) lie inside the 6 blocks outside O(h1)O(h_1), and any two share exactly one block. Each triple contains 3 pairs of blocks, and no pair is in two triples, so they need at least 18 different pairs. A 6-set has only 15. □\square

In Lean

Checked by Lean5 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Step 8 of 8

Conclusion

No 19-block covering exists, fewer blocks can be padded up to 19, and so at least 20 are needed. Counting through one point of a (25,15,5) covering then gives 34.

The idea

Both cases fail, so no covering has exactly 19 blocks. A covering with fewer could be padded to 19 by repeating one of its blocks; nothing in the argument assumed the blocks were different, so that fails too. Every covering needs at least 20 blocks.

The bound climbs from there. The blocks through any point of a (25,15,5) covering form a (24,14,4) covering, so every point is in at least 20 of them, and 25 × 20 / 15 rounds up to 34. The same step keeps going:

One step changes the whole ladder

Schönheim’s bound: the blocks through any point form a smaller covering, so C(v, k, t) ≥ ⌈v/k × C(v−1, k−1, t−1)⌉. Each row uses the one above it.

Covering numberOld boundFromNew boundFrom
C(23,13,3)11⌈23 × 6 / 13⌉—
C(24,14,4)19⌈24 × 11 / 14⌉20this proof
C(25,15,5)32⌈25 × 19 / 15⌉34⌈25 × 20 / 15⌉
C(26,16,6)52⌈26 × 32 / 16⌉56⌈26 × 34 / 16⌉
C(27,17,7)83⌈27 × 52 / 17⌉89⌈27 × 56 / 17⌉
C(28,18,8)130⌈28 × 83 / 18⌉139⌈28 × 89 / 18⌉

The full argument

By Lemma 6, a 19-block (24,14,4)(24,14,4) covering has a balanced quadruple or exceptional components, and Propositions 7 and 8 rule out both. So no covering has exactly 19 blocks. A covering with fewer blocks can be padded to 19 by repeating a block, and nothing above assumed distinct blocks, so that is impossible too. Hence

C(24,14,4)≥20.C(24,14,4) \ge 20.

For C(25,15,5)C(25,15,5): the derived covering at any point of a (25,15,5)(25,15,5) covering is a (24,14,4)(24,14,4) covering, so every point has degree at least 20, and 15b≥25⋅2015b \ge 25 \cdot 20 gives b≥34b \ge 34.

The same Schönheim step also raises the tabulated lower bounds for C(26,16,6)C(26,16,6) from 52 to 56, C(27,17,7)C(27,17,7) from 83 to 89 and C(28,18,8)C(28,18,8) from 130 to 139. These are not formalized here.

In Lean

Checked by Lean3 Lean declarations

Spotted a mistake? Suggest a fix to PROOF.md, which this page is built from.

Questions

What does Lean actually check?

Lean’s kernel checks every step of the formal proof, starting from the definitions of a covering, and the final theorems use only Lean’s three standard axioms. Comparator checks that the proved statement is exactly the textbook one. What Lean doesn’t check is this page: the explanations here were written by AI from the agents’ notes. More on what’s checked.

Why does the proof allow repeated blocks?

The agents modelled a covering as a list of blocks, so the same block can appear twice. That makes the theorem slightly stronger, and it makes Step 8 work: a covering with fewer than 19 blocks can be padded to exactly 19 by repeating one.

What is a symmetric 2-(11,6,3) design?

Eleven points and eleven blocks of six points each, such that every two points lie in exactly three common blocks. Any two blocks then share exactly three points. It is the complement of the Paley biplane, whose blocks are the translates of the squares 1, 3, 4, 5, 9 modulo 11. Step 4’s figure shows it with every point doubled.

Is this result new?

The covering repositories list 19 as the best lower bound for C(24,14,4), derived from C(22,12,2) = 6 by Schönheim’s bound, and a literature search found no published proof of 20. A mathematician’s review is still pending.

Does this say what C(24,14,4) is?

No. It is at least 20, and the best known covering has 23 blocks. Whether 20, 21 or 22 blocks can work is open.

Notation

d(x)
Degree: the number of blocks containing x.
λ(x,y)
Codegree: the number of blocks containing both x and y.
w(x,y)
Excess: λ(x,y) − 6, how far a pair sits above its floor.
L
The low points: those of degree 11.
Γ, δ(x)
The excess graph on L, and the excess x sends to other low points.
M, G
The incidence matrix (points × blocks) and its Gram matrix G = MMᵀ.
I, J
The identity matrix and the all-ones matrix.
σ
The twin pairing: σ(y) is the twin of y.
𝓗, 𝓔, 𝓕, 𝓖
Step 6: blocks with both u and v, only u, only v, neither.
𝒫, ℛ
Step 7: the 11 blocks through the twin pair, and the other 8.
O(x)
Step 7: the blocks of ℛ that miss x.