Verifying Concurrent Data Structures by Simulation
Robert J. Colvin, Simon Doherty, Lindsay J. Groves · Electronic Notes in Theoretical Computer Science · 2005
We describe an approach to verifying concurrent data structures based on simulation between two Input/Output Automata (IOAs), modelling the specification and the implementation. We explain how we used this approach in mechanically verifying a simple lock-free stack implementation using forward simulation, and briefly discuss our experience in verifying three other lock-free algorithms which all required the use of backward simulation.