Model Checking Unbounded Concurrent Lists

We present a model checking based method for verifying list-based concurrent data structures. Concurrent data structures are notorious for being hard to get right and thus, their verification has received significant attention from the verification community. These data structures are unbounded in two dimensions: the list size is unbounded and an unbounded number of threads access them. Thus, their model checking requires abstraction to a model bounded in both the dimensions.

[1]  Shuvendu K. Lahiri,et al.  Predicate abstraction with indexed predicates , 2004, TOCL.

[2]  Amir Pnueli,et al.  Automatic Deductive Verification with Invisible Invariants , 2001, TACAS.

[3]  Mark R. Tuttle,et al.  Protocol verification using flows: An industrial experience , 2009, 2009 Formal Methods in Computer-Aided Design.

[4]  Yanhong A. Liu,et al.  Model Checking Linearizability via Refinement , 2009, FM.

[5]  Viktor Vafeiadis,et al.  Shape-Value Abstraction for Verifying Linearizability , 2008, VMCAI.

[6]  Mark R. Tuttle,et al.  Going with the Flow: Parameterized Verification Using Message Flows , 2008, 2008 Formal Methods in Computer-Aided Design.

[7]  Mark Moir,et al.  Formal Verification of a Lazy Concurrent List-Based Set Algorithm , 2006, CAV.

[8]  Yang Liu,et al.  Model Checking a Lazy Concurrent List-Based Set Algorithm , 2010, 2010 Fourth International Conference on Secure Software Integration and Reliability Improvement.

[9]  Seungjoon Park,et al.  A Simple Method for Parameterized Verification of Cache Coherence Protocols , 2004, FMCAD.

[10]  Viktor Vafeiadis,et al.  Modular Safety Checking for Fine-Grained Concurrency , 2007, SAS.

[11]  Viktor Vafeiadis Automatically Proving Linearizability , 2010, CAV.

[12]  Sebastian Burckhardt,et al.  Line-up: a complete and automatic linearizability checker , 2010, PLDI '10.

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

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

[15]  Amir Pnueli,et al.  Liveness with (0, 1, infty)-Counter Abstraction , 2002, CAV.

[16]  Maurice Herlihy,et al.  Proving correctness of highly-concurrent linearisable objects , 2006, PPoPP '06.

[17]  Eran Yahav,et al.  Verifying safety properties of concurrent Java programs using 3-valued logic , 2001, POPL '01.

[18]  Eran Yahav,et al.  Experience with Model Checking Linearizability , 2009, SPIN.

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

[20]  Sharad Malik,et al.  Parameterized Model Checking of Fine Grained Concurrency , 2012, SPIN.

[21]  Thomas Noll,et al.  Verifying Dynamic Pointer-Manipulating Threads , 2008, FM.

[22]  Viktor Vafeiadis,et al.  Concurrent Abstract Predicates , 2010, ECOOP.

[23]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[24]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[25]  Alexey Gotsman,et al.  Thread-modular shape analysis , 2007, PLDI '07.

[26]  Roman Manevich,et al.  Thread Quantification for Concurrent Shape Analysis , 2008, CAV.

[27]  Kenneth L. McMillan,et al.  Verification of Infinite State Systems by Compositional Model Checking , 1999, CHARME.

[28]  Frank Piessens,et al.  Expressive modular fine-grained concurrency specification , 2011, POPL '11.

[29]  Shao Jie Zhang Scalable automatic linearizability checking , 2011, 2011 33rd International Conference on Software Engineering (ICSE).