Two approaches for proving linearizability of multiset

Linearizability is a key correctness criterion for concurrent software. In our previous work, we have introduced local proof obligations, which, by showing a refinement between an abstract specification and its implementation, imply linearizability of the implementation. The refinement is shown via a process local simulation. We have incorporated the approach of verifying linearizability based on refinement in two rather different proof systems: a predicate logic based approach performing a simulation for two processes and second, an approach based on temporal logic that shows a refinement for an individual process using rely-guarantee reasoning and symbolic execution. To compare both proof techniques, we use an implementation of a multiset as running example. Moreover, we show how ownership annotations have helped us to reduce the proof effort. All proofs are mechanized in the theorem prover KIV. Two approaches for verifying linearizability.Mechanized verification of local proof obligations.Challenging case study of a multiset implementation with fine-grained locking.Rely-Guarantee reasoning for a Temporal Logic with Programs.

[1]  Xinyu Feng,et al.  Modular verification of linearizability with non-fixed linearization points , 2013, PLDI 2013.

[2]  John Derrick,et al.  Verifying Linearisability with Potential Linearisation Points , 2011, FM.

[3]  Kurt Stenzel,et al.  Structured Specifications and Interactive Proofs with KIV , 1998 .

[4]  John Derrick,et al.  Mechanizing a Correctness Proof for a Lock-Free Concurrent Stack , 2008, FMOODS.

[5]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[6]  Eran Yahav,et al.  Comparison Under Abstraction for Verifying Linearizability , 2007, CAV.

[7]  Willem P. de Roever,et al.  The rely-guarantee method for verifying shared variable concurrent programs , 1997, Formal Aspects of Computing.

[8]  Viktor Vafeiadis,et al.  RGSep Action Inference , 2010, VMCAI.

[9]  Jerzy Tiuryn,et al.  Dynamic logic , 2001, SIGA.

[10]  Serdar Tasiran,et al.  A calculus of atomic actions , 2009, POPL '09.

[11]  Stephan Merz,et al.  TLA + Proofs , 2012, FM.

[12]  Omer Subasi,et al.  Simplifying Linearizability Proofs with Reduction and Abstraction , 2010, TACAS.

[13]  Thomas A. Henzinger,et al.  Aspect-Oriented Linearizability Proofs , 2013, CONCUR.

[14]  Gidon Ernst,et al.  RGITL: A temporal logic framework for compositional reasoning about interleaved programs , 2014, Annals of Mathematics and Artificial Intelligence.

[15]  Gidon Ernst,et al.  Interleaved Programs and Rely-Guarantee Reasoning with ITL , 2011, 2011 Eighteenth International Symposium on Temporal Representation and Reasoning.

[16]  Yde Venema,et al.  Dynamic Logic by David Harel, Dexter Kozen and Jerzy Tiuryn. The MIT Press, Cambridge, Massachusetts. Hardback: ISBN 0–262–08289–6, $50, xv + 459 pages , 2002, Theory and Practice of Logic Programming.

[17]  Gidon Ernst,et al.  Compositional Verification of a Lock-Free Stack with RGITL , 2014, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[18]  Oleg Travkin,et al.  Proving Linearizability of Multiset with Local Proof Obligations , 2012, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[19]  John Derrick,et al.  How to Prove Algorithms Linearisable , 2012, CAV.

[20]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[21]  Mark Moir,et al.  Formal Verification of a Practical Lock-Free Queue Algorithm , 2004, FORTE.

[22]  Viktor Vafeiadis Automatically Proving Linearizability , 2010, CAV.

[23]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[24]  Ben C. Moszkowski,et al.  An Automata-Theoretic Completeness Proof for Interval Temporal Logic , 2000, ICALP.

[25]  Wolfgang Reif,et al.  Formal Verification of a Lock-Free Stack with Hazard Pointers , 2011, ICTAC.

[26]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[27]  Wolfgang Reif,et al.  Temporal Logic Verification of Lock-Freedom , 2010, MPC.

[28]  Robert Colvin,et al.  Verifying Concurrent Data Structures by Simulation , 2005, Electron. Notes Theor. Comput. Sci..

[29]  Wolfgang Reif,et al.  Proving linearizability with temporal logic , 2009, Formal Aspects of Computing.

[30]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[31]  Henny B. Sipma,et al.  Deductive verification of real-time systems using STeP , 1997, Theor. Comput. Sci..

[32]  John Derrick,et al.  Mechanically verified proof obligations for linearizability , 2011, TOPL.