Parallel algorithms for verification on large systems

The model-checking problem is the question whether a given system model satisfies a property. The property is usually given as formula of a temporal logic, and the system model as labelled transition system. However, the well-known state-space explosion effect is responsible for yielding transition systems of exponential size when compared to their description, and common sequential algorithms often are not capable to solve the model-checking problem with resources available on a single computer. In this thesis, we develop parallel and, in particular, distributed algorithms which exploit the combined resources of a network of commodity workstations to solve problem instances which are beyond the capabilities of today’s sequential algorithms. Specifically, our algorithms solve the model-checking problem for two important fragments of the μ-calculus which subsume many well-known temporal logics (CTL, LTL, CTL∗). We describe our algorithms based on a characterization of the problem at hand in terms of two-player games. The underlying data structure, the game graph, is colored according to the player who has a winning strategy from the current game configuration. Finally, the color of the initial configuration tells who is the winner of the game, and thus whether the transition system satisfies the property or not. Through experimentation, we found that our algorithms scale well, and are able to solve the largest problem instances of the VLTS benchmark suite. In a second part, we investigate ways to efficiently generate (low-level) transition systems suitable for many verification tools from compact high-level descriptions of the input model. We propose a virtual-machine based approach, which uses an intermediate format to break the translation from high-level to low-level representations of a model into two steps. This well-known compiler technique simplifies the translation and still is very fast in practice. We show the practicality of our approach through the example of a compiler for the PROMELA modelling language which targets our intermediate language—the virtualmachine’s byte-code. With a comparison of benchmarks, we show that our approach is competitive to state-of-the-art tools like SPIN in speed, with additional advantages, like easier reusability, and application as component in distributed model-checking algorithms like the ones we proposed earlier.

[1]  Felix C. Freiling,et al.  An offensive approach to teaching information security : 'Aachen summer school applied IT security , 2005 .

[2]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[3]  Julian C. Bradfield,et al.  The Modal µ-Calculus Alternation Hierarchy is Strict , 1998, Theor. Comput. Sci..

[4]  Pja De Villiers,et al.  ESML - A validation language for concurrent systems , 1992 .

[5]  Christos H. Papadimitriou,et al.  Computational complexity , 1993 .

[6]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[7]  Alan J. Hu,et al.  New Techniques for Efficient Verification with Implicitly Conjoined BDDs , 1994, 31st Design Automation Conference.

[8]  Seyed H. Roosta Parallel Processing and Parallel Algorithms , 2000, Springer New York.

[9]  Perdita Stevens,et al.  Functional Programming Languages for Verification Tools : A Comparison of ML and Haskell , .

[10]  Berthold Vöcking,et al.  A Counterexample to the Fully Mixed Nash Equilibrium Conjecture , 2005 .

[11]  Vasco T. Vasconcelos,et al.  A Virtual Machine for the TyCO Process Calculus , 1999 .

[12]  Thomas Noll,et al.  Algebraic Correctness Proofs for Compiling Recursive Function Definitions with Strictness Information , 2006, Acta Informatica.

[13]  Mads Dam CTL* and ECTL* as Fragments of the Modal mu-Calculus , 1994, Theor. Comput. Sci..

[14]  J. Klop,et al.  WST ’ 04 7 th International Workshop on Termination , 2004 .

[15]  Gerard J. Holzmann,et al.  Outline for an Operational-Semantics Definition of PROMELA , 1996 .

[16]  José Meseguer,et al.  Rewriting as a unified model of concurrency , 1990, OOPSLA/ECOOP '90.

[17]  Orna Grumberg,et al.  Static Analysis for State-Space Reductions Preserving Temporal Logics , 2004, Formal Methods Syst. Des..

[18]  David L. Dill,et al.  Parallelizing the Murϕ Verifier , 2001, Formal Methods Syst. Des..

[19]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[20]  Deepak D'Souza,et al.  Checking Consistency of SDL+MSC Specifications , 2003, SPIN.

[21]  Lubos Brim,et al.  Parallel breadth-first search LTL model-checking , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[22]  Edmund M. Clarke,et al.  State space reduction using partial order techniques , 1999, International Journal on Software Tools for Technology Transfer.

[23]  Rance Cleaveland,et al.  A Front-End Generator for Verification Tools , 1995, TACAS.

[24]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[25]  Berthold Vöcking,et al.  Adaptive routing with stale information , 2005, PODC '05.

[26]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[27]  Dexter Kozen,et al.  RESULTS ON THE PROPOSITIONAL’p-CALCULUS , 2001 .

[28]  Pierre Wolper,et al.  An automata-theoretic approach to branching-time model checking , 2000, JACM.

[29]  Lubos Brim,et al.  From Distributed Memory Cycle Detection to Parallel LTL Model Checking , 2005, FMICS.

[30]  Juan Carlos Augusto,et al.  Using SPIN and STeP to Verify Business Processes Specifications , 2003, Ershov Memorial Conference.

[31]  W. Visser,et al.  Second Generation of a Java Model Checker , 2000 .

[32]  Scott A. Smolka,et al.  On the parallel complexity of model checking in the modal mu-calculus , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[33]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[34]  Felix C. Freiling,et al.  Revisiting Failure Detection and Consensus in Omission Failure Environments , 2005, ICTAC.

[35]  Uwe Naumann,et al.  Tangent-Linear Models by Augmented LL-Parsers , 2006, ICCSA.

[36]  Berthold Vöcking,et al.  Decision Making Based on Approximate and Smoothed Pareto Curves , 2005, ISAAC.

[37]  David M. Nicol,et al.  Distributed State Space Generation of Discrete-State Stochastic Models , 1995, INFORMS J. Comput..

[38]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[39]  Igor Walukiewicz,et al.  On the Expressive Completeness of the Propositional mu-Calculus with Respect to Monadic Second Order Logic , 1996, CONCUR.

[40]  Frédéric Lang,et al.  NTIF: A General Symbolic Model for Communicating Sequential Processes with Data , 2002, FORTE.

[41]  Thierry Cachat The Power of One-Letter Rational Languages , 2001, Developments in Language Theory.

[42]  Jiří Barnat,et al.  Distributed Memory Ltl Model Checking , 2004 .

[43]  Gerard J. Holzmann,et al.  The Engineering of a Model Checker: The Gnu i-Protocol Case Study Revisited , 1999, SPIN.

[44]  Martin Leucker,et al.  UppDMC: A Distributed Model Checker for Fragments of the mu-Calculus , 2005, PDMC.

[45]  Jacobus Geldenhuys Efficiency issues in the design of a model checker , 1999 .

[46]  P. Rossmanith,et al.  A New Satisabilit y Algorithm With Applications To Max-Cut , 2005 .

[47]  Henry Muccini,et al.  Automated check of architectural models consistency using SPIN , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[48]  Assaf Schuster,et al.  Distributed Symbolic Model Checking for μ-Calculus , 2005, Formal Methods Syst. Des..

[49]  Matthew B. Dwyer,et al.  Bogor: an extensible and highly-modular software model checking framework , 2003, ESEC/FSE-11.

[50]  G. Gopalakrishnan,et al.  The Parallel PV Model-Checker , 2007 .

[51]  Yoshihito Toyama,et al.  4th International Workshop on Reduction Strategies in Rewriting and Programming , 2004 .

[52]  Radu Mateescu,et al.  Distributed local resolution of Boolean equation systems , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[53]  Perdita Stevens,et al.  Functional programming languages for verification tools: a comparison of Standard ML and Haskell , 2005, International Journal on Software Tools for Technology Transfer.

[54]  Mads Dam,et al.  CTL* and ECTL* as Fragments of the Modal µ-Calculus , 1992, CAAP.

[55]  Forrest Brewer,et al.  Implementation of an efficient parallel BDD package , 1996, DAC '96.

[56]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[57]  Rance Cleaveland,et al.  A linear-time model-checking algorithm for the alternation-free modal mu-calculus , 1993, Formal Methods Syst. Des..

[58]  Benedikt Bollig,et al.  Parallel Model Checking for the Alternation Free µ-Calculus , 2001, TACAS.

[59]  Chin-Laung Lei,et al.  Efficient Model Checking in Fragments of the Propositional Mu-Calculus (Extended Abstract) , 1986, LICS.

[60]  Lubos Brim,et al.  Distribution of Explicit-State LTL Model-Checking , 2003, FMICS.

[61]  Alexander Bell Distributed Evaluation of Stochastic Petri nets , 2004, MMB.

[62]  Hélène Kirchner,et al.  ELAN: A logical framework based on computational systems , 1996, WRLA.

[63]  Angelika Mader,et al.  Verification of modal properties using Boolean equation systems , 1997 .

[64]  Diego Latella,et al.  A Formal Specification and Validation of a Critical System in Presence of Byzantine Errors , 2000, TACAS.

[65]  Benedikt Bollig,et al.  Local Parallel Model Checking for the Alternation-Free µ-Calculus , 2002, SPIN.

[66]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[67]  M. Clavel,et al.  Principles of Maude , 1996, WRLA.

[68]  W. H. J. Feijen,et al.  Derivation of a termination detection algorithm for distributed computations , 1986 .

[69]  Document for a Standard Message-Passing Interface , 1993 .

[70]  Carsten Weise An incremental formal semantics for PROMELA , 2002 .

[71]  Martin Leucker,et al.  Parallel Model Checking for LTL, CTL*, and Lµ2 , 2003, PDMC@CAV.

[72]  Martin Leucker,et al.  Model Checking Games for the Alternation-Free µ-Calculus and Alternating Automata , 1999, LPAR.

[73]  Felix C. Freiling,et al.  Secure Multi-Party Computation with Security Modules , 2005, Sicherheit.

[74]  Franz Josef Och,et al.  Statistical machine translation: from single word models to alignment templates , 2002 .

[75]  Joseph Y. Halpern,et al.  “Sometimes” and “not never” revisited: on branching versus linear time temporal logic , 1986, JACM.

[76]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[77]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[78]  Felix C. Freiling,et al.  Optimal Randomized Fair Exchange with Secret Shared Coins , 2005, OPODIS.

[79]  Thomas Noll,et al.  Optimization of Straight-Line Code Revisited , 2006, Softwaretechnik-Trends.

[80]  H. James Hoover,et al.  Limits to Parallel Computation: P-Completeness Theory , 1995 .

[81]  Pavel Šimeček,et al.  DIVINE - The Distributed Verification Environment , 2005 .

[82]  Stavros Tripakis,et al.  Extending Promela and Spin for Real Time , 1996, TACAS.

[83]  Stefan Richter,et al.  A Faster Algorithm for the Steiner Tree Problem , 2006, STACS.

[84]  Jürgen Giesl,et al.  Proving and Disproving Termination of Higher-Order Functions , 2005, FroCoS.

[85]  Girish Bhat,et al.  Efficient model checking via the equational /spl mu/-calculus , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[86]  Thomas Noll,et al.  Rewriting Logic as a Framework for Generic Verification Tools , 2000, WRLA.

[87]  Friedemann Mattern,et al.  Algorithms for distributed termination detection , 1987, Distributed Computing.

[88]  Orna Grumberg,et al.  Parallel Model Checking for {LTL}, {CTL{$^{\ast}$}} and {$L_μ^2$} , 2003 .

[89]  Marius Bozga,et al.  IF-2.0: A Validation Environment for Component-Based Real-Time Systems , 2002, CAV.

[90]  Ofer Strichman,et al.  Bounded model checking , 2003, Adv. Comput..

[91]  Martin Leucker,et al.  DivSPIN - A SPIN compatible distributed model checker , 2005 .

[92]  Henrik Reif Andersen Model Checking and Boolean Graphs , 1992, ESOP.

[93]  Martin Grohe,et al.  An Existential Locality Theorem , 2001, CSL.

[94]  Christel Baier,et al.  PROBMELA: a modeling language for communicating probabilistic processes , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[95]  A. Prasad Sistla,et al.  On Model-Checking for Fragments of µ-Calculus , 1993, CAV.

[96]  Assaf Schuster,et al.  Distributed Symbolic Model Checking for µ-Calculus , 2001, CAV.

[97]  Assaf Schuster,et al.  Achieving Scalability in Parallel Reachability Analysis of Very Large Circuits , 2000, CAV.

[98]  Lawrence A. Crowl How to measure, present, and compare parallel performance , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[99]  Doron A. Peled,et al.  Ten Years of Partial Order Reduction , 1998, CAV.

[100]  R. Brayton,et al.  Reachability analysis using partitioned-ROBDDs , 1997, ICCAD 1997.

[101]  Niklaus Wirth,et al.  Pascal-S: A Subset and its Implementation , 1981, Pascal - The Language and its Implementation.

[102]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[103]  E. Allen Emerson,et al.  Model Checking and the Mu-calculus , 1996, Descriptive Complexity and Finite Models.

[104]  Gerard J. Holzmann,et al.  The SPIN Verification System , 1997 .

[105]  Zhenyu Qian,et al.  A Formal Specification of Java Virtual Machine Instructions for Objects, Methods and Subrountines , 1999, Formal Syntax and Semantics of Java.

[106]  Flavio Lerda,et al.  Distributed-Memory Model Checking with SPIN , 1999, SPIN.

[107]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.