Skip to main content
Log in

Counting dynamically synchronizing processes

  • PV 2014
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. \({\mathbbm {c}}\preceq {\mathbbm {c}}'\) iff \({\mathbbm {c}}(c)\le {\mathbbm {c}}'(c)\) for each \(c\in C\).

  2. https://gitlab.ida.liu.se/apv/pacman.

References

  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)

  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)

  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)

  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)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  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)

  7. Abdulla, P.A., Haziza, F., Holík L.: Block me if you can! In: Static Analysis, pp. 1-17. Springer, Berlin (2014)

  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)

  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. Dickson, L.E.: Finiteness of the odd perfect and primitive abundant numbers with \(n\) distinct prime factors. Am. J. Math. 35, 413–422 (1913)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  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)

  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)

  14. Finkel, A., Schnoebelen, P.: Well-structured transition systems everywhere!. Theor. Comput. Sci. 256(1–2), 63–92 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  16. Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-modular abstraction refinement. In: Computer Aided Verification, pp. 262-274. Springer, Berlin (2003)

  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)

  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)

  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)

    MATH  Google Scholar 

  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)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ahmed Rezine.

Additional information

Ahmed Rezine is in part supported by the 12.04 CENIIT project.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-015-0411-0

Keywords

Navigation