/-
Copyright 2026 The Formal Conjectures Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/
import FormalConjecturesUtilSteiner Systems
A Steiner system $S(t, k, n)$ is a collection of $k$-element subsets (called blocks) of an $n$-element set such that every $t$-element subset is contained in exactly one block.
Large Steiner Systems by Kunal Marwaha
namespace SteinerSystems
An $S(t, k, n)$-Steiner system is a collection of $k$-element subsets (called blocks) of ${0, \ldots, n-1}$ such that every $t$-element subset is contained in exactly one block.
This is the standard notation from combinatorics, where:
$n$ is the number of points
$k$ is the block size
$t$ is the covering parameter (every $t$-subset is in exactly one block)
structure SteinerSystem (t k n : ℕ) whereThe blocks of the Steiner system.
blocks : Finset (Finset (Fin n))Every block has exactly $k$ elements.
block_card : ∀ B ∈ blocks, B.card = k
Every $t$-element subset is contained in exactly one block.
Note: We use .filter.card = 1 instead of ∃! because ∃! B ∈ blocks, R ⊆ B desugars to
a quantifier over all Finset (Fin n), which loses Decidable and breaks native_decide.
cover_unique : ∀ R : Finset (Fin n), R.card = t → (blocks.filter (R ⊆ ·)).card = 1
Notation for Steiner systems: S(t, k, n) denotes a Steiner system with
covering parameter t, block size k, and n points.
scoped notation "S(" t ", " k ", " n ")" => SteinerSystem t k n
A constructive witness for a large Steiner system: concrete values of $n$, $k$, $t$ satisfying $n > k > t > 5$, $t < 10$, $n < 200$, together with an explicit Steiner system.
structure LargeSteinerSystemWitness whereThe size of the ground set.
n : ℕThe block size.
k : ℕThe covering parameter.
t : ℕ
h_nk : n > k
h_kt : k > t
h_t_lower : t > 5
h_t_upper : t < 10
h_n_upper : n < 200The explicit Steiner system.
system : S(t, k, n)
Construct an $S(t, k, n)$-Steiner system with $n > k > t > 5$, $t < 10$, and $n < 200$.
No example of a Steiner system with $t > 5$ is known, despite a 2014 existence theorem by Keevash showing that such systems must exist for sufficiently large $n$.
@[category research open, AMS 5]
def large_steiner_systems : LargeSteinerSystemWitness := ⊢ LargeSteinerSystemWitness
All goals completed! 🐙
Sanity check: the Fano plane is an $S(2, 3, 7)$-Steiner system.
The Fano plane consists of $7$ blocks of size $3$ over $7$ points, where every pair of points is contained in exactly one block.
@[category test, AMS 5]
def fano_plane : S(2, 3, 7) :=
⟨{{(0 : Fin 7), 1, 3}, {1, 2, 4}, {2, 3, 5},
{3, 4, 6}, {0, 4, 5}, {1, 5, 6}, {0, 2, 6}},
⊢ ∀ B ∈ {{0, 1, 3}, {1, 2, 4}, {2, 3, 5}, {3, 4, 6}, {0, 4, 5}, {1, 5, 6}, {0, 2, 6}}, B.card = 3 All goals completed! 🐙, ⊢ ∀ (R : Finset (Fin 7)),
R.card = 2 → {x ∈ {{0, 1, 3}, {1, 2, 4}, {2, 3, 5}, {3, 4, 6}, {0, 4, 5}, {1, 5, 6}, {0, 2, 6}} | R ⊆ x}.card = 1 All goals completed! 🐙⟩
Existence of $S(5, 6, 12)$: The small Witt design.
There exists a unique Steiner system $S(5, 6, 12)$, known as the small Witt design. It was constructed by Witt (1938) and is closely related to the Mathieu group $M_{12}$. This is one of only two known Steiner systems with $t = 5$.
@[category research solved, AMS 5]
theorem steiner_system_5_6_12 : Nonempty S(5, 6, 12) :=
⟨⟨{{0, 1, 2, 3, 4, 9},
{0, 1, 2, 3, 5, 11},
{0, 1, 2, 3, 6, 7},
{0, 1, 2, 3, 8, 10},
{0, 1, 2, 4, 5, 7},
{0, 1, 2, 4, 6, 8},
{0, 1, 2, 4, 10, 11},
{0, 1, 2, 5, 6, 10},
{0, 1, 2, 5, 8, 9},
{0, 1, 2, 6, 9, 11},
{0, 1, 2, 7, 8, 11},
{0, 1, 2, 7, 9, 10},
{0, 1, 3, 4, 5, 8},
{0, 1, 3, 4, 6, 10},
{0, 1, 3, 4, 7, 11},
{0, 1, 3, 5, 6, 9},
{0, 1, 3, 5, 7, 10},
{0, 1, 3, 6, 8, 11},
{0, 1, 3, 7, 8, 9},
{0, 1, 3, 9, 10, 11},
{0, 1, 4, 5, 6, 11},
{0, 1, 4, 5, 9, 10},
{0, 1, 4, 6, 7, 9},
{0, 1, 4, 7, 8, 10},
{0, 1, 4, 8, 9, 11},
{0, 1, 5, 6, 7, 8},
{0, 1, 5, 7, 9, 11},
{0, 1, 5, 8, 10, 11},
{0, 1, 6, 7, 10, 11},
{0, 1, 6, 8, 9, 10},
{0, 2, 3, 4, 5, 6},
{0, 2, 3, 4, 7, 10},
{0, 2, 3, 4, 8, 11},
{0, 2, 3, 5, 7, 8},
{0, 2, 3, 5, 9, 10},
{0, 2, 3, 6, 8, 9},
{0, 2, 3, 6, 10, 11},
{0, 2, 3, 7, 9, 11},
{0, 2, 4, 5, 8, 10},
{0, 2, 4, 5, 9, 11},
{0, 2, 4, 6, 7, 11},
{0, 2, 4, 6, 9, 10},
{0, 2, 4, 7, 8, 9},
{0, 2, 5, 6, 7, 9},
{0, 2, 5, 6, 8, 11},
{0, 2, 5, 7, 10, 11},
{0, 2, 6, 7, 8, 10},
{0, 2, 8, 9, 10, 11},
{0, 3, 4, 5, 7, 9},
{0, 3, 4, 5, 10, 11},
{0, 3, 4, 6, 7, 8},
{0, 3, 4, 6, 9, 11},
{0, 3, 4, 8, 9, 10},
{0, 3, 5, 6, 7, 11},
{0, 3, 5, 6, 8, 10},
{0, 3, 5, 8, 9, 11},
{0, 3, 6, 7, 9, 10},
{0, 3, 7, 8, 10, 11},
{0, 4, 5, 6, 7, 10},
{0, 4, 5, 6, 8, 9},
{0, 4, 5, 7, 8, 11},
{0, 4, 6, 8, 10, 11},
{0, 4, 7, 9, 10, 11},
{0, 5, 6, 9, 10, 11},
{0, 5, 7, 8, 9, 10},
{0, 6, 7, 8, 9, 11},
{1, 2, 3, 4, 5, 10},
{1, 2, 3, 4, 6, 11},
{1, 2, 3, 4, 7, 8},
{1, 2, 3, 5, 6, 8},
{1, 2, 3, 5, 7, 9},
{1, 2, 3, 6, 9, 10},
{1, 2, 3, 7, 10, 11},
{1, 2, 3, 8, 9, 11},
{1, 2, 4, 5, 6, 9},
{1, 2, 4, 5, 8, 11},
{1, 2, 4, 6, 7, 10},
{1, 2, 4, 7, 9, 11},
{1, 2, 4, 8, 9, 10},
{1, 2, 5, 6, 7, 11},
{1, 2, 5, 7, 8, 10},
{1, 2, 5, 9, 10, 11},
{1, 2, 6, 7, 8, 9},
{1, 2, 6, 8, 10, 11},
{1, 3, 4, 5, 6, 7},
{1, 3, 4, 5, 9, 11},
{1, 3, 4, 6, 8, 9},
{1, 3, 4, 7, 9, 10},
{1, 3, 4, 8, 10, 11},
{1, 3, 5, 6, 10, 11},
{1, 3, 5, 7, 8, 11},
{1, 3, 5, 8, 9, 10},
{1, 3, 6, 7, 8, 10},
{1, 3, 6, 7, 9, 11},
{1, 4, 5, 6, 8, 10},
{1, 4, 5, 7, 8, 9},
{1, 4, 5, 7, 10, 11},
{1, 4, 6, 7, 8, 11},
{1, 4, 6, 9, 10, 11},
{1, 5, 6, 7, 9, 10},
{1, 5, 6, 8, 9, 11},
{1, 7, 8, 9, 10, 11},
{2, 3, 4, 5, 7, 11},
{2, 3, 4, 5, 8, 9},
{2, 3, 4, 6, 7, 9},
{2, 3, 4, 6, 8, 10},
{2, 3, 4, 9, 10, 11},
{2, 3, 5, 6, 7, 10},
{2, 3, 5, 6, 9, 11},
{2, 3, 5, 8, 10, 11},
{2, 3, 6, 7, 8, 11},
{2, 3, 7, 8, 9, 10},
{2, 4, 5, 6, 7, 8},
{2, 4, 5, 6, 10, 11},
{2, 4, 5, 7, 9, 10},
{2, 4, 6, 8, 9, 11},
{2, 4, 7, 8, 10, 11},
{2, 5, 6, 8, 9, 10},
{2, 5, 7, 8, 9, 11},
{2, 6, 7, 9, 10, 11},
{3, 4, 5, 6, 8, 11},
{3, 4, 5, 6, 9, 10},
{3, 4, 5, 7, 8, 10},
{3, 4, 6, 7, 10, 11},
{3, 4, 7, 8, 9, 11},
{3, 5, 6, 7, 8, 9},
{3, 5, 7, 9, 10, 11},
{3, 6, 8, 9, 10, 11},
{4, 5, 6, 7, 9, 11},
{4, 5, 8, 9, 10, 11},
{4, 6, 7, 8, 9, 10},
{5, 6, 7, 8, 10, 11}},
⊢ ∀
B ∈
insert {0, 1, 2, 3, 4, 9}
(insert {0, 1, 2, 3, 5, 11}
(insert {0, 1, 2, 3, 6, 7}
(insert {0, 1, 2, 3, 8, 10}
(insert {0, 1, 2, 4, 5, 7}
(insert {0, 1, 2, 4, 6, 8}
(insert {0, 1, 2, 4, 10, 11}
(insert {0, 1, 2, 5, 6, 10}
(insert {0, 1, 2, 5, 8, 9}
(insert {0, 1, 2, 6, 9, 11}
(insert {0, 1, 2, 7, 8, 11}
(insert {0, 1, 2, 7, 9, 10}
(insert {0, 1, 3, 4, 5, 8}
(insert {0, 1, 3, 4, 6, 10}
(insert {0, 1, 3, 4, 7, 11}
(insert {0, 1, 3, 5, 6, 9}
(insert {0, 1, 3, 5, 7, 10}
(insert {0, 1, 3, 6, 8, 11}
(insert {0, 1, 3, 7, 8, 9}
(insert {0, 1, 3, 9, 10, 11}
(insert {0, 1, 4, 5, 6, 11}
(insert {0, 1, 4, 5, 9, 10}
(insert {0, 1, 4, 6, 7, 9}
(insert {0, 1, 4, 7, 8, 10}
(insert {0, 1, 4, 8, 9, 11}
(insert {0, 1, 5, 6, 7, 8}
(insert {0, 1, 5, 7, 9, 11}
(insert {0, 1, 5, 8, 10, 11}
(insert {0, 1, 6, 7, 10, 11}
(insert {0, 1, 6, 8, 9, 10}
(insert {0, 2, 3, 4, 5, 6}
(insert {0, 2, 3, 4, 7, 10}
(insert {0, 2, 3, 4, 8, 11}
(insert {0, 2, 3, 5, 7, 8}
(insert {0, 2, 3, 5, 9, 10}
(insert {0, 2, 3, 6, 8, 9}
(insert {0, 2, 3, 6, 10, 11}
(insert {0, 2, 3, 7, 9, 11}
(insert {0, 2, 4, 5, 8, 10}
(insert {0, 2, 4, 5, 9, 11}
(insert {0, 2, 4, 6, 7, 11}
(insert {0, 2, 4, 6, 9, 10}
(insert {0, 2, 4, 7, 8, 9}
(insert {0, 2, 5, 6, 7, 9}
(insert {0, 2, 5, 6, 8, 11}
(insert
{0, 2, 5, 7, 10, 11}
(insert (insert 0 ⋯)
(insert ⋯
⋯))))))))))))))))))))))))))))))))))))))))))))))),
B.card = 6 All goals completed! 🐙, ⊢ ∀ (R : Finset (Fin 12)),
R.card = 5 →
{x ∈
insert {0, 1, 2, 3, 4, 9}
(insert {0, 1, 2, 3, 5, 11}
(insert {0, 1, 2, 3, 6, 7}
(insert {0, 1, 2, 3, 8, 10}
(insert {0, 1, 2, 4, 5, 7}
(insert {0, 1, 2, 4, 6, 8}
(insert {0, 1, 2, 4, 10, 11}
(insert {0, 1, 2, 5, 6, 10}
(insert {0, 1, 2, 5, 8, 9}
(insert {0, 1, 2, 6, 9, 11}
(insert {0, 1, 2, 7, 8, 11}
(insert {0, 1, 2, 7, 9, 10}
(insert {0, 1, 3, 4, 5, 8}
(insert {0, 1, 3, 4, 6, 10}
(insert {0, 1, 3, 4, 7, 11}
(insert {0, 1, 3, 5, 6, 9}
(insert {0, 1, 3, 5, 7, 10}
(insert {0, 1, 3, 6, 8, 11}
(insert {0, 1, 3, 7, 8, 9}
(insert {0, 1, 3, 9, 10, 11}
(insert {0, 1, 4, 5, 6, 11}
(insert {0, 1, 4, 5, 9, 10}
(insert {0, 1, 4, 6, 7, 9}
(insert {0, 1, 4, 7, 8, 10}
(insert {0, 1, 4, 8, 9, 11}
(insert {0, 1, 5, 6, 7, 8}
(insert {0, 1, 5, 7, 9, 11}
(insert {0, 1, 5, 8, 10, 11}
(insert {0, 1, 6, 7, 10, 11}
(insert {0, 1, 6, 8, 9, 10}
(insert {0, 2, 3, 4, 5, 6}
(insert {0, 2, 3, 4, 7, 10}
(insert {0, 2, 3, 4, 8, 11}
(insert {0, 2, 3, 5, 7, 8}
(insert {0, 2, 3, 5, 9, 10}
(insert {0, 2, 3, 6, 8, 9}
(insert {0, 2, 3, 6, 10, 11}
(insert {0, 2, 3, 7, 9, 11}
(insert {0, 2, 4, 5, 8, 10}
(insert {0, 2, 4, 5, 9, 11}
(insert {0, 2, 4, 6, 7, 11}
(insert
{0, 2, 4, 6, 9, 10}
(insert
{0, 2, 4, 7, 8, 9}
(insert
{0, 2, 5, 6, 7, 9}
(insert (insert 0 ⋯)
(insert ⋯
⋯))))))))))))))))))))))))))))))))))))))))))))) |
R ⊆ x}.card =
1 All goals completed! 🐙⟩⟩
Existence of $S(5, 8, 24)$: The large Witt design.
There exists a unique Steiner system $S(5, 8, 24)$, known as the large Witt design. It was constructed by Witt (1938) and is closely related to the Mathieu group $M_{24}$. This is one of only two known Steiner systems with $t = 5$.
@[category research solved, AMS 5]
theorem steiner_system_5_8_24 : Nonempty S(5, 8, 24) := ⊢ Nonempty S(5, 8, 24)
All goals completed! 🐙
There are infinitely many Steiner systems with $t = 4$.
Keevash (2014) proved that for any fixed $t$ and $k$, a Steiner system $S(t, k, n)$ exists for all sufficiently large $n$ satisfying the necessary divisibility conditions. Since there are infinitely many such admissible $n$, this implies infinitely many $S(4, k, n)$ systems exist (for any fixed $k > 4$). The proof is nonconstructive.
Explicit examples include $S(4, 5, 11)$ (the unique system, related to the Mathieu group $M_{11}$) and $S(4, 7, 23)$ (related to the Mathieu group $M_{23}$).
@[category research solved, AMS 5]
theorem infinitely_many_steiner_t4 :
∃ S : Set (Σ k n : ℕ, S(4, k, n)), S.Infinite := ⊢ ∃ S, S.Infinite
All goals completed! 🐙
There are infinitely many Steiner systems with $t = 5$.
Keevash (2014) proved that for any fixed $t$ and $k$, a Steiner system $S(t, k, n)$ exists for all sufficiently large $n$ satisfying the necessary divisibility conditions. This settles the long-standing open problem of whether infinitely many $S(5, k, n)$ systems exist. The proof is nonconstructive.
Only two explicit examples are known: $S(5, 6, 12)$ and $S(5, 8, 24)$, both Witt designs related to the Mathieu groups $M_{12}$ and $M_{24}$ respectively. No Steiner system with $t \geq 6$ has been explicitly constructed, though Keevash's result guarantees their existence nonconstructively as well.
@[category research solved, AMS 5]
theorem infinitely_many_steiner_t5 :
∃ S : Set (Σ k n : ℕ, S(5, k, n)), S.Infinite := ⊢ ∃ S, S.Infinite
All goals completed! 🐙
end SteinerSystems