Mathematics (Jun 2022)

A Verified Implementation of the DPLL Algorithm in Dafny

  • Cezar-Constantin Andrici,
  • Ștefan Ciobâcă

DOI
https://doi.org/10.3390/math10132264
Journal volume & issue
Vol. 10, no. 13
p. 2264

Abstract

Read online

We present a DPLL SAT solver, which we call TrueSAT, developed in the verification-enabled programming language Dafny. We have fully verified the functional correctness of our solver by constructing machine-checked proofs of its soundness, completeness, and termination. We present a benchmark of the execution time of TrueSAT and we show that it is competitive against an equivalent DPLL solver implemented in C++, although it is still slower than state-of-the-art CDCL solvers. Our solver serves as a significant case study of a machine-verified software system. The benchmark also shows that auto-active verification is a promising approach to increasing trust in SAT solvers, because it combines execution speed with a high degree of trustworthiness.

Keywords