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

05/24/2019
by   Peizun Liu, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/15/2021

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

We consider the broad problem of analyzing safety properties of asynchro...
research
07/29/2023

Tailoring Stateless Model Checking for Event-Driven Multi-Threaded Programs

Event-driven multi-threaded programming is an important idiom for struct...
research
12/23/2017

Presburger-Definable Parameterized Typestates

Typestates are good at capturing dynamic states of a program as compared...
research
07/18/2019

On the Monniaux Problem in Abstract Interpretation

The Monniaux Problem in abstract interpretation asks, roughly speaking, ...
research
12/28/2020

Verifying C11-Style Weak Memory Libraries

Deductive verification of concurrent programs under weak memory has thus...
research
04/15/2018

Evolving Event-driven Programs with SignalGP

We present SignalGP, a new genetic programming (GP) technique designed t...
research
09/29/2022

Asynchronous Correspondences Between Hybrid Trajectory Semantics

We formalize the semantics of hybrid systems as sets of hybrid trajector...

Please sign up or login with your details

Forgot password? Click here to reset