Nonblocking Algorithms and Backward Simulation
Optimistic and nonblocking concurrent algorithms are increasingly finding their way into practical use; an important example is software transactional memory implementations. Such algorithms are notoriously difficult to design and verify as correct, and we believe complete, formal, and machine-checked correctness proofs for such algorithms are critical. We have been studying the use of automated tools such as the PVS theorem proving system to model algorithms and their specifications using formalisms such as I/O automata, and using simulation proof techniques to show the algorithms implement their specifications. While it has been relatively rare in the past, optimistic and nonblocking algorithms often require a special flavour of simulation proof, known as backward simulation. In this paper, we present what we believe is by far the most challenging backward simulation proof achieved to date; this proof was developed and completely checked using PVS.
KeywordsForward Simulation Simulation Relation Proof Script Concurrent Algorithm Push Operation
Unable to display preview. Download preview PDF.
- 2.Detlefs, D., Flood, C.H., Garthwaite, A., Martin, P., Shavit, N.N., Steele Jr., G.L.: Even better DCAS-based concurrent deques. In: Proceedings of the 14th International Conference on Distributed Computing, pp. 59–73. IEEE Computer Society Press, Los Alamitos (2000)Google Scholar
- 3.Doherty, S., Detlefs, D., Groves, L., Flood, C., Luchangco, V., Martin, P., Moir, M., Shavit, N., Steele Jr., G.L.: DCAS is not a silver bullet for nonblocking synchronization. In: Proceedings of the Sixteenth ACM Symposium on Parllelism in Algorithms and Architectures. ACM Press, New York (2004)Google Scholar
- 5.Gao, H., Groote, J., Hesselink, W.H.: Lock-free resizable hash-tables with open addressing. Distributed Computing 18(1) (July 2005)Google Scholar