Reactive systems are computing systems which are interactive, such as real-time systems, operating systems, concurrent systems, control systems, etc. They are among the most difficult computing systems to program....
A temporal language and system are presented which are based on branching time structure. By the introduction of symmetrically dual sets of temporal operators, it is possible to discuss properties which hold either along one path or along all paths. Consequently it is possible to express in this system all the properties that were previously expressible in… (More)
Motivated by applications to program verification, we study a decision procedure for satisfiability in an expressive fragment of a theory of arrays, which is parameterized by the theories of the array elements. The decision procedure reduces satisfiability of a formula of the fragment to satisfiability of an equisatisfiable quantifier-free formula in the… (More)
A common tool for proving the termination of programs is the <italic>well-founded set</italic>, a set ordered in such a way as to admit no infinite descending sequences. The basic approach is to find a <italic>termination function</italic> that maps the values of the program variables into some well-founded set, such that the value of the termination… (More)
Real-time systems operate in \real," continuous time and state changes may occur at any real-numbered time point. Yet many v eriication methods are based on the assumption that states are observed at integer time points only. What can we conclude if a real-time system has been shown \correct" for integral observations? Integer time veriication techniques… (More)
We present a method for generating linear invariants for large systems. The method performs forward propagation in an abstract domain consisting of arbitrary polyhedra of a predefined fixed shape. The basic operations on the domain like abstraction, intersection, join and inclusion tests are all posed as linear optimization queries, which can be solved… (More)
This document contains exercises of two types: those that we failed to think of before publication; and those that address technical errors in the book. 1. (⋆ Divides constraints) Prove the important direction of Theorems 7.13 and 7.15: that solutions to the original divides constraints are reported as solutions. 1. (Theories with Equality) In Chapter 10,… (More)
In this paper, Propositional Temporal Logic (PTL) is applied to the specification and synthesis of the synchronization part of communicating processes. To specify a process, a PTL formula that describes its sequence of communications is given. The synthesis is done by constructing a model of the given specifications using a tableau-like satisfiability… (More)