2009
DOI: 10.1145/1594834.1480922
|View full text |Cite
|
Sign up to set email alerts
|

Local rely-guarantee reasoning

Abstract: Rely-Guarantee reasoning is a well-known method for verification of shared-variable concurrent programs. However, it is difficult for users to define rely/guarantee conditions, which specify threads' behaviors over the whole program state. Recent efforts to combine Separation Logic with Rely-Guarantee reasoning have made it possible to hide thread-local resources, but the shared resources still need to be globally known and specified. This greatly limits the reuse of verified program modules.In this paper, we … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
74
0

Year Published

2010
2010
2021
2021

Publication Types

Select...
8
1
1

Relationship

1
9

Authors

Journals

citations
Cited by 51 publications
(75 citation statements)
references
References 28 publications
1
74
0
Order By: Relevance
“…[24], [8], [7], [3], [13], [6], [21], [17], [19], [4], [11]), namely ghost states, protocols and separation logic, and adapts them in a novel way to support modular weak memory reasoning. We shall first give a brief introduction about GPS, focusing on atomic writes/reads and escrows, which are essential for synchronisations.…”
Section: The Gps Frameworkmentioning
confidence: 99%
“…[24], [8], [7], [3], [13], [6], [21], [17], [19], [4], [11]), namely ghost states, protocols and separation logic, and adapts them in a novel way to support modular weak memory reasoning. We shall first give a brief introduction about GPS, focusing on atomic writes/reads and escrows, which are essential for synchronisations.…”
Section: The Gps Frameworkmentioning
confidence: 99%
“…Separation logic cannot concisely specify the counter's intended semantics, only code's behavior. Rely-guarantee and related systems can express the semantics among threads [18,27,45], but only coarsely [46] among different program sections. Most program logics can constrain the actions of a function on an argument, but the specification must deal with aliasing, either by giving linear semantics to knowledge of the counter (as in separation logic), or by explicitly treating aliasing (as in more traditional Hoare logics [24]).…”
Section: Rely-guarantee Referencesmentioning
confidence: 99%
“…This gives us a deductive verification tool for concurrent programs using the sequential verifier Boogie. We used this method to prove correct the following set of concurrent programs-X + + (Fig 2), Lock [2], Peterson's algorithm, the Bakery protocol, ArrayIndexSearch, GCD [1] and a simplified version of a Windows NT Bluetooth driver. Lock is a simple example program consisting of two threads that modify a shared variable after acquiring a lock; the safety condition in the example confirms that these modifications cannot occur concurrently.…”
Section: Experiencementioning
confidence: 99%