/cadical

CaDiCaL SAT Solver

Primary LanguageC++MIT LicenseMIT

License: MIT

CaDiCaL Simplified Satisfiability Solver

The goal of the development of CaDiCaL was to obtain a CDCL solver, which is easy to understand and change, while at the same time not being much slower than other state-of-the-art CDCL solvers.

Originally we wanted to also radically simplify the design and internal data structures, but that goal was only achieved partially, at least for instance compared to Lingeling.

However, the code is much better documented and CaDiCaL actually became in general faster than Lingeling even though it is missing some preprocessors (mostly parity and cardinality constraint reasoning), which would be crucial to solve certain instances.

Use ./configure && make to configure and build cadical and the library libcadical.a in the default build sub-directory. The header file of the library is src/cadical.hpp and includes an example for API usage.

See BUILD.md for options and more details related to the build process and test/README.md for testing the library and the solver. Since release 1.5.1 we have a NEWS.md file. You might also want to check out CONTRIBUTING.md on if you want to contribute.

The solver has the following usage cadical [ dimacs [ proof ] ]. See cadical -h for more options.

If you want to cite CaDiCaL please use as reference our CaDiCaL 2.0 tool paper which appeared at CAV'24:

CaDiCaL 2.0
Armin Biere, Tobias Faller, Katalin Fazekas, Mathias Fleury, Nils Froleyks and Florian Pollitt
Proc. Computer Aidded Verification - 26th Intl. Conf. (CAV'24)
Lecture Notes in Computer Science (LNCS)
vol. 14681, pages 133-152, Springer 2024
[ paper | bibtex | official | artifact | github | doi ]