MPass: An Efficient Tool for the Analysis of Message-Passing Programs
MPass is a freely available open source tool for the verification of message passing programs communicating in an asynchronous manner over unbounded channels. The verification task is non-trivial as it involves exploring state spaces of arbitrary or even infinite sizes. Even for programs that only manipulate finite range variables, the size of the channels could grow unboundedly, and hence the state space that need to be explored could be of infinite size. MPass addresses the bounded-phase reachability problem, where each process is allowed to perform a bounded number of phases during any run of the system. In each phase, a process can perform either send transitions or receive transitions (but not both). However, this does not bound the number of context switches between processes or the size of the channels but just the number of alternations between receive and send transitions of each process. Currently, MPass can decide bounded-phase reachability problem for three types of channel semantics, namely lossy, stuttering and unordered channels. Messages inside these channels can be lost, duplicated and re-arranged, respectively. MPass efficiently and uniformly reduces the bounded-phase reachability problem into the satisfiability of quantifier-free Presburger formula for each of the above mentioned semantics.
- 1.Abdulla, P., Jonsson, B.: Verifying programs with unreliable channels. In: LICS (1993)Google Scholar
- 2.Abdulla, P.A., Atig, M.F., Cederberg, J.: https://github.com/it-apv/alternator
- 4.Abdulla, P.A., Atig, M.F., Modi, S., Saini, G.: https://github.com/vigenere92/MPass
- 7.Marques Jr., A.P., Ravn, A., Srba, J., Vighio, S.: https://github.com/csv2uppaal
- 9.Lipton, R.: The reachability problem requires exponential time. Technical report TR 66 (1976)Google Scholar
- 10.Marques, A.P., Ravn, A.P., Srba, J., Vighio, S.: Tool supported analysis of web services protocols. In: TTCS, pp. 50–64. University of Oslo (2011)Google Scholar