Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/klausnat/sat-solver-dpll-cnf

DPLL satisfiability decision procedure for boolean formulas in conjunctive normal form, with a dependent type that guarantees its correctness
https://github.com/klausnat/sat-solver-dpll-cnf

Last synced: 11 days ago
JSON representation

DPLL satisfiability decision procedure for boolean formulas in conjunctive normal form, with a dependent type that guarantees its correctness

Awesome Lists containing this project

README

        

# SAT-solver-DPLL-CNF

This code is the solution to one of exercises from the book: "Certified Programming with Dependent Types" by Adam Chlipala.

Part II
Programming with Dependent Types
Chapter 6, Subset Types and Variations.

0.4 From Subset, Exercise #3.

Implement the DPLL satisfiability decision procedure for boolean formulas in conjunc-
tive normal form, with a dependent type that guarantees its correctness. An example
of a reasonable type for this function would be ∀ f : formula, {truth : tvals | formu-
laTrue truth f } + {∀ truth, ¬ formulaTrue truth f }. Implement at least the basic
backtracking algorithm as defined here:

http://en.wikipedia.org/wiki/DPLL_algorithm

It might also be instructive to implement the unit propagation and pure literal elimi-
nation optimizations described there or some other optimizations that have been used
in modern SAT solvers.