Compositional Invariant Checking for Overlaid and Nested Linked Lists
Compositional Invariant Checking for Overlaid and Nested Linked Lists
复制标题
重叠和嵌套链接列表的组合不变检查
DOI:
10.1007/978-3-642-37036-6_9
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
M. Sighireanu
中科院分区:
文献类型:
--
作者:
C. Enea;Vlad Saveluc;M. Sighireanu
We introduce a fragment of separation logic, calledNOLL, for automated reasoning about programs manipulating overlaid and nested linked lists, where overlaid means that the lists share the same set of objects. The distinguishing features ofNOLLare: (1) it is parametrized by a set of user-defined predicates specifying nested linked list segments, (2) a “per-field” version of the separating conjunction allowing to share object locations but not record field locations, and (3) it can express sharing constraints between list segments. We prove that checking the entailment between twoNOLLformulas is co-NP complete using a small model property. We also provide an effective procedure for checking entailment inNOLL, which first constructs a Boolean abstraction of the two formulas in order to infer all the implicit constraints, and then, it checks the existence of a homomorphism between the two formulas, viewed as graphs. We have implemented this procedure and applied it on verification conditions generated from several interesting case studies that manipulate overlaid and nested data structures.