2011
DOI: 10.1007/978-3-642-22944-2_3
|View full text |Cite
|
Sign up to set email alerts
|

Abstract Local Reasoning for Program Modules

Abstract: Local reasoning has become a well-established technique in program verification, which has been shown to be useful at many different levels of abstraction. In separation logic, we use a low-level abstraction that is close to how the machine sees the program state. In context logic, we work with high-level abstractions that are close to how the clients of modules see the program state. We apply program refinement to local reasoning, demonstrating that high-level, abstract local reasoning is sound for module imp… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
1
0

Publication Types

Select...
1

Relationship

1
0

Authors

Journals

citations
Cited by 1 publication
(1 citation statement)
references
References 19 publications
0
1
0
Order By: Relevance
“…We show how the tree module T may be correctly implemented using the familiar separation-logic heap module H and an abstract list module L. We then show how this list module L can be correctly implemented in terms of the heap module H. Our approach is modular, so this refinement can be extended with a second instance of the heap module H (illustrated with a dotted arrow). Finally, we show that the double-heap module H + H can be trivially implemented by the heap module H, completing the refinement from the tree module T to the heap module H. As a contrast, we also briefly consider a direct refinement of the tree module T using the heap module H, although the details of this example are given in the full paper [7].…”
Section: Introductionmentioning
confidence: 99%
“…We show how the tree module T may be correctly implemented using the familiar separation-logic heap module H and an abstract list module L. We then show how this list module L can be correctly implemented in terms of the heap module H. Our approach is modular, so this refinement can be extended with a second instance of the heap module H (illustrated with a dotted arrow). Finally, we show that the double-heap module H + H can be trivially implemented by the heap module H, completing the refinement from the tree module T to the heap module H. As a contrast, we also briefly consider a direct refinement of the tree module T using the heap module H, although the details of this example are given in the full paper [7].…”
Section: Introductionmentioning
confidence: 99%