Abstract
We study the relationship between Concurrent Separation Logic (CSL) and the assume-guarantee (A-G) method (a.k.a. rely-guarantee method). We show in three steps that CSL can be treated as a specialization of the A-G method for well-synchronized concurrent programs. First, we present an A-G based program logic for a low-level language with built-in locking primitives. Then we extend the program logic with explicit separation of “private data” and “shared data”, which provides better memory modularity. Finally, we show that CSL (adapted for the low-level language) can be viewed as a specialization of the extended A-G logic by enforcing the invariant that “shared resources are well-formed outside of critical regions”. This work can also be viewed as a different approach (from Brookes’) to proving the soundness of CSL: our CSL inference rules are proved as lemmas in the A-G based logic, whose soundness is established following the syntactic approach to proving soundness of type systems.
This research is based on work supported in part by gifts from Intel and Microsoft, and NSF grants CCR-0524545. Any opinions, findings, and conclusions contained in this document are those of the authors and do not reflect the views of these agencies.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Bornat, R., et al.: Permission accounting in separation logic. In: Proc. 32nd ACM Symp. on Principles of Prog. Lang, pp. 259–270 (2005)
Brookes, S.: A semantics for concurrent separation logic. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 16–34. Springer, Heidelberg (2004)
Brookes, S.: A grainless semantics for parallel programs with shared mutable data. In: Proc. MFPS XXI. Electr. Notes Theor. Comput. Sci., vol. 155, pp. 277–307 (2006)
Feng, X., Ferreira, R., Shao, Z.: On the relationship between concurrent separation logic and assume-guarantee reasoning. Technical Report YALEU/DCS/TR-1374 and Formulation in Coq, Dept. of Computer Science, Yale University, New Haven, CT (January 2007)
Feng, X., Shao, Z.: Modular verification of concurrent assembly code with dynamic thread creation and termination. In: Proc. ICFP’05, Tallinn, Estonia, pp. 254–267 (2005)
Hoare, C.A.R.: Towards a theory of parallel programming. In: Hoare, C.A.R., Perrott, R.H. (eds.) Operating Systems Techniques, pp. 61–71. Academic Press, London (1972)
Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proc. 28th ACM Symp. on Principles of Prog. Lang, pp. 14–26 (2001)
Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. on Programming Languages and Systems 5(4), 596–619 (1983)
Necula, G.: Proof-carrying code. In: Proc. 24th ACM Symp. on Principles of Prog. Lang., Jan. 1997, pp. 106–119. ACM Press, New York (1997)
O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoretical Computer Science (to appear)
O’Hearn, P.W.: Resources, concurrency and local reasoning. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 49–67. Springer, Heidelberg (2004)
Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM 19(5), 279–285 (1976)
Parkinson, M., Bornat, R., O’Hearn, P.: Modular verification of a non-blocking stack. In: Proc. 34th ACM Symp. on Principles of Prog. Lang., to appear. ACM Press (Jan. 2007)
Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. LICS’02, July 2002, pp. 55–74 (2002)
Reynolds, J.C.: Toward a grainless semantics for shared-variable concurrency. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 35–48. Springer, Heidelberg (2004)
The Coq Development Team: The Coq proof assistant reference manual. The Coq release v8.0 (Oct. 2004)
Vafeiadis, V., Parkinson, M.: A marriage of rely/guarantee and separation logic (2007), Available at http://www.cl.cam.ac.uk/~mjp41/RGSep.pdf
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)
Yu, D., Shao, Z.: Verification of safety properties for concurrent assembly code. In: Proc. 2004 ACM SIGPLAN Int’l Conf. on Functional Prog., September 2004, pp. 175–188 (2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Feng, X., Ferreira, R., Shao, Z. (2007). On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_13
Download citation
DOI: https://doi.org/10.1007/978-3-540-71316-6_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71314-2
Online ISBN: 978-3-540-71316-6
eBook Packages: Computer ScienceComputer Science (R0)