FLOC 2018: FEDERATED LOGIC CONFERENCE 2018
An iterative approach to precondition inference using constrained Horn clauses

Authors: Bishoksan Kafle, John Gallagher, Graeme Gange, Peter Schachte, Harald Sondergaard and Peter J. Stuckey

Paper Information

Title:An iterative approach to precondition inference using constrained Horn clauses
Authors:Bishoksan Kafle, John Gallagher, Graeme Gange, Peter Schachte, Harald Sondergaard and Peter J. Stuckey
Proceedings:ICLP Proceedings of ICLP 2018
Editors: Paul Tarau and Alessandro Dal Palu'
Keywords:precondition inference, backwards analysis, abstract interpretation, abstraction refinement, program specialisation
Abstract:

ABSTRACT. We present a method for automatic inference of conditions on the initial states of a program that guarantee that the safety assertions in the program are not violated. Constrained Horn clauses (CHCs) are used to model the program and assertions in a uniform way, and we use standard abstract interpretations to derive an over-approximation of the set of \emph{unsafe} initial states. The precondition then is the constraint satisfied by the complement of that set under-approximating the set of \emph{safe} initial states. This approach has been used before but demonstrated only on small transition systems. In this paper, we develop an iterative refinement algorithm for non-linear CHCs, and show that it produces much more precise, and in some cases optimal approximations of the safety conditions, and can scale to larger programs. The refinement algorithm uses partial evaluation and a form of counterexample-guided abstraction refinement techniques to focus on the relevant program states. Disjunctive constraints, which are essential to achieve good precision, are generated in a controlled way. The algorithm is implemented and tested on a benchmark suite of programs from the literature in precondition inference and software verification competitions.

Pages:18
Talk:Jul 15 12:00 (Session 103C: Implementation I)
Paper: