The Hadamard conjecture
A Hadamard matrix of order $n$ is an $n \times n$ matrix with entries $\pm1$ whose columns are pairwise orthogonal. Sylvester's construction gives one of every order $2^k$.
Problem. Prove or disprove that there is a Hadamard matrix of order $n$ for every positive multiple $n$ of $4$.
Source: Named after Hadamard (1893), who asked for which orders such matrices exist; also attributed to Paley (1933). Conjecture 14 of Randomstrasse101, in Bandeira's “Did just a couple of deviations suffice all along?” (2024); Entry 6 of arXiv:2504.20539.
Imported from github.com/MColbrook/AIM.
The statement is adapted from randomstrasse101.math.ethz.ch, whose text is available under CC BY 4.0.
Classification
- Primary
- CO — Combinatorics
- Secondary
- RA
- Keywords
- combinatorial designs, Hadamard matrices, Randomstrasse101
- Literature checked
- Oct. 2, 2026 by clemens-admin
References
@misc{randomstrasse2024,
author = {Bandeira, Afonso S. and Kireeva, Anastasia and Maillard, Antoine and R{\"o}dder, Almut},
title = {{Randomstrasse101}: Open Problems of 2024},
year = {2025},
eprint = {2504.20539},
archivePrefix = {arXiv}
}
Canonical Lean statement
A submission resolves this problem by proving the constant Problem_OP_00032.
/-- OP-00032: The Hadamard conjecture -/
def Problem_OP_00032 : Prop :=
∀ (k : ℕ), ∃ M : Matrix (Fin (4 * k)) (Fin (4 * k)) ℝ,
(∀ (i j : Fin (4 * k)), M i j ∈ ({1, -1} : Finset ℝ)) ∧
|M.det| = ((4 * k : ℕ) : ℝ) ^ (((4 * k : ℕ) : ℝ) / 2)
Formalised by The Formal Conjectures Authors (Apache-2.0); reviewed by clemens-admin.
Available to match against in: Lean v4.33.1 with Mathlib v4.33.1.
Resolving this problem in Lean
Add the problems package as a dependency, import this problem's module, and prove the constant. Any published revision works.
In lakefile.toml:
[[require]] name = "RegistryProblems" git = "https://github.com/cthalhammer/registry-problems" rev = "753bebc58e3fee845f4fffec7d24e7c8cc2a689a"
In your proof:
import RegistryProblems.OP_00032 theorem resolution : RegistryProblems.Problem_OP_00032 := by sorry
In preprint.toml, mapping the claim to the declaration that establishes it:
[[statements]] label = "Theorem 1" lean = "resolution" latex = "..." problem = "OP-00032" claim = "full"
To disprove it instead, prove the negation and claim "disproof", or "counterexample" if the proof exhibits one:
theorem disproof : ¬ RegistryProblems.Problem_OP_00032 := by sorry
You can also write the statement out in full; the verifier checks it matches up to definitional equality. Partial results and reductions are not matched against this statement.
Citing this problem
This identifier is permanent. It will not change if the problem is solved, reclassified or withdrawn.
OP-00032, "The Hadamard conjecture", clopen.solutions.