DeepAI AI Chat
Log In Sign Up

Analysis and Transformation of Constrained Horn Clauses for Program Verification

by   Emanuele De Angelis, et al.

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.


page 1

page 2

page 3

page 4


Transformational Verification of Quicksort

Many transformation techniques developed for constraint logic programs, ...

Verifying Catamorphism-Based Contracts using Constrained Horn Clauses

We address the problem of verifying that the functions of a program meet...

A Survey of Automated Programming Hint Generation – The HINTS Framework

Automated tutoring systems offer the flexibility and scalability necessa...

Generalization Strategies for the Verification of Infinite State Systems

We present a method for the automated verification of temporal propertie...

ADCL: Acceleration Driven Clause Learning for Constrained Horn Clauses

Constrained Horn Clauses (CHCs) are widely used in automated program ver...

A Formal Approach to the Engineering of Domain-Specific Distributed Systems

We review some results regarding specification, programming and verifica...