skip to main content
research-article

Subjective auxiliary state for coarse-grained concurrency

Published: 23 January 2013 Publication History

Abstract

From Owicki-Gries' Resource Invariants and Jones' Rely/Guarantee to modern variants based on Separation Logic, axiomatic logics for concurrency require auxiliary state to explicitly relate the effect of all threads to the global invariant on the shared resource. Unfortunately, auxiliary state gives the proof of an individual thread access to the auxiliaries of all other threads. This makes proofs sensitive to the global context, which prevents local reasoning and compositionality.
To tame this historical difficulty of auxiliary state, we propose subjective auxiliary state, whereby each thread is verified using a self view (i.e., the thread's effect on the shared resource) and an other view (i.e., the collective effect of all the other threads). Subjectivity generalizes auxiliary state from stacks and heaps to user-chosen partial commutative monoids, which can eliminate the dependence on the global thread structure.
We employ subjectivity to formulate Subjective Concurrent Separation Logic as a combination of subjective auxiliary state and Concurrent Separation Logic. The logic yields simple, compositional proofs of coarse-grained concurrent programs that use auxiliary state, and scales to support higher-order recursive procedures that can themselves fork new threads. We prove the soundness of the logic with a novel denotational semantics of action trees and a definition of safety using rely/guarantee transitions over a large subjective footprint. We have mechanized the denotational semantics, logic, metatheory, and a number of examples by a shallow embedding in Coq.

Supplementary Material

JPG File (r2d3_talk7.jpg)
MP4 File (r2d3_talk7.mp4)

References

[1]
Richard Bornat, Cristiano Calcagno, PeterW. O'Hearn, and Matthew J. Parkinson. Permission accounting in separation logic. In POPL, 2005.
[2]
Richard Bornat, Cristiano Calcagno, and Hongseok Yang. Variables as resource in separation logic. ENTCS, 155, 2006.
[3]
Stephen Brookes. A semantics for concurrent separation logic. Theor. Comput. Sci., 375(1-3), 2007.
[4]
Cristiano Calcagno, Peter W. O'Hearn, and Hongseok Yang. Local action and abstract separation logic. In LICS, 2007.
[5]
Pedro da Rocha Pinto, Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, and Mark J. Wheelhouse. A simple abstraction for complex concurrent indexes. In OOPSLA, 2011.
[6]
Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Matthew J. Parkinson, and Viktor Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010.
[7]
Mike Dodds, Xinyu Feng, Matthew J. Parkinson, and Viktor Vafeiadis. Deny-guarantee reasoning. In ESOP, 2009.
[8]
Xinyu Feng. Local rely-guarantee reasoning. In POPL, 2009.
[9]
Xinyu Feng, Rodrigo Ferreira, and Zhong Shao. On the relationship between concurrent separation logic and assume-guarantee reasoning. In ESOP, 2007.
[10]
Ming Fu, Yong Li, Xinyu Feng, Zhong Shao, and Yu Zhang. Reasoning about optimistic concurrency using a program logic for history. In CONCUR, 2010.
[11]
Bart Jacobs and Frank Piessens. Expressive modular fine-grained concurrency specification. In POPL, 2011.
[12]
Cliff B. Jones. Specification and design of (parallel) programs. In IFIP Congress, 1983.
[13]
Cliff B. Jones. The role of auxiliary variables in the formal development of concurrent programs. Technical Report CS-TR-1179, University of Newcastle upon Tyne, Computing Science, 2009.
[14]
Thomas Kleymann. Hoare logic and auxiliary variables. Formal Aspects of Computing, 11, 1999.
[15]
Neelakantan R. Krishnaswami, Aaron Turon, Derek Dreyer, and Deepak Garg. Superficially substructural types. In ICFP, 2012.
[16]
Ruy Ley-Wild and Aleksandar Nanevski. Supporting Material. https://software.imdea.org/Üaleks/scsl/, July 2012.
[17]
Per Martin-L¨of. Haupstatz for the intuitionistic theory of iterated inductive definitions. In Scandinavian Logic Symposium, 1971.
[18]
The Coq development team. The Coq proof assistant reference manual. LogiCal Project, 2004. Version 8.0.
[19]
Peter W. O'Hearn. Resources, concurrency, and local reasoning. Theor. Comput. Sci., 375(1-3), 2007.
[20]
Susan S. Owicki. Axiomatic Proof Techniques for Parallel Programs. PhD thesis, Cornell University, 1975.
[21]
Susan S. Owicki and David Gries. Verifying properties of parallel programs: An axiomatic approach. Commun. ACM, 19(5), 1976.
[22]
Matthew J. Parkinson and Gavin M. Bierman. Separation logic and abstraction. In POPL, 2005.
[23]
Matthew J. Parkinson, Richard Bornat, and Cristiano Calcagno. Variables as resource in Hoare logics. In LICS, 2006.
[24]
Uday S. Reddy and John C. Reynolds. Syntactic control of interference for separation logic. In POPL, 2012.
[25]
Viktor Vafeiadis. Concurrent separation logic and operational semantics. ENTCS, 276, 2011.
[26]
Viktor Vafeiadis and Matthew J. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, 2007.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 48, Issue 1
POPL '13
January 2013
561 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2480359
Issue’s Table of Contents
  • cover image ACM Conferences
    POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2013
    586 pages
    ISBN:9781450318327
    DOI:10.1145/2429069
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 January 2013
Published in SIGPLAN Volume 48, Issue 1

Check for updates

Author Tags

  1. concurrency
  2. dependent type theory
  3. local reasoning
  4. rely-guarantee thinking
  5. verification

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)5
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media