Industrial-Strength Formally Certified SAT Solving

by   Ashish Darbari, et al.

Boolean Satisfiability (SAT) solvers are now routinely used in the verification of large industrial problems. However, their application in safety-critical domains such as the railways, avionics, and automotive industries requires some form of assurance for the results, as the solvers can (and sometimes do) have bugs. Unfortunately, the complexity of modern, highly optimized SAT solvers renders impractical the development of direct formal proofs of their correctness. This paper presents an alternative approach where an untrusted, industrial-strength, SAT solver is plugged into a trusted, formally certified, SAT proof checker to provide industrial-strength certified SAT solving. The key novelties and characteristics of our approach are (i) that the checker is automatically extracted from the formal development, (ii), that the combined system can be used as a standalone executable program independent of any supporting theorem prover, and (iii) that the checker certifies any SAT solver respecting the agreed format for satisfiability and unsatisfiability claims. The core of the system is a certified checker for unsatisfiability claims that is formally designed and verified in Coq. We present its formal design and outline the correctness proofs. The actual standalone checker is automatically extracted from the the Coq development. An evaluation of the certified checker on a representative set of industrial benchmarks from the SAT Race Competition shows that, albeit it is slower than uncertified SAT checkers, it is significantly faster than certified checkers implemented on top of an interactive theorem prover.


page 1

page 2

page 3

page 4


Verifying the DPLL Algorithm in Dafny

Modern high-performance SAT solvers quickly solve large satisfiability i...

Formally Verified SAT-Based AI Planning

We present an executable formally verified SAT encoding of classical AI ...

DRAT-based Bit-Vector Proofs in CVC4

Many state-of-the-art Satisfiability Modulo Theories (SMT) solvers for t...

The VLSAT-2 Benchmark Suite

This report presents VLSAT-2 (an acronym for "Very Large Boolean SATisfi...

Verifying x86 Instruction Implementations

Verification of modern microprocessors is a complex task that requires a...

Scalable Proof Producing Multi-Threaded SAT Solving with Gimsatul through Sharing instead of Copying Clauses

We give a first account of our new parallel SAT solver Gimsatul. Its key...

Unsatisfiability Proofs for Weight 16 Codewords in Lam's Problem

In the 1970s and 1980s, searches performed by L. Carter, C. Lam, L. Thie...

Please sign up or login with your details

Forgot password? Click here to reset