Formal Verification of Scalable NonZero Indicators - Zhang, Shao Jie; Liu, Yang; Sun, Jun; Dong, Jin Song; Liu, Yanhong A.; Chen, Wei (The 21st International Conference on Software Engineering and Knowledge Engineering (SEKE'2009), Boston, U.S.A., July 2009., 2009)
Concurrent algorithms are notoriously difficult to design correctly, and high performance algorithms that make little or no use of locks even more so. In this paper, we describe a formal verification of a recent concurrent data structure Scalable NonZero Indicators. The algorithm supports incrementing, decrementing, and querying the shared counter in an efficient and linearizable way without blocking. The algorithm is highly non-trivial and it is challenging to prove the correctness. We have proved that the algorithm satisfies linearizability, by showing a trace refinement relation from the concrete implementation to its abstract specification. These models are specified in CSP and verified automatically using the model checking toolkit PAT.