- z3: Z3 is a theorem prover from Microsoft Research. Z3 can be built using Visual Studio, a Makefile or using CMake. It provides bindings for several programming languages.
- MiniSAT: MiniSat is a minimalistic, open-source SAT solver.
- CryptoMiniSAT: an online solver.
- SAT4j: SAT solver in Java.
About Answer Set Programming:
Systems:
- s(CAPS): a top-down interpreter for ASP programs with constraints.
- Clingo: ASP within the Potassco project.
- DLV: a deductive database system, based on disjunctive logic programming, which offers front-ends to several advanced KR formalisms.
Model counting is the problem of determining the number of assignments satisfying a given propositional formula (typically represented as a CNF). Model counting, and weighted model counting, are central to many AI problems including probabilistic inference. Model counting is #P-complete, and hard to approximate. It is also often supported by knowledge compilers.
Check http://beyondnp.org/pages/solvers/model-counters-exact/
Knowledge compilation is concerned with converting general types of knowledge into tractable forms, which allows certain hard tasks to be performed efficiently on the compiled forms. For example, one may compile a CNF into an OBDD, allowing one to count the models of the CNF efficiently and under different variable settings. Many of the compiled forms are based on subsets of Negation Normal Form (NNF) including, for example, Ordered Binary Decision Diagrams (OBDD), Sentential Decsion Diagrams (SDD), and Decomposable Negation Normal Form (DNNF).
See here: http://beyondnp.org/pages/solvers/knowledge-compilers/
- SMT-RAT: Satisfiability-Modulo-Theories Real Algebra Toolbox.