The Science, Art and Magic of Constrained Horn Clauses
Arie Gurfinkel (University of Waterloo, Canada) and Nikolaj Bjorner (Microsoft Research, USA)
Constrained Horn Clauses (CHC) is a fragment of First Order Logic modulo constraints that captures many program verification problems as constraint solving. Safety verification of sequential programs, modular verification of concurrent programs, parametric verification, and modular verification of synchronous transition systems are all naturally captured as a satisfiability problem for CHC modulo theories of arithmetic and arrays.
Of course, satisfiability of CHC is undecidable. Thus, solving them is a mix of science, art, and a dash of magic. In this tutorial, we will explore several aspects of this problem. We illustrate how different problems are translated to CHC. Present a framework, called Spacer, that reduces symbolically solving Horn clauses to multiple simpler Satisfiability Modulo Theories, SMT, queries. Finally, we describe advances in SMT that are necessary to make the framework a reality.