Who Verifies the Verifiers? A Computer-Checked Implementation of the DPLL Algorithm in Dafny
Abstract
We build a SAT solver implementing the DPLL algorithm in the verification-enabled programming language Dafny. The resulting solver is fully verified (soundness, completeness and termination are computer checked). We benchmark our Dafny solver and we show that it is just as efficient as an equivalent DPLL solver implemented in C# and roughly two times less efficient than an equivalent solver written in C++. We conclude that auto-active verification is a promising approach to increasing trust in SAT solvers, as it combines a good trade-off between execution speed and degree of trustworthiness of the final product.
- Publication:
-
arXiv e-prints
- Pub Date:
- July 2020
- DOI:
- 10.48550/arXiv.2007.10842
- arXiv:
- arXiv:2007.10842
- Bibcode:
- 2020arXiv200710842A
- Keywords:
-
- Computer Science - Logic in Computer Science;
- 68R07;
- 03-04;
- 03B70;
- 03B05;
- F.3.1;
- D.2.4;
- F.4.1
- E-Print:
- 18 pages. arXiv admin note: text overlap with arXiv:1909.01743