sylvester
2396 · weaving a hadamard matrix, row by row
 
01

The question.

Picture a square grid, 2396 cells wide and 2396 tall, with every cell holding either +1 or −1. The goal is to fill it so that any two rows, multiplied cell by cell and added up, come to exactly zero. A grid like that is called a Hadamard matrix.

These grids are used in error-correcting codes, in signal processing and in the design of experiments. Mathematicians believe one exists for every size that is a multiple of 4, but nobody has proved it. 2396 is the smallest size for which nobody has ever found one.

02

The idea.

sylvester is an autonomous AI agent. It decides what to try, runs the experiment, scores the result, writes it down and decides what to try next, around the clock, with no person choosing its experiments or grading its work.

The thesis is that an AI agent working this way, running thousands of small, recorded experiments and learning from each failure, can make real progress on an open mathematical problem. It doesn't need to be trusted, because the answer can be checked exactly. A grid either has every pair of rows cancelling to zero or it doesn't, and anyone can test that in seconds.

Trying grids one by one would never finish: there are far more possible grids than atoms in the universe. A construction from 1970 (Goethals and Seidel) shrinks the problem to four strings of 599 signs each. If the four strings cancel perfectly, they assemble into the full grid. Those four strings are what the agent works on, and what the creature above is weaving.

03

What the agent does by itself.

  1. Chooses an experiment. It picks which family of patterns to try next, and how, giving more time to the ones that have been improving.
  2. Runs it. Two minutes of search on one processor core, starting from its best earlier attempt or from scratch. Five experiments run at once.
  3. Scores it. It measures how far the result is from perfect. Zero would mean the grid exists.
  4. Writes it down. Every attempt is saved with the attempt it grew from. So far: — attempts.
  5. Learns. It proved that — families of patterns can never work at this size and stopped searching them. It also records which methods do better.
  6. Checks before claiming. If a score ever reaches zero, two separately written programs rebuild the full grid and verify it before anything is announced.

It has been running since 4 November 2026, using — hours of processor time so far.

04

How close is it?

A random guess scores about 1.4 million. The agent's best attempt now scores —, and — of the 299 checks already balance perfectly. A score of zero would be a new result in mathematics.

It may never get there. This size may need a new kind of construction, as order 668 reportedly did when it was finally solved in August 2026. Even then, every attempt and every family it rules out is published, so the next person or agent starts further ahead.

Live report · revision —compiling

On a Hadamard matrix of order 2396

An autonomous AI agent, searching continuously since 4 November 2026 Recompiled from the agent's database every two minutes · last —
\(H\)
\(HH^{\mathsf T}\)
Figure 1. Left, the agent's best attempt so far, all \(2396^2\) entries (black \(=+1\)). Right, \(HH^{\mathsf T}\) for it. A solution would leave only the diagonal, as in the small square. Every other mark is an error. Hover to magnify.
Abstract. An autonomous AI agent chooses, runs and records its own experiments, with no human selecting or grading them. It searches for four \(\pm1\) sequences of length 599 whose periodic autocorrelations sum to zero at every nonzero shift. By the Goethals–Seidel array, such sequences give a Hadamard matrix of order 2396, the smallest order for which none is known. After — runs and — CPU hours, its best attempt has score —, with — of 299 shift classes exactly balanced. It has not found a construction. It has proved that no uniform multiplier-orbit family can work at this order (Observation 1), so it searches unstructured and mixed families.

1The problem

A Hadamard matrix of order \(n\) is an \(n \times n\) matrix \(H\) with entries \(\pm 1\) whose rows are pairwise orthogonal: $$HH^{\mathsf T} = nI_n.$$ Apart from \(n = 1, 2\), the order must be a multiple of 4. Hadamard's conjecture says every multiple of 4 is possible, and it is still open. As of November 2026, \(2396 = 4 \cdot 599\) is the smallest order for which no Hadamard matrix is known, and 95 orders below 10,000 are unknown. In August 2026, constructions were announced for order 668, the smallest open case for about twenty years, and for eleven more orders below 2000, found largely by computer search.

The answer can be checked exactly, so nothing here depends on anyone's judgement. A matrix either satisfies the equation or it does not.

2Construction

Take \(a, b, c, d \in \{\pm 1\}^{599}\) with circulant matrices \(A, B, C, D\). The periodic autocorrelation of \(a\) at shift \(s\) is $$\mathrm{PAF}_a(s) = \sum_{i=0}^{598} a_i\, a_{(i+s) \bmod 599},$$ and the agent minimises $$R_s = \mathrm{PAF}_a(s)+\mathrm{PAF}_b(s)+\mathrm{PAF}_c(s)+\mathrm{PAF}_d(s), \qquad L = \sum_{s=1}^{598} R_s^2 .$$ With \(R\) the back-diagonal permutation, the Goethals–Seidel array [1] $$H = \begin{pmatrix} A & BR & CR & DR \\ -BR & A & D^{\mathsf T}R & -C^{\mathsf T}R \\ -CR & -D^{\mathsf T}R & A & B^{\mathsf T}R \\ -DR & C^{\mathsf T}R & -B^{\mathsf T}R & A \end{pmatrix}$$ has \(HH^{\mathsf T}\) block diagonal for any four sequences, with the circulant \(\operatorname{circ}(2396, R_1, \dots, R_{598})\) in each of the four diagonal blocks. So \(L = 0\) exactly when \(H\) is a Hadamard matrix of order 2396. A random quadruple scores about \(1.43 \times 10^6\).

Figure 2. \(R_s\) for the best attempt, \(s = 1, \dots, 299\) (\(R_s = R_{599-s}\)). Dots on the axis are shifts that already balance: — of 299. A construction needs all 299.
Figure 3. The agent's best score over time, log scale. Each step down is a run that beat every earlier attempt.

3Observations

Written by the agent as it ran. Each is marked as proved, computed, checked or measured.

4Where it has looked

A family fixes how much multiplier symmetry each sequence must keep: \(\mathrm{H}k_1\text{-}k_2\text{-}k_3\text{-}k_4\) means sequence \(i\) is invariant under the subgroup of order \(k_i\) in \(\mathbb{Z}_{599}^{*}\). More symmetry means fewer variables and fewer possible answers. Of — families, — were ruled out by the row-sum test before any search. The strategist gives more time to the rest in proportion to how much they keep improving.

Table 1. Best score per family searched.
FamilyVariablesBest \(L\)Attempts kept

5Failed attempts

Every run that does not reach zero is a failed attempt, so far all of them. Each one is kept with its parent, and the next runs start from the best of them.

    6Verification

    Nothing counts as a construction unless two separately written programs agree. The first checks the autocorrelations, then builds the full matrix and checks \(HH^{\mathsf T} = 2396\,I\). The second rebuilds \(H\) entry by entry from the definition and checks it in integer arithmetic. The AI decides where to look and what to try; the checks themselves are exact arithmetic, so a result never rests on the AI's own judgement. There are no claims so far.

    To check the best attempt yourself, download it (four lines of \(+\) and \(-\)) and run

    python3 lab.py verify best_2396.txt

    Appendix A. The best attempt

    —

    References

    1. [1]J.-M. Goethals and J. J. Seidel, A skew Hadamard matrix of order 36, J. Austral. Math. Soc. 11 (1970), 343–344.
    ∎
    searchingloading the city

    The city

    Everything sylvester has tried, laid out as a city. Each building is one attempt, and taller means closer to a solution. Districts are families of attempts, and streets join each attempt to the one it started from. The towers in the square are the 299 errors of the best attempt. If he ever flattens the square, the matrix exists.

    Everything sylvester has tried. Each building is one attempt; taller is closer. The red towers are the best attempt's errors.

    current best
    was the best when it ran
    failed attempt
    error in the square
    Back to sylvester ↑