Structural Counter Abstraction

Depth-Bounded Systems form an expressive class of well-structured transition systems. They can model a wide range of concurrent infinite-state systems including those with dynamic thread creation, dynamically changing communication topology, and complex shared heap structures. We present the first method to automatically prove fair termination of depth-bounded systems. Our method uses a numerical abstraction of the system, which we obtain by systematically augmenting an over-approximation of the system's reachable states with a finite set of counters. This numerical abstraction can be analyzed with existing termination provers. What makes our approach unique is the way in which it exploits the well-structuredness of the analyzed system. We have implemented our work in a prototype tool and used it to automatically prove liveness properties of complex concurrent systems, including nonblocking algorithms such as Treiber's stack and several distributed processes. Many of these examples are beyond the scope of termination analyses that are based on traditional counter abstractions.

[1]  Barbara König,et al.  Applying the Graph Minor Theorem to the Verification of Graph Transformation Systems , 2008, CAV.

[2]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

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

[4]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[5]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[6]  Heino Carstensen,et al.  Decidability Questions for Fairness in Petri Nets , 1987, STACS.

[7]  Parosh Aziz Abdulla,et al.  General decidability theorems for infinite-state systems , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[8]  R. Meyer On Boundedness in Depth in the π-Calculus ⋆ , 2008 .

[9]  Andreas Podelski,et al.  Termination proofs for systems code , 2006, PLDI '06.

[10]  Thomas A. Henzinger,et al.  Ideal Abstractions for Well-Structured Transition Systems , 2012, VMCAI.

[11]  Rupak Majumdar,et al.  Dynamic Package Interfaces , 2014, FASE.

[12]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[13]  Philippe Schnoebelen,et al.  Well-structured transition systems everywhere! , 2001, Theor. Comput. Sci..

[14]  Roberto Gorrieri,et al.  On the Relationship between π-Calculus and Finite Place/Transition Petri Nets , 2009, CONCUR.

[15]  Richard Mayr Undecidable problems in unreliable computations , 2003, Theor. Comput. Sci..

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

[17]  Giancarlo Mauri,et al.  Fifth IFIP International Conference On Theoretical Computer Science - TCS 2008, IFIP 20th World Computer Congress, TC 1, Foundations of Computer Science, September 7-10, 2008, Milano, Italy , 2008, IFIP TCS.

[18]  Philipp Haller,et al.  Actors in Scala , 2012 .

[19]  Andreas Podelski,et al.  ARMC: The Logical Choice for Software Model Checking with Abstraction Refinement , 2007, PADL.

[20]  Peter W. O'Hearn,et al.  Automatic Termination Proofs for Programs with Shape-Shifting Heaps , 2006, CAV.

[21]  Amir Pnueli,et al.  Liveness with (0, 1, infty)-Counter Abstraction , 2002, CAV.

[22]  Philipp Rümmer,et al.  A Constraint Sequent Calculus for First-Order Logic with Linear Integer Arithmetic , 2008, LPAR.

[23]  Daniel Kroening,et al.  Symbolic Counter Abstraction for Concurrent Software , 2009, CAV.

[24]  Philippe Schnoebelen,et al.  Reset Nets Between Decidability and Undecidability , 1998, ICALP.

[25]  Giorgio Delzanno,et al.  Towards the Automated Verification of Multithreaded Java Programs , 2002, TACAS.

[26]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[27]  Thomas A. Henzinger,et al.  Forward Analysis of Depth-Bounded Processes , 2010, FoSSaCS.

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

[29]  Sumit Gulwani,et al.  A combination framework for tracking partition sizes , 2009, POPL '09.

[30]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[31]  Ian Stark,et al.  Free-Algebra Models for the pi-Calculus , 2005, FoSSaCS.

[32]  Mario Bravetti,et al.  CONCUR 2009 - Concurrency Theory, 20th International Conference, CONCUR 2009, Bologna, Italy, September 1-4, 2009. Proceedings , 2009, CONCUR.

[33]  Andreas Podelski,et al.  Heap Assumptions on Demand , 2008, CAV.