Thomas A. Henzinger, Rupak Majumdar, Freddy Y.C. Mang, and Jean-Francois Raskin
We apply the theory of abstract interpretation to the verification of game properties for reactive systems. Unlike properties expressed in standard temporal logics, game properties can distinguish adversarial from collaborative relationships between the processes of a concurrent program, or the components of a parallel system. We consider two-player concurrent games --say, component vs. environment-- and specify properties of such games --say, the component has a winning strategy to obtain a resource, no matter how the environment behaves-- in the alternating-time mu-calculus. A sound abstraction of such a game must at the same time restrict the behaviors of the component and increase the behaviors of the environment: if a less powerful component can win against a more powerful environment, then surely the original component can win against the original environment.
We formalize the concrete semantics of a concurrent game in terms of controllable and uncontrollable predecessor predicates, which suffice for model checking all alternating mu-properties by applying boolean operations and iteration. We then define the abstract semantics of a concurrent game in terms of abstractions for the controllable and uncontrollable predecessor predicates. This allows us to give general characterizations for the soundness and completeness of abstract games with respect to alternating mu-properties. We also present a simple programming language for multi-process programs, and show how approximations of the maximal abstraction can be obtained from the program text. We apply the theory to two practical verification examples, a communication protocol developed at the Berkeley Wireless Research Center, and a protocol converter. In the wireless protocol, both the use of a game property for specification and the use of abstraction for automatic verification were instrumental to uncover a subtle bug.
Proceedings of the Seventh International Static Analysis Symposium (SAS), Lecture Notes in Computer Science 1824, Springer, 2000, pp. 220-239.