Constrained Horn Clauses (CHCs) are an intermediate program representation that can be generated by several verification tools, and that can be processed and solved by a number of Horn solvers. One of the main challenges when using CHCs in verification is the encoding of heap-allocated data-structures: such data-structures are today either represented explicitly using the theory of arrays, or transformed away with the help of invariants or refinement types, defeating the purpose of CHCs as a representation that is language-independent as well as agnostic of the algorithm implemented by the Horn solver. This paper presents an SMT-LIB theory of heap tailored to CHCs, with the goal of enabling a standard interchange format for programs with heap data-structures. We introduce the syntax of the theory of heap, define its semantics in terms of axioms and using a reduction to SMT-LIB arrays and data-types, and discuss its properties and outline possible extensions and future work.
翻译:受限制的《非洲之角条款》是一个中间方案代表,可由若干核查工具产生,可由一些合角求解者处理和解决。在使用合角求解器进行核查时,主要挑战之一是将堆积分配的数据结构编码:这种数据结构现在要么明确使用阵列理论,要么在变数或精细类型的帮助下转换,从而挫败了以无语言独立和不可知的“合角求解器”所实施算法为代表的“枢角求解器”的目的。本文介绍了SMT-LIB关于“堆积”的理论,目的是为堆积数据结构的程序提供一个标准交换格式。我们引入了“堆积”理论的语义,用“xxion”来定义其语义,并使用“SMT-LIB”阵列和数据类型来缩小其语义,并讨论其属性和可能的扩展及未来工作。