Analysis of Message Passing Programs Using SMT-Solvers
We consider message passing programs where processes communicate asynchronously over unbounded channels. The reachability problem for such systems are either undecidable or have very high complexity. In order to achieve efficiency, we consider the phase-bounded reachability problem, where each process is allowed to perform a bounded number of phases during a run of the system. In a given phase, the process is allowed to perform send or receive transitions (but not both). We present a uniform framework where the channels are assigned different types of semantics such as lossy, stuttering, or unordered. We show that the framework allows a uniform translation of bounded-phase reachability for each of the above mentioned semantics to the satisfiability of quantifierfree Presburger formulas. This means that we can use the full power of modern smt-solvers for efficient analysis of our systems. Furthermore, we show that the translation implies that bounded-phase reachability is np-complete. Finally, we prove that the problem becomes undecidable if we allow perfect channels or push-down processes communicating through (stuttering) lossy channels. We report on the result of applying the prototype on a number of non-trivial examples.
Unable to display preview. Download preview PDF.
- 2.Abdulla, P.A., Atig, M.F., Cederberg, J.: Alternator - Verifier of programs by bounding mode alternations, https://github.com/it-apv/alternator
- 5.Abdulla, P.A., Jonsson, B.: Verifying programs with unreliable channels. In: Proc. LICS 1993, 8th IEEE Int. Symp. on Logic in Computer Science, pp. 160–170 (1993)Google Scholar
- 6.Barrett, C., et al.: The smt-lib standard: Version 2.0. Tech. rep. (2010)Google Scholar
- 7.Atig, M.F., Bouajjani, A., Burckhardt, S., Musuvathi, M.: On the verification problem for weak memory models. In: POPL, pp. 7–18. ACM (2010)Google Scholar
- 9.Boigelot, B., Godefroid, P.: Symbolic verification of communication protocols with infinite state spaces using qdds. FMSD 14(3), 237–255 (1999)Google Scholar
- 11.Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: POPL, pp. 62–73. ACM (2003)Google Scholar
- 14.Cook, S.A.: The complexity of theorem-proving procedures. In: STOC, pp. 151–158. ACM (1971)Google Scholar
- 17.Heußner, A., Leroux, J., Muscholl, A., Sutre, G.: Reachability analysis of communicating pushdown systems. Logical Methods in Computer Science 8(3) (2012)Google Scholar
- 19.Marques Jr., A.P., Ravn, A., Srba, J., Vighio, S.: csv2uppaal, https://github.com/csv2uppaal
- 20.Lipton, R.: The reachability problem requires exponential time. Technical Report TR 66 (1976)Google Scholar
- 23.Newcomer, E., Robinson, I. (chairs): Web Services Business Activity Version 1.2 (2009), http://docs.oasis-open.org/ws-tx/wstx-wsba-1.2-spec-os.pdf
- 30.The Erlang Programming Language, http://erlang.org
- 31.The Scala Programming Language, http://scala-lang.org