zeiga33_sttt2016

Counting Dynamically Synchronizing Processes

 Zeinab Ganjei   Ahmed Rezine
 Petru Eles   Zebo Peng

International Journal on Software Tools for Technology Transfer

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 {\em 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.

[GREP16] Zeinab Ganjei, Ahmed Rezine, Petru Eles, Zebo Peng, "Counting Dynamically Synchronizing Processes", International Journal on Software Tools for Technology Transfer
( ! ) perl script by Giovanni Squillero with modifications from Gert Jervan   (v3.1, p5.2, September-2002-)