FLOC 2018: FEDERATED LOGIC CONFERENCE 2018
Solving Horn Clauses on Inductive Data Types Without Induction

Authors: Emanuele De Angelis, Fabio Fioravanti, Alberto Pettorossi and Maurizio Proietti

Paper Information

Title:Solving Horn Clauses on Inductive Data Types Without Induction
Authors:Emanuele De Angelis, Fabio Fioravanti, Alberto Pettorossi and Maurizio Proietti
Proceedings:ICLP Proceedings of ICLP 2018
Editors: Paul Tarau and Alessandro Dal Palu'
Keywords:Program Verification, Constrained Horn Clauses, SMT Solvers, Horn Clause Transformation, Inductive Theorem Proving
Abstract:

ABSTRACT. We address the problem of verifying the satisfiability of Constrained Horn Clauses (CHCs) based on theories of inductively defined data structures, such as lists or trees. We propose a transformation technique, related to Wadler's {\em deforestation}, whose objective is the removal of these data structures from the clauses, hence reducing their satisfiability to an equivalent satisfiability problem for CHCs on integers or booleans. We propose a basic transformation algorithm and identify a class of CHCs where it always succeeds. We also consider extensions of the basic algorithm which combine CHC transformation with reasoning on integer constraints, thus enlarging the class of CHCs where inductively defined data structures can be removed. We perform an experimental evaluation of our technique by considering a benchmark of verification problems for first order OCaml programs that process lists and trees. We show that our transformation greatly improves the effectiveness of applying the Z3 solver for CHCs. Our experiments also show that the verification technique based on CHC transformation followed by CHC solving, is competitive with respect to CHC solvers extended with induction.

Pages:22
Talk:Jul 14 15:00 (Session 96D: Foundations II)
Paper: