Automated verification of shape, size and bag properties via user-defined predicates in separation logic

Automated verification of shape, size and bag properties via user-defined predicates in separation logic
复制标题

DOI:
10.1016/j.scico.2010.07.004
复制
发表时间:
2012-08
期刊:
Sci. Comput. Program.
影响因子:
--
通讯作者:
W. Chin;C. David;Huu Hai Nguyen;S. Qin
W. Chin;C. David;Huu Hai Nguyen;S. Qin
中科院分区:
其他
文献类型:
--
作者:
W. Chin;C. David;Huu Hai Nguyen;S. Qin

文献摘要

被引文献

相似文献

尽管它们的流行和重要性,基于指针的程序仍然是程序验证的一个主要挑战。近年来,分离逻辑已经成为基于指针的程序的形式化推理的竞争者。最近的作品主要集中在专门的证明,主要是基于固定的谓词集。在本文中,我们提出了一个自动验证系统,以确保安全的指针为基础的程序,规范处理是简洁,精确和表达。我们的方法使用用户可定义的谓词,让程序员来描述广泛的数据结构与其相关的形状,大小和袋(多集)的属性。为了支持自动验证,我们设计了一个新的蕴涵检查程序,可以处理良好的基础谓词(可以递归定义)使用展开/折叠推理。我们已经证明了我们的核查系统的可靠性和终止性,并建立了一个原型系统来证明我们的方法的可行性。
Despite their popularity and importance, pointer-based programs remain a major challenge for program verification. In recent years, separation logic has emerged as a contender for formal reasoning of pointer-based programs. Recent works have focused on specialized provers that are mostly based on fixed sets of predicates. In this paper, we propose an automated verification system for ensuring the safety of pointer-based programs, where specifications handled are concise, precise and expressive. Our approach uses user-definable predicates to allow programmers to describe a wide range of data structures with their associated shape, size and bag (multi-set) properties. To support automatic verification, we design a new entailment checking procedure that can handle well-founded predicates (that may be recursively defined) using unfold/fold reasoning. We have proven the soundness and termination of our verification system and built a prototype system to demonstrate the viability of our approach.