A Semantics for Concurrent Separation Logic

  • Stephen Brookes
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3170)


We present a denotational semantics based on action traces, for parallel programs which share mutable data and synchronize using resources and conditional critical regions. We introduce a resource-sensitive logic for partial correctness, adapting separation logic to the concurrent setting, as proposed by O’Hearn. The logic allows program proofs in which “ownership” of a piece of state is deemed to transfer dynamically between processes and resources. We prove soundness of this logic, using a novel “local” interpretation of traces, and we show that every provable program is race-free.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hansen, P.B.: Structured multiprogramming. Comm. ACM 15(7), 574–578 (1972)CrossRefGoogle Scholar
  2. 2.
    Hansen, P.B.: Concurrent programming concepts. ACM Computing Surveys 5(4), 223–245 (1973)CrossRefMATHGoogle Scholar
  3. 3.
    Brookes, S.D.: Traces, pomsets, fairness and full abstraction for communicating processes. In: Brim, L., Jančar, P., Křetínský, M., Kucera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 466–482. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  4. 4.
    Brookes, S.: Communicating Parallel Processes: Deconstructing CSP. In: Millenium Perspectives in Computer Science. Proc. 1999 Oxford-Microsoft Symposium in honour of Sir Tony Hoare, Palgrave (2000)Google Scholar
  5. 5.
    Brookes, S.: Full abstraction for a shared-variable parallel language. Inf. Comp. 127(2), 145–163 (1996)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Dijkstra, E.W.: Cooperating sequential processes. In: Genuys, F. (ed.) Programming Languages, pp. 43–112. Academic Press, London (1968)Google Scholar
  7. 7.
    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
  8. 8.
    Isthiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proc. 28th POPL conference, pp. 36–49 (January 2001)Google Scholar
  9. 9.
    Jones, C.B.: Specification and design of (parallel) programs. In: Proc. IFIP Conference (1983)Google Scholar
  10. 10.
    Lauer, H.C.: Correctness in operating systems. Ph. D. thesis, Carnegie Mellon University (1973)Google Scholar
  11. 11.
    O’Hearn, P.W.: Notes on separation logic for shared-variable concurrency (January 2002) (unpublished manuscript)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and Information Hiding. In: Proc. 31st POPL conference, Venice, pp. 268–280. ACM Press, New York (2004)Google Scholar
  14. 14.
    O’Hearn, P.W., Pym, D.J.: The logic of bunched implications. Bulletin of Symbolic Logic 5(2), 215–244 (1999)MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: An axiomatic approach. Comm. ACM. 19(5), 279–285 (1976)MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Park, D.: On the semantics of fair parallelism. In: Bjorner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, pp. 504–526. Springer, Heidelberg (1980)CrossRefGoogle Scholar
  17. 17.
    Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proc. 17th IEEE Conference on Logic in Computer Science, LICS 2002, pp. 55–74. IEEE Computer Society, Los Alamitos (2002)Google Scholar
  18. 18.
    Reynolds, J.C.: Lecture notes on separation logic (15-819A3), ch. 8, Department of Computer Science, Carnegie-Mellon University, p. 178 (Spring 2003) (Revised May 23, 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Stephen Brookes
    • 1
  1. 1.Department of Computer ScienceCarnegie Mellon UniversityUSA

Personalised recommendations