fa58d5114b52e8e2.tex
1: \begin{abstract}
2:   We address the problem of analyzing asynchronous event-driven programs,
3:   in which concurrent agents communicate via un\-bound\-ed message
4:   queues. The safety verification problem for such programs is
5:   undecidable. We present in this paper a technique that
6:   combines \emph{queue-bounded exploration} with a \emph{convergence test}:
7:   if the sequence of certain abstractions of the reachable states, for
8:   increasing queue bounds $k$, converges, we can prove any property of the
9:   program that is preserved by the abstraction. If the abstract state space
10:   is finite, convergence is \emph{guaranteed}; the challenge is to catch
11:   the point $\convergencePoint$ where it happens. We further demonstrate
12:   how simple invariants formulated over the \emph{concrete} domain can be
13:   used to eliminate spurious \emph{abstract} states, which otherwise
14:   prevent the sequence from converging. We have implemented our technique
15:   for the \pfeature P programming language for event-driven programs. We
16:   show experimentally that the sequence of abstractions often converges
17:   fully automatically, in hard cases with minimal designer support in the
18:   form of sequentially provable invariants, and that this happens for a
19:   value of $\convergencePoint$ small enough to allow the method to succeed
20:   in practice.
21: \end{abstract}
22: