Skip to main content

Reverse Exchange for Concurrency and Local Reasoning

  • Conference paper
Mathematics of Program Construction (MPC 2012)

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

Included in the following conference series:

Abstract

Recent research has pointed out the importance of the inequational exchange law (P*Q) ; (R*S) ≤ (P ; R)*(Q ; S) for concurrent processes. In particular, it has been shown that this law is equivalent to validity of the concurrency rule for Hoare triples. Unfortunately, the law does not hold in the relationally based setting of algebraic separation logic. However, we show that under mild conditions the reverse inequation (P ; R)*(Q ; S) ≤ (P*Q) ; (R*S) still holds there. Separating conjunction * in that calculus can be interpreted as true concurrency on disjointly accessed resources. From the reverse exchange law we derive slightly restricted but still reasonably useful variants of the concurrency rule. Moreover, using a corresponding definition of locality, we obtain also a variant of the frame rule. By this, the relational setting can also be applied for modular and concurrency reasoning. Finally, we present several variations of the approach to further interpret the results.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Brookes, S.: A semantics for concurrent separation logic. Theoretical Computer Science 375, 227–270 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  2. Calcagno, C., O’Hearn, P.W., Yang, H.: Local Action and Abstract Separation Logic. In: Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science, pp. 366–378. IEEE Press (2007)

    Google Scholar 

  3. Dang, H.-H., Höfner, P.: Variable Side Conditions and Greatest Relations in Algebraic Separation Logic. In: de Swart, H. (ed.) RAMICS 2011. LNCS, vol. 6663, pp. 125–140. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  4. Dang, H.-H., Höfner, P., Möller, B.: Algebraic separation logic. Journal of Logic and Algebraic Programming 80(6), 221–247 (2011)

    Article  MATH  Google Scholar 

  5. Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M.J., Vafeiadis, V.: Concurrent Abstract Predicates. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 504–528. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  6. Hoare, C.A.R.: An Algebra for Program Designs. Notes on Summer School in Software Engineering and Verification in Moscow (2011), http://research.microsoft.com/en-us/um/redmond/events/sssev2011/slides/tony_1.pptx

  7. Hoare, C.A.R., Hussain, A., Möller, B., O’Hearn, P.W., Petersen, R.L., Struth, G.: On Locality and the Exchange Law for Concurrent Processes. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011 – Concurrency Theory. LNCS, vol. 6901, pp. 250–264. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  8. Hoare, C.A.R., Möller, B., Struth, G., Wehrman, I.: Concurrent Kleene Algebra and its Foundations. Journal of Logic and Algebraic Programming 80(6), 266–296 (2011)

    Article  MATH  Google Scholar 

  9. Kozen, D.: Kleene algebra with tests. ACM Transactions on Programming Languages and Systems 19(3), 427–443 (1997)

    Article  Google Scholar 

  10. Möller, B.: Kleene getting lazy. Science of Computer Programming 65, 195–214 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  11. O’Hearn, P.W.: Resources, Concurrency, and Local Reasoning. Theoretical Computer Science 375(1-3), 271–307 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  12. O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local Reasoning about Programs that Alter Data Structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Plotkin, G.D.: A structural approach to operational semantics. J. Log. Algebr. Program., 60–61, 17–139 (2004)

    Google Scholar 

  14. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002: Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science, pp. 55–74. IEEE Computer Society (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dang, HH., Möller, B. (2012). Reverse Exchange for Concurrency and Local Reasoning. In: Gibbons, J., Nogueira, P. (eds) Mathematics of Program Construction. MPC 2012. Lecture Notes in Computer Science, vol 7342. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31113-0_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31113-0_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31112-3

  • Online ISBN: 978-3-642-31113-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics