Analysis and Transformation of Constrained Horn Clauses for Program Verification
Emanuele De Angelis (1), Fabio Fioravanti (2), John P. Gallagher, (3,4), Manuel V. Hermenegildo (4,5), Alberto Pettorossi (6,1), Maurizio, Proietti (1) ((1) CNR-IASI, Rome, Italy, (2) DEC, University 'G. d'Annunzio',, Chieti-Pescara, Italy, (3) Roskilde University, Denmark

TL;DR
This paper reviews recent methods that apply analysis and transformation techniques from constraint logic programming to verify software systems by translating them into constrained Horn clauses and analyzing these for properties like invariants.
Contribution
It presents a comprehensive overview of specialization, transformation, and static analysis techniques for constrained Horn clauses in software verification.
Findings
Techniques for translating verification problems into CHCs.
Methods for inferring program invariants using static analysis.
Transformation strategies to enhance CHC satisfiability tools.
Abstract
This paper surveys recent work on applying analysis and transformation techniques that originate in the field of constraint logic programming (CLP) to the problem of verifying software systems. We present specialisation-based techniques for translating verification problems for different programming languages, and in general software systems, into satisfiability problems for constrained Horn clauses (CHCs), a term that has become popular in the verification field to refer to CLP programs. Then, we describe static analysis techniques for CHCs that may be used for inferring relevant program properties, such as loop invariants. We also give an overview of some transformation techniques based on specialisation and fold/unfold rules, which are useful for improving the effectiveness of CHC satisfiability tools. Finally, we discuss future developments in applying these techniques.
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.
