Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Practical Multi-word Compare-and-Swap Operation
DISC '02 Proceedings of the 16th International Conference on Distributed Computing
Static analysis of atomicity for programs with non-blocking synchronization
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Proving correctness of highly-concurrent linearisable objects
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Lock-free dynamic hash tables with open addressing
Distributed Computing - Special issue: PODC 02
Heap Decomposition for Concurrent Shape Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Thread Quantification for Concurrent Shape Analysis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Comparison under abstraction for verifying linearizability
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Formal verification of a lazy concurrent list-based set algorithm
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Modular safety checking for fine-grained concurrency
SAS'07 Proceedings of the 14th international conference on Static Analysis
A marriage of rely/guarantee and separation logic
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Experience with Model Checking Linearizability
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Model Checking Linearizability via Refinement
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Abstract Transformers for Thread Correlation Analysis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Specifying and checking semantic atomicity for multithreaded programs
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Scalable automatic linearizability checking
Proceedings of the 33rd International Conference on Software Engineering
NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctness
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
On inter-procedural analysis of programs with lists and data
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
FIXBAG: a fixpoint calculator for quantified bag constraints
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
An analysis of permutations in arrays
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Invariant synthesis for programs manipulating lists with unbounded data
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Automatically proving linearizability
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Simplifying linearizability proofs with reduction and abstraction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Abstract domains for automated reasoning about list-manipulating programs with infinite data
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Parameterized model checking of fine grained concurrency
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
An integrated specification and verification technique for highly concurrent data structures
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Aspect-Oriented linearizability proofs
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Hi-index | 0.00 |
This paper presents a novel abstraction for heap-allocated data structures that keeps track of both their shape and their contents. By combining this abstraction with thread-local analysis and rely-guarantee reasoning, we can verify a collection of fine-grained blocking and non-blocking concurrent algorithms for an arbitrary (unbounded) number of threads. We prove that these algorithms are linearizable, namely equivalent (modulo termination) to their sequential counterparts.