Abstract

Compositional abstractions underly many reasoning principles for concurrent programs: the concurrent environment is abstracted in order to reason about a thread in isolation; and these abstractions are composed to reason about a program consisting of many threads. For instance, separation logic uses formulae that describe part of the state, abstracting the rest; when two threads use disjoint state, their specifications can be composed with the separating conjunction. Type systems abstract the state to the types of variables; threads may be composed when they agree on the types of shared variables.
In this paper, we present the "Concurrent Views Framework", a metatheory of concurrent reasoning principles. The theory is parameterised by an abstraction of state with a notion of composition, which we call views. The metatheory is remarkably simple, but highly applicable: the rely-guarantee method, concurrent separation logic, concurrent abstract predicates, type systems for recursive references and for unique pointers, and even an adaptation of the Owicki-Gries method can all be seen as instances of the Concurrent Views Framework. Moreover, our metatheory proves each of these systems is sound without requiring induction on the operational semantics.
Supplemental Material
- A. Ahmed, M. Fluet, and G. Morrisett. L3: A linear language with locations. Fundam. Inform., 77(4):397--449, 2007. Google Scholar
Digital Library
- L. Birkedal, N. Torp-Smith, and H. Yang. Semantics of separationlogic typing and higher-order frame rules for Algol-like languages. LMCS, 2(5:1), 2006.Google Scholar
- L. Birkedal, B. Reus, J. Schwinghammer, and H. Yang. A simple model of separation logic for higher-order store. In ICALP, 2008. Google Scholar
Digital Library
- R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in separation logic. In POPL'05, 2005. Google Scholar
Digital Library
- C. Calcagno, P. Gardner, and U. Zarfaty. Local reasoning about data update. ENTCS, 172:133--175, 2007. Google Scholar
Digital Library
- C. Calcagno, P. W. O'Hearn, and H. Yang. Local action and abstract separation logic. In LICS, 2007. Google Scholar
Digital Library
- A. Charguéraud and F. Pottier. Functional translation of a calculus of capabilities. In ICFP, pages 213--224, 2008.Google Scholar
Digital Library
- T. Dinsdale-Young. Abstract Data and Local Reasoning. PhD thesis, Imperial College, Department of Computing, 2010.Google Scholar
- T. Dinsdale-Young, M. Dodds, P. Gardner, M. J. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010. Google Scholar
Digital Library
- T. Dinsdale-Young, P. Gardner, and M. Wheelhouse. Abstraction and refinement for local reasoning. In VSTTE, 2010. Google Scholar
Digital Library
- T. Dinsdale-Young, L. Birkedal, P. Gardner, M. Parkinson, and H. Yang. Views: Compositional reasoning for concurrent programs (technical report and addditional material). http://sites.google.com/site/viewsmodel/, 2012.Google Scholar
- R. Dockins, A. Hobor, and A. W. Appel. A fresh look at separation algebras and share accounting. In APLAS, 2009. Google Scholar
Digital Library
- M. Dodds, X. Feng, M. J. Parkinson, and V. Vafeiadis. Deny-guarantee reasoning. In ESOP, pages 363--377, 2009. Google Scholar
Digital Library
- X. Feng. Local rely-guarantee reasoning. In POPL, 2009. Google Scholar
Digital Library
- X. Feng, R. Ferreira, and Z. Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP, pages 173--188, 2007. Google Scholar
Digital Library
- P. Gardner, G. Nzik, and A. Wright. Reasoning about POSIX file systems using structural separation logic. Draft, 2012.Google Scholar
- C. Gordon, M. Parkinson, J. Parsons, A. Bromfield, and J. Duffy. Uniqueness and reference immutability for safe parallelism. In OOPSLA, 2012. Google Scholar
Digital Library
- S. S. Ishtiaq and P. W. O'Hearn. BI as an assertion language for mutable data structures. In POPL, pages 14--26, 2001. Google Scholar
Digital Library
- J. B. Jensen and L. Birkedal. Fictional separation logic. In ESOP, 2012. Google Scholar
Digital Library
- C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5(4):596--619, 1983. Google Scholar
Digital Library
- N. Krishnaswami, L. Birkedal, and J. Aldrich. Verifying event-driven programs using ramified frame properties. In TLDI, 2010. Google Scholar
Digital Library
- N. Krishnaswami, A. Turon, D. Dreyer, and D. Garg. Superficially substructural types. In ICFP, 2012. Google Scholar
Digital Library
- G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. TOPLAS, 21(3):527--568, 1999. Google Scholar
Digital Library
- S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6(4):319--340, 1976.Google Scholar
Digital Library
- M. J. Parkinson, R. Bornat, and P. O'Hearn. Modular verification of a non-blocking stack. In POPL, 2007. Google Scholar
Digital Library
- F. Pottier. Syntactic soundness proof of a type-and-capability system with hidden state. Technical report, INRIA, 2011.Google Scholar
- J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, 2002. Google Scholar
Digital Library
- J. Smans, B. Jacobs, and F. Piessens. Implicit dynamic frames: Combining dynamic frames and separation logic. In ECOOP, 2009. Google Scholar
Digital Library
- F. Smith, D. Walker, and J. G. Morrisett. Alias types. In ESOP, 2000. Google Scholar
Digital Library
- K. Svendsen, L. Birkedal, and M. Parkinson. A specification of the joins library in higher-order separation logic. Technical report, IT University of Copenhagen, 2012.Google Scholar
- V. Vafeiadis and M. J. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, pages 256--271, 2007. Google Scholar
Digital Library
Index Terms
Views: compositional reasoning for concurrent programs
Recommendations
Views: compositional reasoning for concurrent programs
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesCompositional abstractions underly many reasoning principles for concurrent programs: the concurrent environment is abstracted in order to reason about a thread in isolation; and these abstractions are composed to reason about a program consisting of ...
RGITL: A temporal logic framework for compositional reasoning about interleaved programs
This paper gives a self-contained presentation of the temporal logic Rely-Guarantee Interval Temporal Logic (RGITL). The logic is based on interval temporal logic (ITL) and higher-order logic. It extends ITL with explicit interleaved programs and ...
Mechanizing UNITY in Isabelle
UNITY is an abstract formalism for proving properties of concurrent systems, which typically are expressed using guarded assignments [Chandy and Misra 1988]. UNITY has been mechanized in higher-order logic using Isabelle, a proof assistant. Safety and ...







Comments