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.
Similar content being viewed by others
Notes
\({\mathbbm {c}}\preceq {\mathbbm {c}}'\) iff \({\mathbbm {c}}(c)\le {\mathbbm {c}}'(c)\) for each \(c\in C\).
References
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)
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)
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)
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)
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)
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)
Abdulla, P.A., Haziza, F., Holík L.: Block me if you can! In: Static Analysis, pp. 1-17. Springer, Berlin (2014)
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)
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)
Dickson, L.E.: Finiteness of the odd perfect and primitive abundant numbers with \(n\) distinct prime factors. Am. J. Math. 35, 413–422 (1913)
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)
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)
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)
Finkel, A., Schnoebelen, P.: Well-structured transition systems everywhere!. Theor. Comput. Sci. 256(1–2), 63–92 (2001)
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)
Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-modular abstraction refinement. In: Computer Aided Verification, pp. 262-274. Springer, Berlin (2003)
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)
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)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
Ahmed Rezine is in part supported by the 12.04 CENIIT project.
Rights and permissions
About this article
Cite this article
Ganjei, Z., Rezine, A., Eles, P. et al. Counting dynamically synchronizing processes. Int J Softw Tools Technol Transfer 18, 517–534 (2016). https://doi.org/10.1007/s10009-015-0411-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-015-0411-0