Multiple Query Satisfiability of Constrained Horn Clauses
Emanuele De Angelis (1), Fabio Fioravanti (2), Alberto Pettorossi (3),, Maurizio Proietti (1) ((1) IASI-CNR, Rome, Italy, (2) DEc, University 'G., d'Annunzio', Chieti-Pescara, Italy, (3) DICII, University of Rome 'Tor, Vergata', Italy)

TL;DR
This paper introduces a transformation technique for checking the satisfiability of multiple constrained Horn clauses simultaneously, improving the ability to verify complex program properties involving algebraic data types.
Contribution
A novel transformation method that enables efficient satisfiability checking of multiple CHCs by incorporating inter-query information, enhancing verification capabilities.
Findings
Effective on non-trivial benchmarks involving lists and trees
Improves exploitation of relationships among multiple queries
Facilitates verification of programs manipulating algebraic data types
Abstract
We address the problem of checking the satisfiability of a set of constrained Horn clauses (CHCs) possibly including more than one query. We propose a transformation technique that takes as input a set of CHCs, including a set of queries, and returns as output a new set of CHCs, such that the transformed CHCs are satisfiable if and only if so are the original ones, and the transformed CHCs incorporate in each new query suitable information coming from the other ones so that the CHC satisfiability algorithm is able to exploit the relationships among all queries. We show that our proposed technique is effective on a non trivial benchmark of sets of CHCs that encode many verification problems for programs manipulating algebraic data types such as lists and trees.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Logic, Reasoning, and Knowledge
