Analysis of Message Passing Programs Using SMT-Solvers

  • Parosh Aziz Abdulla
  • Mohamed Faouzi Atig
  • Jonathan Cederberg
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8172)


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.

Unable to display preview. Download preview PDF.


  1. 1.
    Abdulla, P., Jonsson, B.: Undecidable verification problems for programs with unreliable channels. In: Shamir, E., Abiteboul, S. (eds.) ICALP 1994. LNCS, vol. 820, pp. 316–327. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  2. 2.
    Abdulla, P.A., Atig, M.F., Cederberg, J.: Alternator - Verifier of programs by bounding mode alternations,
  3. 3.
    Abdulla, P.A., Atig, M.F., Chen, Y.-F., Leonardsson, C., Rezine, A.: Counter-example guided fence insertion under TSO. In: Flanagan, C., König, B. (eds.) TACAS 2012. LNCS, vol. 7214, pp. 204–219. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  4. 4.
    Abdulla, P.A., Collomb-Annichini, A., Bouajjani, A., Jonsson, B.: Using forward reachability analysis for verification of lossy channel systems. Formal Methods in System Design 25(1), 39–65 (2004)CrossRefGoogle Scholar
  5. 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. 6.
    Barrett, C., et al.: The smt-lib standard: Version 2.0. Tech. rep. (2010)Google Scholar
  7. 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
  8. 8.
    Atig, M.F., Bouajjani, A., Touili, T.: On the reachability analysis of acyclic networks of pushdown systems. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 356–371. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Boigelot, B., Godefroid, P.: Symbolic verification of communication protocols with infinite state spaces using qdds. FMSD 14(3), 237–255 (1999)Google Scholar
  10. 10.
    Bouajjani, A., Emmi, M.: Bounded phase analysis of message-passing programs. In: Flanagan, C., König, B. (eds.) TACAS 2012. LNCS, vol. 7214, pp. 451–465. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 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
  12. 12.
    Bouajjani, A., Habermehl, P.: Symbolic reachability analysis of fifo-channel systems with nonregular sets of configurations. Theor. Comput. Sci. 221(1-2), 211–250 (1999)MathSciNetCrossRefGoogle Scholar
  13. 13.
    Brand, D., Zafiropulo, P.: On communicating finite-state machines. J. ACM 30(2), 323–342 (1983)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Cook, S.A.: The complexity of theorem-proving procedures. In: STOC, pp. 151–158. ACM (1971)Google Scholar
  15. 15.
    Geeraerts, G., Raskin, J.F., Begin, L.V.: Expand, enlarge and check: New algorithms for the coverability problem of wsts. J. Comput. Syst. Sci. 72(1), 180–203 (2006)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Hague, M., Lin, A.W.: Synchronisation- and reversal-bounded analysis of multithreaded programs with counters. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, pp. 260–276. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 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
  18. 18.
    Ibarra, O.H.: Reversal-bounded multicounter machines and their decision problems. J. ACM 25(1), 116–133 (1978)MathSciNetCrossRefGoogle Scholar
  19. 19.
    Marques Jr., A.P., Ravn, A., Srba, J., Vighio, S.: csv2uppaal,
  20. 20.
    Lipton, R.: The reachability problem requires exponential time. Technical Report TR 66 (1976)Google Scholar
  21. 21.
    de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  22. 22.
    Musuvathi, M., Qadeer, S.: Iterative context bounding for systematic testing of multithreaded programs. In: PLDI, pp. 446–455. ACM (2007)CrossRefGoogle Scholar
  23. 23.
    Newcomer, E., Robinson, I. (chairs): Web Services Business Activity Version 1.2 (2009),
  24. 24.
    Qadeer, S., Rehof, J.: Context-bounded model checking of concurrent software. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 93–107. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  25. 25.
    Rackoff, C.: The covering and boundedness problems for vector addition systems. Theor. Comput. Sci. 6, 223–231 (1978)MathSciNetCrossRefGoogle Scholar
  26. 26.
    Ravn, A.P., Srba, J., Vighio, S.: Modelling and verification of web services business activity protocol. In: Abdulla, P.A., Leino, K.R.M. (eds.) TACAS 2011. LNCS, vol. 6605, pp. 357–371. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  27. 27.
    Saint-Andre, P.: Jingle: Jabber does multimedia. IEEE MultiMedia 14(1), 90–94 (2007)CrossRefGoogle Scholar
  28. 28.
    Schnoebelen, P.: Verifying lossy channel systems has nonprimitive recursive complexity. Information Processing Letters 83(5), 251–261 (2002)MathSciNetCrossRefGoogle Scholar
  29. 29.
    Seidl, H., Schwentick, T., Muscholl, A., Habermehl, P.: Counting in trees for free. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 1136–1149. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  30. 30.
    The Erlang Programming Language,
  31. 31.
    The Scala Programming Language,
  32. 32.
    La Torre, S., Madhusudan, P., Parlato, G.: Context-bounded analysis of concurrent queue systems. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 299–314. Springer, Heidelberg (2008)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Parosh Aziz Abdulla
    • 1
  • Mohamed Faouzi Atig
    • 1
  • Jonathan Cederberg
    • 1
  1. 1.Uppsala UniversitySweden

Personalised recommendations