Counter Abstractions in Model Checking of Distributed Broadcast Algorithms: Some Case Studies

The automated, formal verification of distributed algorithms is a crucial, although challenging, task. In this paper, we study the properties of distributed algorithms solving the reliable broadcast problem in various failure models. We investigate the suitability of a direct Satisfiability Modulo Theories (SMT) approach to model these algorithms in order to validate safety properties. In a previous work, we modeled distributed algorithms using the declarative framework of array-based systems. In this work, we try also a simulation of array-based systems via counter systems. In fact, this simulation does not indeed introduce spurious runs violating the safety properties we want to formally verify in a significant class of problems. We report the related performance evaluations of some SMT-based modelcheckers (essentially, our tool MCMT and tools like μZ, nuXmv). The experimental results are interesting because they show on one hand that state-of-the-art SMT-based technology can handle problems arising in fault-tolerant environments, and on the other hand that different heuristics and search strategies (e.g. acceleration versus abstraction) can have practical impact.

[1]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[2]  Helmut Veith,et al.  Towards Modeling and Model Checking Fault-Tolerant Distributed Algorithms , 2013, SPIN.

[3]  Elena Pagani,et al.  Counting Constraints in Flat Array Fragments , 2016, IJCAR.

[4]  Helmut Veith,et al.  SMT and POR Beat Counter Abstraction: Parameterized Model Checking of Threshold-Based Distributed Algorithms , 2015, CAV.

[5]  Alberto Griggio,et al.  The MathSAT5 SMT Solver , 2013, TACAS.

[6]  Silvio Ghilardi,et al.  MCMT: A Model Checker Modulo Theories , 2010, IJCAR.

[7]  Marco Roveri,et al.  The nuXmv Symbolic Model Checker , 2014, CAV.

[8]  Sylvain Conchon,et al.  Cubicle: A Parallel SMT-Based Model Checker for Parameterized Systems - Tool Paper , 2012, CAV.

[9]  Nikolaj Bjørner,et al.  μZ- An Efficient Engine for Fixed Points with Constraints , 2011, CAV.

[10]  Stephan Merz,et al.  Model Checking , 2000 .

[11]  Sam Toueg,et al.  Time and Message Efficient Reliable Broadcasts , 1990, WDAG.

[12]  Helmut Veith,et al.  Parameterized model checking of fault-tolerant distributed algorithms by abstraction , 2013, 2013 Formal Methods in Computer-Aided Design.

[13]  Jérôme Leroux,et al.  FAST Extended Release , 2006, CAV.

[14]  Thomas A. Henzinger,et al.  A Logic-Based Framework for Verifying Consensus Algorithms , 2014, VMCAI.

[15]  Alain Finkel,et al.  On the verification of broadcast protocols , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[16]  Sam Toueg,et al.  Simulating authenticated broadcasts to derive simple fault-tolerant algorithms , 1987, Distributed Computing.

[17]  Leslie Lamport,et al.  Reaching Agreement in the Presence of Faults , 1980, JACM.

[18]  Nikolaj Bjørner,et al.  Cardinalities and universal quantifiers for verifying parameterized systems , 2016, PLDI.

[19]  Giorgio Delzanno,et al.  Constraint-Based Analysis of Broadcast Protocols , 1999, CSL.

[20]  Elena Pagani,et al.  Universal Guards, Relativization of Quantifiers, and Failure Models in Model Checking Modulo Theories , 2012, J. Satisf. Boolean Model. Comput..

[21]  Helmut Veith,et al.  On the completeness of bounded model checking for threshold-based distributed algorithms: Reachability , 2014, Inf. Comput..

[22]  Giorgio Delzanno,et al.  Constraint-Based Verification of Parameterized Cache Coherence Protocols , 2003, Formal Methods Syst. Des..

[23]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[24]  Silvio Ghilardi,et al.  Towards SMT Model Checking of Array-Based Systems , 2008, IJCAR.