Interleaved Programs and Rely-Guarantee Reasoning with ITL

This paper presents a logic that extends basicITL with explicit, interleaved programs. The calculus is based on symbolic execution, as previously described. We extend this former work here, by integrating the logic with higher-order logic, adding recursive procedures and rules to reason about fairness. Further, we show how rules for rely-guarantee reasoning can be derived and outline the application of some features to verify concurrent programs in practice. The logic is implemented in the interactive verification environment KIV.

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

[2]  Frank Ortmeier,et al.  Formal Fault Tree Analysis - Practical Experiences , 2007, Electron. Notes Theor. Comput. Sci..

[3]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[4]  Rod M. Burstall,et al.  Program Proving as Hand Simulation with a Little Induction , 1974, IFIP Congress.

[5]  Ben C. Moszkowski,et al.  A Temporal Logic for Multilevel Reasoning about Hardware , 1985, Computer.

[6]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[7]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

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

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

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

[11]  Wolfgang Reif,et al.  Interactive Verification of Concurrent Systems using Symbolic Execution , 2010, LPAR Workshops.

[12]  Viktor Vafeiadis,et al.  Proving that non-blocking algorithms don't block , 2009, POPL '09.

[13]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

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

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

[16]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

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

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

[19]  Frank S. de Boer,et al.  Verification of Sequential and Concurrent Programs , 1997, Texts and Monographs in Computer Science.

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