/sat

A basic work-in-progress SAT Solver written in Clojure

Primary LanguageClojureEclipse Public License 2.0EPL-2.0

🔐 sat

A basic SAT solver that implements the standard DPLL algorithm with a slightly modified unit propagation algorithm described in the paper by Crawford & Auton. The solver expects problems to be already in the conjunctive normal form (CNF) and accepts DIMACS files as input and will print the result to STDOUT as described in the DIMACS specification. Some test inputs are available in the resources directory - some of which are sourced from the SATLIB benchmark problems.

Currently there is a CDCL solver in the works.

👩‍💻 Usage

$ lein run resources/test.cnf

👮🏽‍♂️ License

Copyright © 2020 Vipin Nair

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.