MathCheck is a system which combines functionality from Boolean satisfiability (SAT) solvers and computer algebra systems (CAS) to verify conjectures in mathematics up to a finite bound and to search for counterexamples.
The SAT+CAS approach is particularly effective for combinatorial conjectures, as many conjectures in combinatorics reduce to a huge combinatorial search for which there are no known efficient algorithms. Using a SAT solver can make
such searches tractable for many combinatorial conjectures, though
relying on these solvers alone is not sufficient because they are not
able to exploit combinatorial relationships known to mathematicians. On the other hand, computer algebra systems contain a storehouse of mathematical knowledge but typically lack the sophisticated combinatorial search engine of SAT solvers.
The aim of the MathCheck project is to develop a SAT+CAS system which combines the best of both worlds to find counterexamples or finitely verify conjectures in mathematics. To date the MathCheck project has achieved the following successes:
- Finitely verified the Ruskey–Savage conjecture up to order 5 for the first time
- Finitely verified the Norine conjecture up to order 6 for the first time
- Verified that 35 is the smallest counterexample of the Williamson conjecture
- Enumerated all Williamson matrices in orders divisible by 2 or 3 up to order 70 for the first time (with results available online)
- Found thousands of new Williamson matrices in even orders
- Found one previously undiscovered set of Williamson matrices in order 63
- Enumerated all complex Golay pairs up to lengths 25
- Verified the Craigen–Holzmann–Kharaghani conjecture that complex Golay pairs of length 23 do not exist
Additionally, a component of the MathCheck project is designing custom-tailored SAT solvers using the programmatic SAT paradigm, currently specializing in combinatorial matrix problems defined via periodic and aperiodic correlation. Both MathCheck and MathCheck2 are open source and released under the MIT licence. |