Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency

Published: 25 September 2013 Publication History

Abstract

Modular programming and modular verification go hand in hand, but most existing logics for concurrency ignore two crucial forms of modularity: *higher-order functions*, which are essential for building reusable components, and *granularity abstraction*, a key technique for hiding the intricacies of fine-grained concurrent data structures from the clients of those data structures. In this paper, we present CaReSL, the first logic to support the use of granularity abstraction for modular verification of higher-order concurrent programs. After motivating the features of CaReSL through a variety of illustrative examples, we demonstrate its effectiveness by using it to tackle a significant case study: the first formal proof of (partial) correctness for Hendler et al.'s "flat combining" algorithm.

References

[1]
A. Ahmed, D. Dreyer, and A. Rossberg. State-dependent representation independence. In POPL, 2009.
[2]
R. D. Blumofe, C. F. Joerg, B. C. Kuszmaul, C. E. Leiserson, K. H. Randall, and Y. Zhou. Cilk: An efficient multithreaded runtime system. JPDC, 37(1):55--69, Aug. 1996.
[3]
T. Dinsdale-Young, M. Dodds, P. Gardner, M. Parkinson, and V. Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010.
[4]
M. Dodds, S. Jagannathan, and M. Parkinson. Modular reasoning for deterministic parallelism. In POPL, 2011.
[5]
D. Dreyer, G. Neis, A. Rossberg, and L. Birkedal. A relational modal logic for higher-order stateful ADTs. In POPL, 2010.
[6]
T. Elmas, S. Qadeer, A. Sezgin, O. Subasi, and S. Tasiran. Simplifying linearizability proofs with reduction and abstraction. In TACAS, 2010.
[7]
X. Feng. Local rely-guarantee reasoning. In POPL, 2009.
[8]
I. Filipović, P. O'Hearn, N. Rinetzky, and H. Yang. Abstraction for concurrent objects. Theoretical Computer Science, 411, 2010.
[9]
A. Gotsman and H. Yang. Linearizability with ownership transfer. In CONCUR, 2012.
[10]
T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPOPP, 2005.
[11]
D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat combining and the synchronization-parallelism tradeoff. In SPAA, 2010.
[12]
D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA, 2004.
[13]
M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. TOPLAS, 12(3):463--492, 1990.
[14]
A. Hobor, A. W. Appel, and F. Z. Nardelli. Oracle semantics for concurrent separation logic. In ESOP, 2008.
[15]
C. B. Jones. Tentative steps toward a development method for interfering programs. TOPLAS, 5(4):596--619, 1983.
[16]
D. Lea. Thetextsfjava.util.concurrenttextsfConcurrentHashMap.
[17]
R. Ley-Wild and A. Nanevski. Subjective auxiliary state for coarse-grained concurrency. In POPL, 2013.
[18]
H. Liang and X. Feng. Modular verification of linearizability with non-fixed linearization points. In PLDI, 2013.
[19]
R. J. Lipton. Reduction: a method of proving properties of parallel programs. Commun. ACM, 18(12):717--721, 1975.
[20]
P. W. O'Hearn. Resources, concurrency, and local reasoning. Theor. Comput. Sci., 375(1-3):271--307, 2007.
[21]
M. Parkinson and G. Bierman. Separation logic and abstraction. In POPL, 2005.
[22]
A. M. Pitts and I. Stark. Operational reasoning for functions with local state. In HOOTS, 1998.
[23]
G. Plotkin and M. Abadi. A logic for parametric polymorphism. In TLCA, 1993.
[24]
F. Pottier. Hiding local state in direct style: a higher-order anti-frame rule. In LICS, 2008.
[25]
J. H. Reppy. Higher-order concurrency. PhD thesis, Cornell University, 1992.
[26]
J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, 2002.
[27]
K. Svendsen, L. Birkedal, and M. Parkinson. Modular reasoning about separation of concurrent data structures. In ESOP, 2013.
[28]
R. Treiber. Systems programming: coping with parallelism. Technical report, Almaden Research Center, 1986.
[29]
P. W. Trinder, K. Hammond, H.-W. Loidl, and S. L. Peyton Jones. Algorithm
[30]
strategy = parallelism. JFP, 8(1):23--60, Jan. 1998.
[31]
A. Turon, D. Dreyer, and L. Birkedal. Unifying refinement and Hoare-style reasoning in a logic for higher-order concurrency: Appendix. http://www.mpi-sws.org/ turon/caresl/appendix.pdf.
[32]
A. Turon, J. Thamsborg, A. Ahmed, L. Birkedal, and D. Dreyer. Logical relations for fine-grained concurrency. In POPL, 2013.
[33]
V. Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, University of Cambridge, 2008.
[34]
H. Yang. Relational separation logic. TCS, 375(1-3):308--334, 2007.

Cited By

View all
  • (2024) : A simplified and abstract multicore hardware model for large scale system software formal verification Journal of Systems Architecture10.1016/j.sysarc.2023.103049147(103049)Online publication date: Feb-2024
  • (2024) : A template to build verified thread-local interfaces with software scheduler abstractions Journal of Systems Architecture10.1016/j.sysarc.2023.103046147(103046)Online publication date: Feb-2024
  • (2021)Concise Outlines for a Complex Logic: A Proof Outline Checker for TaDAFormal Methods10.1007/978-3-030-90870-6_22(407-426)Online publication date: 20-Nov-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 48, Issue 9
ICFP '13
September 2013
457 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2544174
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
    September 2013
    484 pages
    ISBN:9781450323260
    DOI:10.1145/2500365
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 the author(s) 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: 25 September 2013
Published in SIGPLAN Volume 48, Issue 9

Check for updates

Author Tags

  1. contextual refinement
  2. fine-grained concurrency
  3. higher-order functions
  4. kripke logical relations
  5. separation logic

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)48
  • Downloads (Last 6 weeks)4
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024) : A simplified and abstract multicore hardware model for large scale system software formal verification Journal of Systems Architecture10.1016/j.sysarc.2023.103049147(103049)Online publication date: Feb-2024
  • (2024) : A template to build verified thread-local interfaces with software scheduler abstractions Journal of Systems Architecture10.1016/j.sysarc.2023.103046147(103046)Online publication date: Feb-2024
  • (2021)Concise Outlines for a Complex Logic: A Proof Outline Checker for TaDAFormal Methods10.1007/978-3-030-90870-6_22(407-426)Online publication date: 20-Nov-2021
  • (2019)Specifying concurrent programs in separation logic: morphisms and simulationsProceedings of the ACM on Programming Languages10.1145/33605873:OOPSLA(1-30)Online publication date: 10-Oct-2019
  • (2018)GPS$$+$$+International Journal of Parallel Programming10.1007/s10766-017-0518-x46:6(1157-1183)Online publication date: 1-Dec-2018
  • (2017)Abstract Specifications for Concurrent MapsProgramming Languages and Systems10.1007/978-3-662-54434-1_36(964-990)Online publication date: 25-Apr-2017
  • (2017)A Higher-Order Logic for Concurrent Termination-Preserving RefinementProgramming Languages and Systems10.1007/978-3-662-54434-1_34(909-936)Online publication date: 25-Apr-2017
  • (2017)The Essence of Higher-Order Concurrent Separation LogicProgramming Languages and Systems10.1007/978-3-662-54434-1_26(696-723)Online publication date: 25-Apr-2017
  • (2017)CaperProgramming Languages and Systems10.1007/978-3-662-54434-1_16(420-447)Online publication date: 25-Apr-2017
  • (2017)Program Verification Under Weak Memory Consistency Using Separation LogicComputer Aided Verification10.1007/978-3-319-63387-9_2(30-46)Online publication date: 13-Jul-2017
  • Show More Cited By

View Options

Get Access

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