Progress Checking for Dummies
Verification of progress properties is both conceptually and technically significantly more difficult than verification of safety and deadlock properties. In this study we focus on the conceptual side. We make a simple modification to a well-known model to demonstrate that it passes progress verification although the resulting model is intuitively badly incorrect. Then we point out that the error can be caught easily by adding a termination branch to the system. We compare the use of termination branches to the established method of addressing the same need, that is, weak fairness. Then we discuss another problem that may cause failure of catching progress errors even with weak fairness. Finally we point out an alternative notion of progress that needs no explicit fairness assumptions. Our ideas are especially well-suited for newcomers in model checking, and work well with stubborn set methods.
KeywordsUsability of verification methods Progress Fairness Fair testing
We thank the anonymous reviewers for their comments.
- 1.Dyseryn, V., van Glabbeek, R.J., Höfner, P.: Analysing mutual exclusion using process algebra with signals. In: Peters, K., Tini, S. (eds.) Proceedings of EXPRESS/SOS 2017, Berlin, Germany, 4 September 2017. EPTCS, vol. 255, pp. 18–34 (2017)Google Scholar
- 6.Reeves, G.E.: What really happened on Mars? (1997). https://www.cs.unc.edu/%7eanderson/teach/comp790/papers/mars_pathfinder_long_version.html. Accessed 7 May 2018
- 9.Valmari, A.: A chaos-free failures divergences semantics with applications to verification. In: Davies, J., Roscoe, B., Woodcock, J. (eds.) Millennial Perspectives in Computer Science: Proceedings of the 1999 Oxford-Microsoft Symposium in Honour of Sir Tony Hoare, Cornerstones of Computing, pp. 365–382. Palgrave (2000)Google Scholar