Analysis and Transformation of Constrained Horn Clauses for Program Verification

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

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
Issue number6
Pages (from-to)974-1042
Number of pages69
Publication statusPublished - 2022


  • Program verification
  • Program analysis
  • Program transformation
  • Constrained horn clauses
  • Comstraint logic programming

Cite this