Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/klausnat/sat-solver-dpll-cnf
- Owner: klausnat
- Created: 2021-10-31T06:39:44.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-30T06:04:35.000Z (about 3 years ago)
- Last Synced: 2024-11-06T06:46:57.407Z (2 months ago)
- Language: Coq
- Size: 44.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.