algorithm,satisfiability,reference-implementation

I didn't know any program to do that either, but the algorithm is really simple so just I wrote the following python script (download) that reads a general CNF in DIMACS format and writes the CNF of an equivalent 3-SAT problem in DIMACS format: from __future__ import print_function import fileinput...

Working With SBV Working with SBV requires that you follow the types and realize the Predicate is just a Symbolic SBool. After that step it is important that you investigate and discover Symbolic is a monad - yay, a monad! Now that you you know you have a monad then...

declarative,satisfiability,answer-set-programming

SAT competition benchmark instances are typically created by using specially tailored generator programs rather than general ASP grounders. The benchmark requirements are described here. Other options to create a CNF/DIMACS file include: Translate a Boolean expression via Limboole, bool2cnf or bc2cnf Compile a MiniZinc constraint declaration into CNF/DIMACS Convert ANF...

If you want to generate something randomly, I suggest a nondeterminism monad, of which MonadRandom is a popular choice. I would suggest two inputs to this procedure: vars, the number of variables, and clauses the number of clauses. Of course you could always generate the number of clauses at random...

optimization,satisfiability,cnf

You could use the Riss3g Coprocessor of Norbert Manthey to simplify your CNF. The SAT solver minisat 2 allows to store the preprocessed CNF in a file. Lingeling, a SAT solver from Austria has an option "-s" to simplify CNF clauses. To convert a Boolean expression into a simplified CNF,...