Verifying the DPLL Algorithm in Dafny

09/04/2019
by   Cezar-Constantin Andrici, et al.
0

Modern high-performance SAT solvers quickly solve large satisfiability instances that occur in practice. If the instance is satisfiable, then the SAT solver can provide a witness which can be checked independently in the form of a satisfying truth assignment. However, if the instance is unsatisfiable, the certificates could be exponentially large or the SAT solver might not be able to output certificates. The implementation of the SAT solver should then be trusted not to contain bugs. However, the data structures and algorithms implemented by a typical high-performance SAT solver are complex enough to allow for subtle programming errors. To counter this issue, we build a verified SAT solver using the Dafny system. We discuss its implementation in the present article.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/02/2018

A SAT Encoding for the n-Fractions Problem

This note describes a SAT encoding for the n-fractions puzzle which is p...
research
07/19/2020

Who Verifies the Verifiers? A Computer-Checked Implementation of the DPLL Algorithm in Dafny

We build a SAT solver implementing the DPLL algorithm in the verificatio...
research
11/09/2009

Industrial-Strength Formally Certified SAT Solving

Boolean Satisfiability (SAT) solvers are now routinely used in the verif...
research
12/15/2017

Solving satisfiability using inclusion-exclusion

Using Maple, we implement a SAT solver based on the principle of inclusi...
research
05/10/2015

DistMS: A Non-Portfolio Distributed Solver for Maximum Satisfiability

The most successful parallel SAT and MaxSAT solvers follow a portfolio a...
research
04/29/2022

SATfeatPy – A Python-based Feature Extraction System for Satisfiability

Feature extraction is a fundamental task in the application of machine l...
research
10/02/2015

Implementing Efficient All Solutions SAT Solvers

All solutions SAT (AllSAT for short) is a variant of propositional satis...

Please sign up or login with your details

Forgot password? Click here to reset