The Automatic Detection of Token Structures and Invariants Using SAT Checking

Many distributed systems rely on token structures for their correct operation. Often, these structures make sure that a fixed number of tokens exists at all times, or perhaps that tokens cannot be completely eliminated, to prevent systems from reaching undesired states. In this paper we show how a SAT checker can be used to automatically detect token and similar invariants in distributed systems, and how these invariants can improve the precision of a deadlock-checking framework that is based on local analysis. We demonstrate by a series of practical experiments that this new framework is as efficient as similar incomplete techniques for deadlock-freedom analysis, while handling a different class of systems.

[1]  Augusto Sampaio,et al.  A Refinement Based Strategy for Local Deadlock Analysis of Networks of CSP Processes , 2014, FM.

[2]  A. W. Roscoe,et al.  FDR3 - A Modern Refinement Checker for CSP , 2014, TACAS.

[3]  A. W. Roscoe Understanding Concurrent Systems , 2010, Texts in Computer Science.

[4]  Didier Lime,et al.  Lazy Reachability Analysis in Distributed Systems , 2016, CONCUR.

[5]  Gilles Audemard,et al.  Predicting Learnt Clauses Quality in Modern SAT Solvers , 2009, IJCAI.

[6]  Yassine Lakhnech,et al.  Automatic Generation of Invariants , 1999, Formal Methods Syst. Des..

[7]  Niklas Sörensson,et al.  Translating Pseudo-Boolean Constraints into SAT , 2006, J. Satisf. Boolean Model. Comput..

[8]  Joseph Sifakis,et al.  An Abstract Framework for Deadlock Prevention in BIP , 2013, FMOODS/FORTE.

[9]  J. M. R. Martin,et al.  An Efficient Technique for Deadlock Analysis of Large Scale Process Networks , 1997, FME.

[10]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[11]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[12]  Mila E. Majster-Cederbaum,et al.  Analyzing Component-Based Systems on the Basis of Architectural Constraints , 2011, FSEN.

[13]  Hana Chockler,et al.  Efficiently Verifiable Conditions for Deadlock-Freedom of Large Concurrent Programs , 2005, VMCAI.

[14]  A. W. Roscoe,et al.  Practical Partial Order Reduction for CSP , 2015, NFM.

[15]  Michael Goldsmith,et al.  Hierarchical Compression for Model-Checking CSP or How to Check 1020 Dining Philosophers for Deadlock , 1995, TACAS.

[16]  Augusto Sampaio,et al.  Rigorous development of component-based systems using component metadata and patterns , 2016, Formal Aspects of Computing.

[17]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[18]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[19]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[20]  Tilak Agerwala,et al.  A Synthesis Rule for Concurrent Systems , 1978, 15th Design Automation Conference.

[21]  Jeremy Malcolm Randolph Martin,et al.  The design and construction of deadlock-free concurrent systems , 1996 .

[22]  A. W. Roscoe,et al.  Tighter Reachability Criteria for Deadlock-Freedom Analysis , 2016, FM.

[23]  Augusto Sampaio,et al.  Leadership Election: An Industrial SoS Application of Compositional Deadlock Verification , 2014, NASA Formal Methods.

[24]  FrancezNissim,et al.  A Proof System for Communicating Sequential Processes , 1980 .

[25]  A. W. Roscoe,et al.  Efficient Deadlock-Freedom Checking Using Local Analysis and SAT Solving , 2016, IFM.