ACE LAB · COMPLEXITY
The ACE Complexity Lab
Exponential growth, a real SAT solver, a search tree you can step through, and a working miniature of the counting idea in the new OpenAI paper on the Exponential Time Hypothesis.
I built this alongside my article AI challenged a fundamental limit of computing. Everything here runs in your browser, in a background worker, with exact integer arithmetic. Nothing is sent anywhere.
A · EXPONENTIAL GROWTH
Why 2n wins every argument.
A formula with n true-or-false variables has 2n possible assignments. Checking them all is the brute-force baseline every SAT result is measured against. Move the slider and watch how quickly the number stops being something you can wait for.
2n exactly:
Scientific notation:
Time to check every assignment:
Data table for the chart
| n | 2n | 2n/√log2n | n3 |
|---|
B · SAT PLAYGROUND
Solve a real formula.
A 3-SAT formula is a list of clauses. Each clause is three literals joined by OR, and the whole formula is satisfied when every clause has at least one true literal. Write one clause per line as numbers ending in 0, the DIMACS style: 1 -2 3 0 means x1 or not x2 or x3.
Random 3-SAT has a sharp transition at about 4.26 clauses per variable. Below it most formulas are satisfiable, above it most are not, and the hardest instances cluster right at the edge. Try the ratio slider either side of 4.26.
Up to 300 variables and 2,000 clauses. Lines starting with c are comments.
Load a preset or generate a formula, then solve it.
C · SEARCH TREE
Watch DPLL prune the search.
DPLL guesses a variable, then follows the consequences. When a clause has only one literal left, that literal is forced (unit propagation). When a variable only ever appears one way round, it can be set that way for free (pure literal). A clause with nothing left is a conflict and the solver backs up. Every forced literal is a branch that never needs exploring.
decision forced literals conflict satisfying leaf exhausted pruned by propagation
Choose a formula to build the tree.
Text version of the search
D · THE NEW MATHEMATICS
Counting by polynomials, in plain words.
The paper does not search for one solution. It counts all of them exactly, which is harder, and it does it with algebra rather than branching. Here is the construction from Sections 2.2 to 2.5, as I understand it.
- Clauses become polynomials. A clause like x1 or not x2 or x3 becomes Φ = 1 − (1 − x1)·x2·(1 − x3). On true-or-false inputs it is 1 when the clause is satisfied and 0 when it is not.
- The count is a sum of products. Multiply every clause polynomial together and add the result over all 2n assignments: the total is exactly the number of satisfying assignments, #F. Done naively, that is brute force again.
- Bend the inputs with a parameter T. Each place a variable is used inside a clause is replaced by a linear form that equals the variable exactly when T = 0 but can be something easier at T = 1, 2, …, Q. That defines a polynomial H(T) with H(0) = #F.
- Split variables into groups that only talk through measurements. At each easy point, the variables fall into groups. A clause may reach outside its own group only through a few integer “measurements” of another group, such as how many of its variables are true.
- Fix the measurements and the sum factorises. Enumerate every possible tuple of measurement values. For a fixed tuple, each group can be summed on its own, and the group sums simply multiply. Adding over all tuples gives H(t) exactly.
- Recover T = 0 from the easy points. A few values of H are not enough to pin it down, so the method computes Taylor coefficients at each point, using inclusion-exclusion to keep the groups separate, then solves a Hermite interpolation system over exact rationals. The constant term is the count.
- General formulas first become sparse ones. Any k-CNF is reduced to bounded-occurrence pieces with counting-preserving sparsification and variable copying, so the method above applies.
- The sharpest bound is tensor contraction. Appendix D recasts the whole thing as contracting a Boolean tensor network recursively, working modulo powers of two (2-adically), and that is where the 2O(n/√log n) rate for sparse formulas comes from.
What is genuinely new is how the paper builds the bent linear forms so that very few measurements are needed while the degree stays low (Section 4), and the 2-adic recursion in Appendix D. Arithmetisation, split-and-sum and interpolation are older tools, credited in the paper.
The catch for practice: the number of groups grows like √log n divided by (log log n)2. By my reading of the parameter choices, that only reaches 2 when n is around e100000. For any formula a computer could store, the method gives no speed-up over brute force at all. It is a theorem about the shape of the curve, not a faster solver.
A working miniature
This runs the real identities from Sections 2.3 to 2.5 on a small formula: bent linear forms, one measurement per group, measurement enumeration, inclusion-exclusion over Taylor coefficients, and Hermite interpolation with BigInt fractions. The bending I use is my own simple choice (a variable used across groups slides towards its group's average as T moves to an easy point), not the paper's Section 4 construction, so it only works because the formulas are tiny and the groups barely touch.
Conceptual animation, not the algorithm
Select a variable (click, or Tab then Enter) to move it to the other group. Fewer dashed links means fewer measurements and a cheaper count.
E · ACE EXPERIMENTS
What we measured in our own code.
The paper itself will not speed up a web server. The habit behind it, asking whether the obvious exhaustive approach is really the limit, does. These are before-and-after measurements from ACE projects. Each one lists its input, the spread of runs and what we gave up for the gain.
Loading measurements…
SOURCES
Where this comes from.
- The repository: github.com/openai/math
- The paper:
preprints/The-Exponential-Time-Hypothesis-is-False-October-25-2026/paper.pdf, Theorem 1.1, Sections 2.2 to 2.5 and Appendix D - The Lean formalisation notes: lean/docs/378.md
- My article: AI challenged a fundamental limit of computing
The solver, the tree and the miniature are my own small implementations for teaching. They are checked against exhaustive enumeration, but they are not the paper's algorithm at scale and make no claim about its correctness.