Stop It, and Be Stubborn!

A system is always may-terminating, if and only if from every reachable state, a terminal state is reachable. This publication argues that it is beneficial for both catching non-progress errors and stubborn, ample, and persistent set state space reduction to try to make verification models always may-terminating. An incorrect mutual exclusion algorithm is used as an example. The error does not manifest itself, unless the first action of the customers is modelled differently from other actions. An appropriate method is to add an alternative first action that models the customer stopping for good. This method typically makes the model always may-terminating. If the model is always may-terminating, then the basic strong stubborn set method preserves safety and some progress properties without any additional condition for solving the ignoring problem. Furthermore, whether the model is always may-terminating can be checked efficiently from the reduced state space.

[1]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[2]  Lubos Brim,et al.  On Combining Partial Order Reduction with Fairness Assumptions , 2006, FMICS/PDMC.

[3]  Sami Evangelista,et al.  Solving the ignoring problem for partial order reduction , 2010, International Journal on Software Tools for Technology Transfer.

[4]  Wojciech Penczek,et al.  Stuttering-Insensitive Automata for On-the-fly Detection of Livelock Properties , 2002, Electron. Notes Theor. Comput. Sci..

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

[6]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[7]  Manuel Núñez,et al.  Formal Methods for Industrial Critical Systems , 2015, Lecture Notes in Computer Science.

[8]  Thomas H. Bredt The mutual exclusion problem , 1970 .

[9]  Martti Tienari,et al.  Compositional failure-based semantic models for Basic LOTOS , 2005, Formal Aspects of Computing.

[10]  Wolfgang Reisig,et al.  Lectures on Petri Nets I: Basic Models , 1996, Lecture Notes in Computer Science.

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

[12]  Reino Kurki-Suonio,et al.  On computing the transitive closure of a relation , 2004, Acta Informatica.

[13]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[14]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[15]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[16]  Antti Valmari,et al.  The State Explosion Problem , 1996, Petri Nets.

[17]  Antti Valmari,et al.  Visual Verification of Safety and Liveness , 1996, FME.

[18]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.