skip to main content
research-article

Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning

Published:14 January 2015Publication History
Skip Abstract Section

Abstract

We present Iris, a concurrent separation logic with a simple premise: monoids and invariants are all you need. Partial commutative monoids enable us to express---and invariants enable us to enforce---user-defined *protocols* on shared state, which are at the conceptual core of most recent program logics for concurrency. Furthermore, through a novel extension of the concept of a *view shift*, Iris supports the encoding of *logically atomic specifications*, i.e., Hoare-style specs that permit the client of an operation to treat the operation essentially as if it were atomic, even if it is not.

Skip Supplemental Material Section

Supplemental Material

p637-sidebyside.mpg

References

  1. Appendix and Coq development. http://plv.mpi-sws.org/iris.Google ScholarGoogle Scholar
  2. M. Abadi and L. Lamport. The existence of refinement mappings. Theor. Comput. Sci., 82(2):253--284, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Ahmed, D. Dreyer, and A. Rossberg. State-dependent representation independence. In POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. America and J. Rutten. Solving reflexive domain equations in a category of complete metric spaces. J. Comput. Syst. Sci., 39(3):343--375, 1989.Google ScholarGoogle ScholarCross RefCross Ref
  5. E. A. Ashcroft. Proving assertions about parallel programs. Journal of Computer and System Sciences, 10(1):110--135, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Birkedal, B. Reus, J. Schwinghammer, K. Støvring, J. Thamsborg, and H. Yang. Step-indexed Kripke models over recursive worlds. In POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. Cohen, et al. Invariants, modularity, and rights. In PSI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. da Rocha Pinto, T. Dinsdale-Young, and P. Gardner. TaDA: A logic for time and data abstraction. In ECOOP, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Dinsdale-Young, L. Birkedal, P. Gardner, M. J. Parkinson, and H. Yang. Views: Compositional reasoning for concurrent programs. In POPL, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Dinsdale-Young, M. Dodds, P. Gardner, M. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Dockins, A. Hobor, and A. W. Appel. A fresh look at separation algebras and share accounting. In APLAS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. X. Feng. Local rely-guarantee reasoning. In POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. X. Feng, R. Ferreira, and Z. Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. I. Filipović, P. O'Hearn, N. Torp-Smith, and H. Yang. Blaming the client: On data refinement in the presence of pointers. In FACS, 2009.Google ScholarGoogle Scholar
  15. M. Fu, Y. Li, X. Feng, Z. Shao, and Y. Zhang. Reasoning about optimistic concurrency using a program logic for history. In CONCUR, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. B. Jacobs. Personal communication, 2014.Google ScholarGoogle Scholar
  19. B. Jacobs and F. Piessens. Expressive modular fine-grained concurrency specification. In POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. B. Jensen and L. Birkedal. Fictional separation logic. In ESOP, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. B. Jones. Tentative steps toward a development method for interfering programs. TOPLAS, 5(4):596--619, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. R. Krishnaswami, A. Turon, D. Dreyer, and D. Garg. Superficially substructural types. In ICFP, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans.\ Comput., 28(9):690--691, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. R. Ley-Wild and A. Nanevski. Subjective auxiliary state for coarse-grained concurrency. In POPL, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. H. Liang and X. Feng. Modular verification of linearizability with non-fixed linearization points. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Milner. Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Nanevski, R. Ley-Wild, I. Sergey, and G. A. Delbianco. Communicating state transition systems for fine-grained concurrent resources. In ESOP, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. O'Hearn. Resources, concurrency, and local reasoning. TCS, 375(1):271--307, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. Owicki and D. Gries. Verifying properties of parallel programs: An axiomatic approach. CACM, 19(5):279--285, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Pilkiewicz and F. Pottier. The essence of monotonic state. In TLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. F. Sieczkowski, A. Bizjak, Y. Zakowski, and L. Birkedal. Modular reasoning about concurrent higher-order imperative programs: a Coq tutorial. http://users-cs.au.dk/birke/modures/tutorial/index.html, 2014.Google ScholarGoogle Scholar
  33. K. Svendsen and L. Birkedal. Impredicative concurrent abstract predicates. In ESOP, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Turon, D. Dreyer, and L. Birkedal. Unifying refinement and Hoare-style reasoning in a logic for higher-order concurrency. In ICFP, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Turon, J. Thamsborg, A. Ahmed, L. Birkedal, and D. Dreyer. Logical relations for fine-grained concurrency. In POPL, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. V. Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, University of Cambridge, 2007.Google ScholarGoogle Scholar
  37. V. Vafeiadis and M. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. Walker. Objects in the pi-calculus. Inf. Comput., 116(2):253--271, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!