skip to main content
10.5555/1762174.1762193guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

On the relationship between concurrent separation logic and assume-guarantee reasoning

Published: 24 March 2007 Publication History

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.

References

[1]
R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in separation logic. In Proc. 32nd ACM Symp. on Principles of Prog. Lang., pages 259-270, 2005.
[2]
S. Brookes. A semantics for concurrent separation logic. In Proc. 15th International Conference on Concurrency Theory (CONCUR'04), volume 3170 of LNCS, pages 16-34, 2004.
[3]
S. Brookes. A grainless semantics for parallel programs with shared mutable data. In Proc. MFPS XXI, volume 155 of Electr. Notes Theor. Comput. Sci., pages 277-307, 2006.
[4]
X. Feng, R. Ferreira, and Z. Shao. 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.
[5]
X. Feng and Z. Shao. Modular verification of concurrent assembly code with dynamic thread creation and termination. In Proc. ICFP'05, pages 254-267, 2005.
[6]
C. A. R. Hoare. Towards a theory of parallel programming. In C. A. R. Hoare and R. H. Perrott, editors, Operating Systems Techniques, pages 61-71. Academic Press, 1972.
[7]
S. S. Ishtiaq and P.W. O'Hearn. BI as an assertion language for mutable data structures. In Proc. 28th ACM Symp. on Principles of Prog. Lang., pages 14-26, 2001.
[8]
C. B. Jones. Tentative steps toward a development method for interfering programs. ACM Trans. on Programming Languages and Systems, 5(4):596-619, 1983.
[9]
G. Necula. Proof-carrying code. In Proc. 24th ACM Symp. on Principles of Prog. Lang., pages 106-119. ACM Press, Jan. 1997.
[10]
P.W. O'Hearn. Resources, concurrency and local reasoning. Theoretical Computer Science (to appear). Journal version of {11}.
[11]
P. W. O'Hearn. Resources, concurrency and local reasoning. In Proc. 15th Int'l Conf. on Concurrency Theory (CONCUR'04), volume 3170 of LNCS, pages 49-67, 2004.
[12]
S. Owicki and D. Gries. Verifying properties of parallel programs: an axiomatic approach. Commun. ACM, 19(5):279-285, 1976.
[13]
M. Parkinson, R. Bornat, and P. O'Hearn. Modular verification of a non-blocking stack. In Proc. 34th ACM Symp. on Principles of Prog. Lang., page to appear. ACM Press, Jan. 2007.
[14]
J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In Proc. LICS'02, pages 55-74, July 2002.
[15]
J. C. Reynolds. Toward a grainless semantics for shared-variable concurrency. In Proc. FSTTCS'04, volume 3328 of LNCS, pages 35-48, 2004.
[16]
The Coq Development Team. The Coq proof assistant reference manual. The Coq release v8.0, Oct. 2004.
[17]
V. Vafeiadis and M. Parkinson. A marriage of rely/guarantee and separation logic. Available at http://www.cl.cam.ac.uk/~mjp41/RGSep.pdf, 2007.
[18]
A. K. Wright and M. Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38-94, 1994.
[19]
D. Yu and Z. Shao. Verification of safety properties for concurrent assembly code. In Proc. 2004 ACM SIGPLAN Int'l Conf. on Functional Prog., pages 175-188, September 2004.

Cited By

View all
  1. On the relationship between concurrent separation logic and assume-guarantee reasoning

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    ESOP'07: Proceedings of the 16th European Symposium on Programming
    March 2007
    537 pages
    ISBN:9783540713142
    • Editor:
    • Rocco De Nicola

    Sponsors

    • Fundacao para a Ciencia e Tecnologia
    • TAP Air Portugal
    • Enabler
    • CISCO

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 24 March 2007

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 25 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media