The cap-set problem
Take π½ββΏ, the n-dimensional vector space over the field with three elements. A subset S β π½ββΏ is a cap set if it contains no three-term arithmetic progression β equivalently, no three distinct elements that sum to zero. The cap-set problem asks: how large can a cap set be?
The cardinality of the largest cap set is denoted rβ(n) (or sometimes f(n) in the literature). The trivial upper bound is |π½ββΏ| = 3βΏ. The question is how much less.
The SET game
Cap sets in π½ββ΄ are exactly collections of cards from the game SET with no valid SET. A SET card has four attributes (colour, shape, shading, number), each in three values β a vector in π½ββ΄. A SET is three cards that, in each attribute, are either all the same or all different β i.e. three cards summing to (0, 0, 0, 0) in π½ββ΄. The famous result rβ(4) = 20 says you can lay out 20 cards on the table with no valid SET (and 21 is impossible). Players sometimes hit this configuration in real games and stare in dismay.
Small known values:
- rβ(1) = 2 (any two of three)
- rβ(2) = 4 (the page's n = 2 mode)
- rβ(3) = 9 (the n = 3 mode)
- rβ(4) = 20 (the SET game)
- rβ(5) = 45
- rβ(6) = 112
For larger n the exact value is unknown.
The long climb
Upper bounds on rβ(n) drifted down over decades:
- BrownβBuhler 1982, then FranklβGrahamβRΓΆdl 1987, then Meshulam 1995: rβ(n) β€ O(3βΏ / n) β only a polynomial improvement over the trivial bound, but enough to prove the set has density tending to zero.
- BatemanβKatz 2012: rβ(n) β€ O(3βΏ / n1+Ξ΅) for a tiny Ξ΅ β squeezed further.
Then May 2016 happened. Croot, Lev, and Pach posted an arXiv preprint proving an analogous bound for π½ββΏ using a clever polynomial argument. Within ten days, Ellenberg and Gijswijt adapted the technique to π½ββΏ and proved:
rβ(n) β€ O(2.756βΏ).
This is exponentially better than the 3βΏ / poly bound β the base of the exponent dropped from 3 to a number strictly less than 3 β and constituted one of the largest single-step improvements in combinatorics in a generation. The exact constant is
Ξ β 2.7551 = 3 Β· (the unique root of a specific cubic in (1, 3)),
and the proof, in the original EllenbergβGijswijt version, fits in three pages.
The polynomial method, again
The strategy is the same one we saw in Dvir's kakeya proof and GuthβKatz's distinct-distances proof: count polynomials, restrict to lines, force a contradiction.
- For a cap set S β π½ββΏ, consider polynomials in n variables over π½β of bounded degree.
- If |S| is too large, there's a non-zero polynomial P of low degree vanishing on S. Linear algebra: a polynomial space of dimension > |S| can hit a non-zero solution to the |S| linear conditions "P(x) = 0 for each x β S."
- The trick is to construct P from a tensor-rank computation that's specific to π½β and to the three-term-progression structure. The "slice rank" of a matrix factorisation drives the exponent down from 3 to 2.756.
- The bound follows from comparing slice rank to dimension.
The slice-rank technique introduced here has since proliferated through additive combinatorics β Naslund's bounds on HalesβJewett, Kleinberg's tight bound on the four-term variant, and others all use it.
What's still open
Is the new bound tight? Probably not. The largest known cap sets (Edel 2004, CalderbankβFishburn 1994) achieve only ~2.217βΏ asymptotically, leaving a gap with 2.756βΏ. Closing this gap β finding the true exponent of rβ(n) β is the cap-set problem's current frontier.
What's in this site
- cap β interactive π½ββΏ explorer for n β {2, 3}. Click cells to toggle membership; any three cells of your set that sum to zero get highlighted in red. The stats panel tracks size, violation count, and the known optimum (4 for n = 2, 9 for n = 3). The reveal max button runs a randomised greedy search to find a maximum cap set in real time.
- growth β log-scale plot of cap-set bounds versus n: trivial 3βΏ, Meshulam's 1995 3βΏ/n, EllenbergβGijswijt's 2016 2.756βΏ, and Edel's 2004 lower bound 2.21βΏ, with the known small-n exact values plotted on top. The 2016 line is drawn extra-thick to show where the big drop happened.
- docs β this page.
Polynomial-method trilogy, closed
kakeya (2008, Dvir, π½qβΏ) β guthkatz (2015, βΒ²) β capset (2016, π½ββΏ). Eight years, three theorems, one method. The pattern is now textbook: count low-degree polynomials, exploit their vanishing on a sparse set, restrict to algebraic curves, force contradiction. The method continues to surprise β every few years, a long-standing problem in extremal combinatorics or harmonic analysis falls to a clever application of it.
- Croot, E., Lev, V. & Pach, P. (2016). Progression-free sets in β€ββΏ are exponentially small.
- Ellenberg, J. & Gijswijt, D. (2016). On large subsets of π½qβΏ with no three-term arithmetic progression. Annals of Mathematics 185 (2017), 339β343.
- Terry Tao β symmetric formulation of the bound on his blog.
- Edel, Y. (2004). Extensions of generalized product caps. Designs, Codes and Cryptography 31, 5β14. β the best lower bound construction.
- Meshulam, R. (1995). On subsets of finite abelian groups with no 3-term arithmetic progressions. Journal of Combinatorial Theory A 71, 168β172.