Kissat SAT Solver

The Kissat SAT solver is a condensed and improved reimplementation of CaDiCaL in C.

It has improved data structures, better scheduling of inprocessing, optimized algorithms and implementation.

The solver is not incremental yet, but can be used as a library.

News

Kissat won first place in the main track of the SAT Competition 2020 and first place on unsatisfiable instances.

There is also this discussion on Twitter:

SAT Competition Winners

In order to show that SAT solving improved considerably in recent years, particularly also with Kissat in 2020, we collected winners of the SAT Competition from 2002 to 2020 and fixed and ported them to be compatabile with modern compilers.

Then we were running those "all-time winners" on our cluster on the competition instances from 2011, 2019 and 2020, more precisely on the 300 instances from the SAT Competition 2011 application track, the 400 instances from the SAT Race 2019 and the 400 instances from SAT Competition 2020 main track.

Here are plots showing the number of instances solved within a certain time limit, thus in essence the runtime cumulative distribution function (higher is better).

winners-2020 winners-2019 winners-2011

Note, the SAT Competition 2011 application track had only 300 instances, while the other two benchmarks sets from 2019 and 2020 consist of 400 apparently much harder instances each.

Our cluster has two Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz CPUs and 128 GB of main memory on each node, thus is slightly slower, but comparable to the StarExec cluster used in the competition. As time limit we used 5000 seconds as it is now common in the competition. Main memory was limited to 8 GB for 2011 and 2019 to utilize our cluster best. For 2020 we increased the limit to 32 GB, which allowed all solvers to stay below the memory limit (the organizers announced a 24 GB memory limit originally but actually used 128 GB).

Download

The latest version is available on GitHub at https://github.com/arminbiere/kissat

The following source code submitted to the SAT Competition 2020 won first place in the main track and first place on the unsatisfiable instances of the main track:

[ kissat-sc2020-039805f2.tar.xz ]

The code has an MIT license.

Resources

See the following SAT Competition 2020 system description for more details:

Armin Biere, Katalin Fazekas, Mathias Fleury, Maximillian Heisinger.
CaDiCaL, Kissat, Paracooba, Plingeling and Treengeling Entering the SAT Competition 2020.
In Proc. of SAT Competition 2020 - Solver and Benchmark Descriptions, Tomas Balyo, Nils Froleyks, Marijn Heule, Markus Iser, Matti Järvisalo, Martin Suda (editors), vol. B-2020-1 of Department of Computer Science Report Series B, 2020. pages 50-53, University of Helsinki, 2020.
[ paper | bibtex | kissat | cadical | paracooba | plingeling | treengeling ]

There was also a related talk at POS'20:

Armin Biere and Mathias Fleury.
Chasing Target Phases
11th Workshop on Pragmatics of SAT (POS'20)
Cyberspace, July 3, 2020.
[ slides [ video | experiments ]