Skip to content

NicholasLindsay/nksat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

nksat

nksat is a lightweight SAT solver written in C++. nksat checks systems of boolean equations for satisfiability. nksat expects a single input file in the standard DIMACS .cnf input format.

Under the hood, nksat uses the DPLL algorithm and makes use of the "two watched literals" and "pure literal elimation" optimizations.

Building nksat

nksat has the following dependencies:

  • A working C++ compiler and build system (e.g. Make)
  • CMake

To build nksat, create a new directory (e.g. build) inside the project root directory, and then inside that directory run the following command (assuming Make is the default build system):

cmake .. && make

This command will generate and run the build files. An nksat executable will be created in the build directory.

Running nksat

nksat can be run using the following command: nksat <path/to/.cnf/file>

nksat expects input files to be in the DIMACS .cnf format as described here.

nksat will output either a satisfying assignemnt or inform if no such assignment exists.

Credit

nksat was written jointly by:

Both authors contributed equally.

About

Minimal C++ SAT Solver

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published