Advertisement

Counting dynamically synchronizing processes

  • Zeinab Ganjei
  • Ahmed Rezine
  • Petru Eles
  • Zebo Peng
PV 2014

Abstract

We address the problem of automatically establishing correctness for programs generating an arbitrary number of concurrent processes and manipulating variables ranging over an infinite domain. The programs we consider can make use of the shared variables to count and synchronize the spawned processes. This allows them to implement intricate synchronization mechanisms, such as barriers. Automatically verifying correctness, and deadlock freedom, of such programs is beyond the capabilities of current techniques. For this purpose, we make use of counting predicates that mix counters referring to the number of processes satisfying certain properties and variables directly manipulated by the concurrent processes. We then combine existing works on counter, predicate, and constrained monotonic abstraction and build a nested counter example based refinement scheme for establishing correctness (expressed as non-reachability of configurations satisfying counting predicates formulas). We have implemented a tool (Pacman, for predicated constrained monotonic abstraction) and used it to perform parameterized verification on several programs whose correctness crucially depends on precisely capturing the number of processes synchronizing using shared variables.

Keywords

Parameterized verification Counting predicate Barrier synchronization Deadlock freedom Multithreaded programs Counter abstraction Predicate abstraction Constrained monotonic abstraction 

References

  1. 1.
    Abdulla, P., Annichini, A., Bensalem, S., Bouajjani, A., Habermehl, P., Lakhnech, Y.: Verification of infinite-state systems by combining abstraction and reachability analysis. In: Halbwachs, N., Peled, D. (eds.) Computer Aided Verification, Volume of 1633 Lecture Notes in Computer Science, pp. 146-159. Springer, Berlin (1999)Google Scholar
  2. 2.
    Abdulla, P., Haziza, F., Holk, L.: All for the price of few. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) Verification, Model Checking, and Abstract Interpretation, Volume of 7737 Lecture Notes in Computer Science, pp. 476-495. Springer, Berlin (2013)Google Scholar
  3. 3.
    Abdulla, P.A., Čerāns, K., Jonsson, B., Tsay, Y.-K.: General decidability theorems for infinite-state systems. In: Proceedings of the LICS ’96, 11th IEEE International Symposium on Logic in Computer Science, pp. 313-321 (1996)Google Scholar
  4. 4.
    Abdulla, P.A., Čerāns, K., Jonsson, B., Tsay, Y.-K.: Algorithmic analysis of programs with well quasi-ordered domains. Inf. Comput. 160, 109–127 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Abdulla, P.A., Chen, Y.-F., Delzanno, G., Haziza, F., Hong, C.-D., Rezine, A.: Constrained monotonic abstraction: a cegar for parameterized verification. In: Proceedings of the CONCUR 2010, 21th International Conference on Concurrency Theory, pp. 86-101 (2010)Google Scholar
  6. 6.
    Abdulla, P.A., Delzanno, G., Henda, N.B., Rezine, A.: Regular model checking without transducers (on efficient verification of parameterized systems). In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 721-736. Springer, Berlin (2007)Google Scholar
  7. 7.
    Abdulla, P.A., Haziza, F., Holík L.: Block me if you can! In: Static Analysis, pp. 1-17. Springer, Berlin (2014)Google Scholar
  8. 8.
    Bansal, K., Koskinen, E., Wies, T., Zufferey, D.: Structural counter abstraction. In: Piterman, N., Smolka, S. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, Volume of 7795 Lecture Notes in Computer Science, pp. 62-77. Springer, Berlin (2013)Google Scholar
  9. 9.
    Basler, G., Hague, M., Kroening, D., Ong, C.-H., Wahl, T., Zhao, H.: BOOM: Taking Boolean program model checking one step further. In: Esparza, J., Majumdar, R. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, Volume of 6015 Lecture Notes in Computer Science, pp. 145–149. Springer, Berlin (2010)Google Scholar
  10. 10.
    Dickson, L.E.: Finiteness of the odd perfect and primitive abundant numbers with \(n\) distinct prime factors. Am. J. Math. 35, 413–422 (1913)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Donaldson, A., Kaiser, A., Kroening, D., Wahl, T.: Symmetry-aware predicate abstraction for shared-variable concurrent programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) Computer Aided Verification, Volume of 6806 Lecture Notes in Computer Science, pp. 356-371. Springer, Berlin (2011)Google Scholar
  12. 12.
    Esparza, J., Ledesma-Garza, R., Majumdar, R., Meyer, P., Niksic F.: An SMT-based approach to coverability analysis. In: Computer Aided Verification, pp. 603-619. Springer, Berlin (2014)Google Scholar
  13. 13.
    Farzan, A., Kincaid, Z., Podelski, A.: Proofs that count. In: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL ’14, pp. 151-164. ACM, New York, NY (2014)Google Scholar
  14. 14.
    Finkel, A., Schnoebelen, P.: Well-structured transition systems everywhere!. Theor. Comput. Sci. 256(1–2), 63–92 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Ganjei, Z., Rezine, A., Eles, P., Peng, Z.: Abstracting and counting synchronizing processes. Verification, Model Checking, and Abstract Interpretation, pp. 227-244. Springer, Berlin (2014)Google Scholar
  16. 16.
    Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-modular abstraction refinement. In: Computer Aided Verification, pp. 262-274. Springer, Berlin (2003)Google Scholar
  17. 17.
    Kaiser, A., Kroening, D., Wahl, T.: Dynamic cutoff detection in parameterized concurrent programs. In: Proceedings of CAV, Volume 6174 of LNCS, pp. 654-659. Springer, Berlin (2010)Google Scholar
  18. 18.
    Kaiser, A., Kroening, D., Wahl, T.: Lost in abstraction: monotonicity in multi-threaded programs. In: Baldan, P., Gorla, D. (eds.) CONCUR 2014 Concurrency Theory, Volume of 8704 Lecture Notes in Computer Science, pp. 141-155. Springer, Berlin (2014)Google Scholar
  19. 19.
    Zuck, L., Pnueli, A.: Model checking and abstraction to the aid of parameterized systems (a survey). Comput. Lang. Syst. Struct. 30(34), 139–169 (2004)zbMATHGoogle Scholar
  20. 20.
    Zuck, L., Pnueli, A.: Model checking and abstraction to the aid of parameterized systems (a survey). Comput. Lang. Syst. Struct. 30(34), 139–169 (2004)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Zeinab Ganjei
    • 1
  • Ahmed Rezine
    • 1
  • Petru Eles
    • 1
  • Zebo Peng
    • 1
  1. 1.Linköping UniversityLinköpingSweden

Personalised recommendations