DeepAI AI Chat
Log In Sign Up

Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers (Extended Manuscript)

by   Peizun Liu, et al.

We address the problem of analyzing asynchronous event-driven programs, in which concurrent agents communicate via unbounded message queues. The safety verification problem for such programs is undecidable. We present in this paper a technique that combines queue-bounded exploration with a convergence test: if the sequence of certain abstractions of the reachable states, for increasing queue bounds k, converges, we can prove any property of the program that is preserved by the abstraction. If the abstract state space is finite, convergence is guaranteed; the challenge is to catch the point k_max where it happens. We further demonstrate how simple invariants formulated over the concrete domain can be used to eliminate spurious abstract states, which otherwise prevent the sequence from converging. We have implemented our technique for the P programming language for event-driven programs. We show experimentally that the sequence of abstractions often converges fully automatically, in hard cases with minimal designer support in the form of sequentially provable invariants, and that this happens for a value of k_max small enough to allow the method to succeed in practice.


page 1

page 2

page 3

page 4


Delay-Bounded Scheduling Without Delay! (Extended Technical Report)

We consider the broad problem of analyzing safety properties of asynchro...

Presburger-Definable Parameterized Typestates

Typestates are good at capturing dynamic states of a program as compared...

On the Monniaux Problem in Abstract Interpretation

The Monniaux Problem in abstract interpretation asks, roughly speaking, ...

A Semantics Comparison Workbench for a Concurrent, Asynchronous, Distributed Programming Language

A number of high-level languages and libraries have been proposed that o...

Verifying C11-Style Weak Memory Libraries

Deductive verification of concurrent programs under weak memory has thus...

Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning

Analyzing and verifying heap-manipulating programs automatically is chal...

Lattice Linear Problems vs Algorithms

Modelling problems using predicates that induce a partial order among gl...