Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 173–188Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning

On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning

  • Xinyu Feng1,
  • Rodrigo Ferreira1 &
  • Zhong Shao1 
  • Conference paper
  • 1262 Accesses

  • 49 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 4421)

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.

Keywords

  • Shared Memory
  • Inference Rule
  • Instruction Sequence
  • Separation Logic
  • Great Common Divisor

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.

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

Download to read the full chapter text

References

  1. Bornat, R., et al.: Permission accounting in separation logic. In: Proc. 32nd ACM Symp. on Principles of Prog. Lang, pp. 259–270 (2005)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. on Programming Languages and Systems 5(4), 596–619 (1983)

    CrossRef  MATH  Google Scholar 

  9. 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)

    Google Scholar 

  10. O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoretical Computer Science (to appear)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM 19(5), 279–285 (1976)

    CrossRef  MATH  MathSciNet  Google Scholar 

  13. 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)

    Google Scholar 

  14. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. LICS’02, July 2002, pp. 55–74 (2002)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. The Coq Development Team: The Coq proof assistant reference manual. The Coq release v8.0 (Oct. 2004)

    Google Scholar 

  17. Vafeiadis, V., Parkinson, M.: A marriage of rely/guarantee and separation logic (2007), Available at http://www.cl.cam.ac.uk/~mjp41/RGSep.pdf

  18. Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)

    CrossRef  MATH  MathSciNet  Google Scholar 

  19. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Department of Computer Science, Yale University New Haven, CT 06520-8285, U.S.A.

    Xinyu Feng, Rodrigo Ferreira & Zhong Shao

Authors
  1. Xinyu Feng
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Rodrigo Ferreira
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Zhong Shao
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints 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

  • .RIS
  • .ENW
  • .BIB
  • 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)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature