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 ScholarDigital 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 ScholarDigital Library
- R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in separation logic. In POPL'05, 2005. Google ScholarDigital Library
- C. Calcagno, P. Gardner, and U. Zarfaty. Local reasoning about data update. ENTCS, 172:133--175, 2007. Google ScholarDigital Library
- C. Calcagno, P. W. O'Hearn, and H. Yang. Local action and abstract separation logic. In LICS, 2007. Google ScholarDigital Library
- A. Charguéraud and F. Pottier. Functional translation of a calculus of capabilities. In ICFP, pages 213--224, 2008.Google ScholarDigital 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 ScholarDigital Library
- T. Dinsdale-Young, P. Gardner, and M. Wheelhouse. Abstraction and refinement for local reasoning. In VSTTE, 2010. Google ScholarDigital 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 ScholarDigital Library
- M. Dodds, X. Feng, M. J. Parkinson, and V. Vafeiadis. Deny-guarantee reasoning. In ESOP, pages 363--377, 2009. Google ScholarDigital Library
- X. Feng. Local rely-guarantee reasoning. In POPL, 2009. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- J. B. Jensen and L. Birkedal. Fictional separation logic. In ESOP, 2012. Google ScholarDigital Library
- C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5(4):596--619, 1983. Google ScholarDigital Library
- N. Krishnaswami, L. Birkedal, and J. Aldrich. Verifying event-driven programs using ramified frame properties. In TLDI, 2010. Google ScholarDigital Library
- N. Krishnaswami, A. Turon, D. Dreyer, and D. Garg. Superficially substructural types. In ICFP, 2012. Google ScholarDigital Library
- G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. TOPLAS, 21(3):527--568, 1999. Google ScholarDigital Library
- S. Owicki and D. Gries. An axiomatic proof technique for parallel programs I. Acta Informatica, 6(4):319--340, 1976.Google ScholarDigital Library
- M. J. Parkinson, R. Bornat, and P. O'Hearn. Modular verification of a non-blocking stack. In POPL, 2007. Google ScholarDigital 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 ScholarDigital Library
- J. Smans, B. Jacobs, and F. Piessens. Implicit dynamic frames: Combining dynamic frames and separation logic. In ECOOP, 2009. Google ScholarDigital Library
- F. Smith, D. Walker, and J. G. Morrisett. Alias types. In ESOP, 2000. Google ScholarDigital 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 ScholarDigital 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