Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/acorrenson/saturne
Tiny verified SAT-solver
https://github.com/acorrenson/saturne
coq formal-verification hacktoberfest sat sat-solver
Last synced: 3 months ago
JSON representation
Tiny verified SAT-solver
- Host: GitHub
- URL: https://github.com/acorrenson/saturne
- Owner: acorrenson
- License: mit
- Created: 2020-04-04T12:54:01.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-07T18:55:04.000Z (about 3 years ago)
- Last Synced: 2024-07-30T17:54:52.480Z (6 months ago)
- Topics: coq, formal-verification, hacktoberfest, sat, sat-solver
- Language: Coq
- Homepage:
- Size: 421 KB
- Stars: 18
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
# SATurne
*A purely functional verified SAT solver which produces proofs*
**SATurne** is a simple purely functional SAT solver written and verified in [Coq](https://coq.inria.fr/). It's a tiny solver absolutely not designed for performances nor scalability. It is, however, intended to be well-documented, easy to understand and extremely trustworthy.
**SATurne** is progressively integrated as the SAT solver behind the [Modulus](https://github.com/jdrprod/Modulus) SMT solver.
## Few words on SATurn design
At it's core, **SATurne** is a ridiculously simple solver very similar to the one described in
[this article](https://web.archive.org/web/20201109101535/http://www.cse.chalmers.se/~algehed/blogpostsHTML/SAT.html).## Features
**SATurne** is not only a solver. It is also a collection of Coq theories formalizing the boolean logic and the associated proof systems (e.g. the resolution system).
**SATurne** is shipped with a proof checker to check proofs of unsatisfiability based on the resolution system. This checker is proven to be correct and can be extracted to a self contained OCaml module.
Since SATurne solve only formulas in clausal form, it also features a verified CNF converter.
## Coq Sources
The sources are located in the `src` folder. A `_CoqProject` and a makefile are provided. Simply type `make` at the project root SATurne is ready to be loaded in your favorite Coq editor.
### Structure/TODOs
```
src/
Clauses.v -> Theories of literals, clauses and set of clauses
Cnf.v -> conversion into cnf
Proof.v -> proof checker
Evaluation.v -> (old) models in boolean logic
Sat.v -> (old) facts about satisfiability
Solver_aux.v -> (old) useful facts used to prove the solver
Solver.v -> (old) verified solver
```