arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0705.3610cs.LO
收藏

链接数据结构中的可达模式逻辑

A Logic of Reachable Patterns in Linked Data-Structures

Greta Yorsh, Alexander Rabinovich, Mooly Sagiv, Antoine Meyer, Ahmed Bouajjani

摘要:

我们定义了一个新的可判定的逻辑表达和检查不变量的程序,操纵动态分配的对象,通过指针和破坏性的指针更新。这种逻辑的主要特点是能够限制从指定节点通过正则表达式可到达的节点的邻域。该逻辑在布尔运算(蕴涵、否定)下是封闭的,并且具有有限模型属性。关键的技术成果是可判定性的证明。我们展示了如何表达一些有趣的程序的前提条件,后置条件和循环不变式。也可以表示诸如数据结构的不相交性和低级堆变化之类的属性。此外,我们的逻辑可以表示任意数据结构和任意数量的指针字段的属性。后者提供了一种自然地指定后置条件的方法,后置条件将过程入口处的字段与出口处的字段联系起来。因此,可以使用该逻辑来自动证明执行低级堆突变的程序的部分正确性。

英文摘要:

We define a new decidable logic for expressing and checking invariants of programs that manipulate dynamically-allocated objects via pointers and destructive pointer updates. The main feature of this logic is the ability to limit the neighborhood of a node that is reachable via a regular expression from a designated node. The logic is closed under boolean operations (entailment, negation) and has a finite model property. The key technical result is the proof of decidability. We show how to express precondition, postconditions, and loop invariants for some interesting programs. It is also possible to express properties such as disjointness of data-structures, and low-level heap mutations. Moreover, our logic can express properties of arbitrary data-structures and of an arbitrary number of pointer fields. The latter provides a way to naturally specify postconditions that relate the fields on entry to a procedure to the fields on exit. Therefore, it is possible to use the logic to automatically prove partial correctness of programs performing low-level heap mutations.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑