Predicate Pairing for Program Verification
Emanuele De Angelis (1), Fabio Fioravanti (1), Alberto Pettorossi (2),, Maurizio Proietti (3) ((1) DEC, University G. D'Annunzio, Pescara, Italy, (2), DICII, Universita' di Roma Tor Vergata, Roma, Italy, (3) CNR-IASI, Roma,, Italy)

TL;DR
Predicate Pairing (PP) is a transformation technique that enhances CHC solvers' ability to verify program correctness by enabling the discovery of A-definable models through clause transformation.
Contribution
The paper introduces Predicate Pairing, a novel transformation strategy that preserves A-definable models and improves the effectiveness of CHC-based program verification.
Findings
PP can transform clauses to enable A-definable models where they previously did not exist.
PP is effective in verifying relational properties like program equivalence and non-interference.
Experimental results show PP increases the power of CHC solvers in verification tasks.
Abstract
It is well-known that the verification of partial correctness properties of imperative programs can be reduced to the satisfiability problem for constrained Horn clauses (CHCs). However, state-of-the-art solvers for CHCs (CHC solvers) based on predicate abstraction are sometimes unable to verify satisfiability because they look for models that are definable in a given class A of constraints, called A-definable models. We introduce a transformation technique, called Predicate Pairing (PP), which is able, in many interesting cases, to transform a set of clauses into an equisatisfiable set whose satisfiability can be proved by finding an A-definable model, and hence can be effectively verified by CHC solvers. We prove that, under very general conditions on A, the unfold/fold transformation rules preserve the existence of an A-definable model, i.e., if the original clauses have an…
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.
