Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers
Peizun Liu,Thomas Wahl,Akash Lal +2 more
- 15 Jul 2019
- pp 386-404
TL;DR: It is shown 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 more
Abstract: 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 more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers
Peizun Liu,Thomas Wahl,Akash Lal +2 more
- 15 Jul 2019
TL;DR: It is shown 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.
Interprocedural Context-Unbounded Program Analysis Using Observation Sequences
TL;DR: A classical result by Ramalingam about synchronization-sensitive interprocedural program analysis implies that reachability for concurrent threads running recursive procedures is undecidable.
2
Automata-Based Software Engineering with Event-B
TL;DR: A new automata-based programming language built by extending the Event-B specification language is proposed, and the effectiveness of event-B verification methods is confirmed by finding three nontrivial bugs in the solution.
2
•Posted Content
Delay-Bounded Scheduling Without Delay! (Extended Technical Report).
Andrew Johnson,Thomas Wahl +1 more
TL;DR: In this article, the authors present a technique to lift the delay bound for finite-domain variable programs, thus adding to the efficiency of bug detection the ability to prove safety of programs under arbitrary thread interleavings.
Psym: Efficient Symbolic Exploration of Distributed Systems
TL;DR: The symbolic explorer as discussed by the authors leverages a fine-grained, canonical representation of distributed system configurations (states) to identify opportunities for avoiding redundant interleavings on-the-fly.
References
Dynamic cutoff detection in parameterized concurrent programs
Alexander Kaiser,Daniel Kroening,Thomas Wahl +2 more
- 15 Jul 2010
TL;DR: This paper presents an alternative method based on a thread-state cutoff: a number n of threads that suffice to generate all reachable thread states and demonstrates the efficiency of the approach on Petri net encodings of communication protocols, as well as on non-recursive Boolean programs run by arbitrarily many parallel threads.
Zing: A Model Checker for Concurrent Software
Tony Andrews,Shaz Qadeer,Sriram K. Rajamani,Jakob Rehof,Yichen Xie +4 more
- 13 Jul 2004
TL;DR: The zing project as discussed by the authors is an effort to build a flexible and scalable model checking infrastructure for concurrent software, which is divided into four components: (1) a modeling language for expressing concurrent models of software systems, (2) a compiler for translating a zing model into an executable representation of its transition relation, (3) a model checker for exploring the state space of the Zing model, and (4) model generators that automatically extract zing models from programs written in common programming languages.
Bounded phase analysis of message-passing programs
Ahmed Bouajjani,Michael Emmi +1 more
- 24 Mar 2012
TL;DR: A novel technique for bounded analysis of asynchronous message-passing programs with ordered message queues that avoids explicitly representing message queues and gives rise to a simple and efficient program analysis by reduction to sequential programs.
Analyzing recursive programs using a fixed-point calculus
Salvatore La Torre,Madhusudan Parthasarathy,Gennaro Parlato +2 more
- 15 Jun 2009
TL;DR: It is shown that recursive programs where variables range over finite domains can be effectively and efficiently analyzed by describing the analysis algorithm using a formula in a fixed-point calculus.
Bounded Asynchrony: Concurrency for Modeling Cell-Cell Interactions
Jasmin Fisher,Thomas A. Henzinger,Maria Mateescu,Nir Piterman +3 more
- 04 Jun 2008
TL;DR: It is shown that distributed real-time behavior can lead to component interactions that are observationally equivalent to bounded asynchrony; this provides a possible mechanistic explanation for the phenomena observed during cell fate specification.
Related Papers (5)
Lakhdar Akroun,Gwen Salaün,Lina Ye +2 more
- 07 Apr 2016
Parosh Aziz Abdulla,Bengt Jonsson +1 more
- 11 Jul 1994
Mohamed Faouzi Atig,Tayssir Touili +1 more
- 07 Jul 2009