Analysis and Transformation of Constrained Horn Clauses for Program Verification

Emanuele De Angelis, Fabio Fioravanti, John Patrick Gallagher, Manuel V. Hermenegildo, Maurizio Proietti, Alberto Pettorossi

Research output: Contribution to journalJournal articleResearchpeer-review


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 specialization-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 specialization and fold/unfold rules, which are useful for improving the effectiveness of CHC satisfiability tools. Finally, we discuss future developments in applying these techniques.
Original languageEnglish
JournalTheory and Practice of Logic Programming
Pages (from-to)1-69
Publication statusPublished - 2021

Cite this