Automated Verification of Concurrent Search Structures

Abstract Search structures support the fundamental data storage primitives on key-value pairs: insert a pair, delete by key, search by key, and update the value associated with a key. Concurrent se...

[1]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[2]  Jan Smans,et al.  Verification of Concurrent Programs with Chalice , 2009, FOSAD.

[3]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[4]  Mark D. Hill,et al.  A Unified Formalization of Four Shared-Memory Models , 1993, IEEE Trans. Parallel Distributed Syst..

[5]  G. Winskel The formal semantics of programming languages , 1993 .

[6]  K. Rustan M. Leino Modeling Concurrency in Dafny , 2017, SETSS.

[7]  Lars Birkedal,et al.  Iris from the ground up: A modular foundation for higher-order concurrent separation logic , 2018, Journal of Functional Programming.

[8]  Lars Birkedal,et al.  Logical relations for fine-grained concurrency , 2013, POPL.

[9]  Hongseok Yang,et al.  Views: compositional reasoning for concurrent programs , 2013, POPL.

[10]  Peter W. O'Hearn,et al.  Concurrent separation logic , 2016, SIGL.

[11]  Suresh Jagannathan,et al.  Verifying Custom Synchronization Constructs Using Higher-Order Separation Logic , 2016, ACM Trans. Program. Lang. Syst..

[12]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[13]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[14]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[15]  James Noble,et al.  Ownership types for flexible alias protection , 1998, OOPSLA '98.

[16]  Dennis Shasha,et al.  Concurrent search structure algorithms , 1988, TODS.

[17]  K. Mani Chandy,et al.  An example of stepwise refinement of distributed programs: quiescence detection , 1986, TOPL.

[18]  Frank Piessens,et al.  Safe concurrency for aggregate objects with invariants , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[19]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[20]  Reiner Hähnle,et al.  Deductive Software Verification: From Pen-and-Paper Proofs to Industrial Tools , 2019, Computing and Software Science.

[21]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

[22]  Peter W. O'Hearn,et al.  Abstraction for Concurrent Objects , 2009, ESOP.

[23]  Gary T. Leavens,et al.  Modular invariants for layered object structures , 2006, Sci. Comput. Program..

[24]  Michael Norrish,et al.  seL4: formal verification of an operating-system kernel , 2010, Commun. ACM.

[25]  Sudipta Sengupta,et al.  A Common Compiler Framework for Big Data Languages: Motivation, Opportunities, and Benefits. , 2013 .

[26]  Lars Birkedal,et al.  The Essence of Higher-Order Concurrent Separation Logic , 2017, ESOP.

[27]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[28]  Maged M. Michael,et al.  Correction of a Memory Management Method for Lock-Free Data Structures , 1995 .

[29]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[30]  Lars Birkedal,et al.  Higher-order ghost state , 2016, ICFP.

[31]  Lars Birkedal,et al.  Impredicative Concurrent Abstract Predicates , 2014, ESOP.

[32]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[33]  Swarat Chaudhuri,et al.  Model Checking of Linearizability of Concurrent List Implementations , 2010, CAV.

[34]  Ralph-Johan Back,et al.  On Correct Refinement of Programs , 1981, J. Comput. Syst. Sci..

[35]  Peter Bro Miltersen,et al.  Strategy Iteration Is Strongly Polynomial for 2-Player Turn-Based Stochastic Games with a Constant Discount Factor , 2010, JACM.

[36]  Stephen D. Brookes,et al.  A Semantics for Concurrent Separation Logic , 2004, CONCUR.

[37]  Xinyu Feng,et al.  Modular verification of linearizability with non-fixed linearization points , 2013, PLDI 2013.

[38]  Guy M. Lohman,et al.  Differential files: their application to the maintenance of large databases , 1976, TODS.

[39]  Anindya Banerjee,et al.  Local Reasoning for Global Invariants, Part I: Region Logic , 2013, JACM.

[40]  Benjamin Livshits,et al.  Fast: A Transducer-Based Language for Tree Manipulation , 2015, TOPL.

[41]  Constantin Enea,et al.  On Reducing Linearizability to State Reachability , 2015, ICALP.

[42]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[43]  Wolfram Schulte,et al.  Local Verification of Global Invariants in Concurrent Programs , 2010, CAV.

[44]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[45]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[46]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[47]  S. Rajamani,et al.  A decade of software model checking with SLAM , 2011, Commun. ACM.

[48]  Ilya Sergey,et al.  Mechanized verification of fine-grained concurrent programs , 2015, PLDI.

[49]  ReLoC , 2018, Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science.

[50]  Lars Birkedal,et al.  ReLoC: A Mechanised Relational Logic for Fine-Grained Concurrency , 2018, LICS.

[51]  Stephen N. Freund,et al.  Checking Concise Specifications for Multithreaded Software , 2004, J. Object Technol..

[52]  Edsger W. Dijkstra,et al.  A constructive approach to the problem of program correctness , 1968 .

[53]  Stephen Brookes A semantics for concurrent separation logic , 2007, Theor. Comput. Sci..

[54]  Peter W. O'Hearn,et al.  Separation logic , 2019, Commun. ACM.

[55]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[56]  Peter W. O'Hearn,et al.  Scaling static analyses at Facebook , 2019, Commun. ACM.

[57]  Eran Yahav,et al.  Comparison Under Abstraction for Verifying Linearizability , 2007, CAV.

[58]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.