Shape-Value Abstraction for Verifying Linearizability [chapter]

Viktor Vafeiadis
2008 Lecture Notes in Computer Science  
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 relyguarantee 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.
doi:10.1007/978-3-540-93900-9_27 fatcat:33fevparpvcztnhgack3jilfbq