Concurrency, Compositionality, and Correctness
Essays in Honor of Willem-Paul de Roever
Chapter and Conference Paper
We present a Python library for trace analysis named PyContract. PyContract is a shallow internal DSL, in contrast to many trace analysis tools that implement external or deep internal DSLs. The library has be...
Chapter and Conference Paper
In runtime verification, a monitor is used to return a Boolean verdict on the behavior of a system. We present several examples of the use of monitors to instead document system behavior. In doing so, we demonstr...
Chapter
Abstraction, in the context of model checking, is aimed at reducing the state space of the system by omitting details that are irrelevant to the property being verified. Many successful approaches to the “stat...
Article
Article
Book
Chapter
Chapter and Conference Paper
It is well known that the use of points-to information can substantially improve the accuracy of a static program analysis. Commonly used algorithms for computing points-to information are known to be sound on...
Chapter and Conference Paper
Software analysis and verification require abstraction of the program under consideration. As a result, many reported errors may in fact be false alarms. The Orion static analyzer reduces the ratio of false al...
Chapter and Conference Paper
We propose the use of tree automata as abstractions in the verification of branching time properties, and show several benefits. In this setting, soundness and completeness are trivial. It unifies the abundanc...
Chapter and Conference Paper
Automaton-based static program analysis has proved to be an effective tool for bug finding. Current tools generally re-analyze a program from scratch in response to a change in the code, which can result in mu...
Chapter and Conference Paper
We propose a new framework, based on predicate abstraction and model checking, for shape analysis of programs. Shape analysis is used to statically collect information—such as possible reachability and sharing—ab...
Article
We give a detailed description of SymmSpin, a prototype implementation of a symmetry-reduction package for the Spin model checker. It offers several heuristics for state-space reduction. A series of experiment...
Chapter and Conference Paper
This paper provides a brief description, including a bibliography, of the SPIN2002 tutorial on abstraction in model checking of software.
Chapter and Conference Paper
A conceptually simple and practically very useful form of data abstraction in model checking is variable hiding, which amounts to suppressing all information about a given set of variables. The abC tool automates...
Chapter and Conference Paper
We present four versions of a new heuristic for co** with the problem of finding (canonical) representatives of symmetry equivalence classes (the so-called orbit problem), in symmetry techniques for model check...
Chapter and Conference Paper
Regular languages have proved useful for the symbolic state exploration of infinite state systems. They can be used to represent infinite sets of system configurations; the transitional semantics of the system...
Chapter and Conference Paper
Temporal logic is a useful tool for specifying correctness properties of reactive programs. In particular, real-time temporal logics have been developed for expressing quantitative timing aspects of systems. A...
Chapter and Conference Paper
We give a detailed description of SymmSpin, a symmetry-reduction package for Spin. It offers four strategies for state-space reduction, based on the heuristic that we presented in [3], and a fifth mode for ref...
Chapter and Conference Paper
We present an attempt to use the model checker Spin as a verification engine for SDL, with special emphasis put on the verification of timing properties of SDL models. We have extended Spin with a front-end th...