Mechanizing a Correctness Proof for a Lock-Free Concurrent Stack

  • Authors:
  • John Derrick;Gerhard Schellhorn;Heike Wehrheim

  • Affiliations:
  • Department of Computing, University of Sheffield, Sheffield, UK;Institut für Informatik, Universität Augsburg, Augsburg, Germany 86135;Institut für Informatik, Universität Paderborn, Paderborn, Germany 33098

  • Venue:
  • FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Distributed algorithms are inherently complex to verify. In this paper we show how to verify that a concurrent lock-free implementation of a stack is correct by mechanizing the proof that it is linearizable, linearizability being a correctness notion for concurrent objects. Our approach consists of two parts: the first part is independent of the example and derives proof obligations local for one process which imply linearizabilty. The conditions establish a (special sort of non-atomic) refinement relationshipbetween the specification and the concurrent implementation. These are used in the second part to verify the lock-free stack implementation. We use the specification language Z to describe the algorithms and the KIV theorem prover to mechanize the proof.