|
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 propose LRG, a new Rely-Guarantee-based logic that brings local reasoning and information hiding to concurrency verification. Our logic, for the first time, supports a frame rule over rely/guarantee conditions so that specifications of program modules only need to talk about the resources used locally, and the verified modules can be reused in different threads without redoing the proof. Moreover, we introduce a new hiding rule to hide the resources shared by a subset of threads from the rest in the system. The support of information hiding not only improves the modularity of Rely-Guarantee reasoning, but also enables the sharing of dynamically allocated resources, which requires adjustment of rely/guarantee conditions.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Nick Benton. Abstracting allocation : The new new thing. In Proc. Computer Science Logic (CSL'06), volume 4207 of phLecture Notes in Computer Science, pages 182--196. Springer, September 2006.
|
 |
2
|
Richard Bornat , Cristiano Calcagno , Peter O'Hearn , Matthew Parkinson, Permission accounting in separation logic, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.259-270, January 12-14, 2005, Long Beach, California, USA
|
| |
3
|
|
| |
4
|
|
| |
5
|
Cristiano Calcagno, Matthew J. Parkinson, and Viktor Vafeiadis. Modular safety checking for fine-grained concurrency. In Proc. 14th Int'l Symposium on Static Analysis (SAS'07), volume 4634 of phLecture Notes in Computer Science, pages 233--248. Springer, August 2007.
|
| |
6
|
|
| |
7
|
Xinyu Feng. Local rely-guarantee reasoning (extended version). Technical Report TTIC-TR-2008-1, Toyota Technological Institute at Chicago, Chicago, IL, U.S.A., October 2008. http://www.tti-c.org/technical_reports/ttic-tr-2008-1.pdf.
|
 |
8
|
|
| |
9
|
Xinyu Feng, Rodrigo Ferreira, and Zhong Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In Proc. 16th European Symp. on Prog. (ESOP'07), volume 4421 of phLecture Notes in Computer Science, pages 173--188. Springer, March 2007.
|
| |
10
|
|
 |
11
|
Alexey Gotsman , Byron Cook , Matthew Parkinson , Viktor Vafeiadis, Proving that non-blocking algorithms don't block, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
| |
12
|
Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers, March 2008.
|
 |
13
|
|
 |
14
|
|
| |
15
|
|
| |
16
|
Ioannis T. Kassios. Dynamic frames: Support for framing, dependencies and sharing without restrictions. In Proc. 14th International Symposium on Formal Methods (FM'06), volume 4085 of phLecture Notes in Computer Science, pages 268--283. Springer, August 2006.
|
| |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
|
 |
21
|
|
| |
22
|
|
| |
23
|
Viktor Vafeiadis. Modular Fine-Grained Concurrency Verification. PhD thesis, University of Cambridge, July 2007.
|
| |
24
|
Viktor Vafeiadis and Matthew J. Parkinson. A marriage of rely/guarantee and separation logic. In Proc. 18th Int'l Conf. on Concurrency Theory (CONCUR'07), volume 4703 of phLecture Notes in Computer Science, pages 256--271, September 2007.
|
| |
25
|
|
| |
26
|
|
 |
27
|
|
|