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.
翻译:本文件调查了最近在应用限制逻辑编程(CLP)领域产生的分析和转换技术以核查软件系统问题上开展的工作,我们介绍了将不同编程语言和一般软件系统中的核查问题转化为限制的Horn条款(CHCs)的可诉性问题的专门技术,这一术语在核查领域已变得普及,以提及CLP程序。然后,我们描述了可用于推断相关程序特性(如循环变换剂)的CHC的静态分析技术。我们还概述了一些基于专门化和折叠/折叠规则的转换技术,这些技术有助于提高CHC可诉性工具的效力。最后,我们讨论了应用这些技术的未来发展情况。