Horn Clause Solvers for Program Verification [chapter]

Nikolaj Bjørner, Arie Gurfinkel, Ken McMillan, Andrey Rybalchenko
2015 Lecture Notes in Computer Science  
Automatic program verification and symbolic model checking tools interface with theorem proving technologies that check satisfiability of formulas. A theme pursued in the past years by the authors of this paper has been to encode symbolic model problems directly as Horn clauses and develop dedicated solvers for Horn clauses. Our solvers are called Duality, HSF, SeaHorn, and µZ and we have devoted considerable attention in recent papers to algorithms for solving Horn clauses. This paper
more » ... ts these strides as we summarize main useful properties of Horn clauses, illustrate encodings of procedural program verification into Horn clauses and then highlight a number of useful simplification strategies at the level of Horn clauses. Solving Horn clauses amounts to establishing Existential positive Fixed-point Logic formulas, a perspective that was promoted by Blass and Gurevich. Program + Specification Translation Section 3 Transformations Section 4 Solving Fig. 1. Horn Clause verification flow 1 Note that we don't need the clause s(x, y) → q(y) ∨ r(z) to preserve satisfiability because the sub-formula that s(x, y) summarizes is only used in negative scope.
doi:10.1007/978-3-319-23534-9_2 fatcat:hsmmbrr35nfsveszovx67isifq