arXiv:cs/9810022v1 [cs.SE] 26 Oct 1998 Broy-Lamport Specification Problem: A Gurevich Abstract State Machine Solution James K. Huggins EECS Department, University of Michigan, Ann Arbor, MI, 48109-2122, USA. February 1, 2008 Abstract We apply the Gurevich Abstract State Machine methodology to a benchmark specification problem of Broy and Lamport. As part of the Dagstuhl Workshop on Reactive Systems, Manfred Broy and Leslie Lamport proposed a “Specification Problem” [1]. The problem calls for the specification and validation of a small distributed system dealing with a remote procedure call interface. Broy and Lamport invited proponents of different formal methods to specify and validate the system, in order to compare the results of different methods on a common problem. We take up the challenge and specify the problem using the Gurevich abstract state machine (ASM) methodology. This paper is self-contained. In Section 1, we present an introduction to Gurevich abstract state machines, including real-time machines. The remaining sections contain the original problem description of Broy and Lamport, interspersed with our ASM specifications and validations. Acknowledgements. The suggestion to give a ASM solution to this problem was made by Egon B¨orger and Yuri Gurevich; in particular, Yuri Gurevich actively contributed to an early version of the work [6]. Leslie Lamport made comments on an early draft of this work; Chuck Wallace made comments on a later draft. 1 Gurevich Abstract State Machines Gurevich abstract state machines, formerly known as evolving algebras or ealgebras, were introduced in [2]; a more complete definition (including distributed aspects) appeared in [3]. A discussion of real-time ASMs appeared most recently in [4]. We present here a self-contained introduction to ASMs. Sections 1.1 through 1.4 describe distributed ASMs (adapted from [5]); section 1.5 describes real-time ASMs. Those already familiar with ASMs may skip ahead to section 2. 1.1 States The states of a ASM are simply the structures of first-order logic, except that relations are treated as Boolean-valued functions. A vocabulary is a finite collection of function names, each with a fixed arity. Every ASM vocabulary contains the following logic symbols : nullary function names true, false, undef, the equality sign, (the names of) the usual Boolean operations, and (for convenience) a unary function name Bool. Some function symbols (such as Bool) are tagged as relations ; others may be tagged as external. * University of Michigan EECS Department Technical Report CSE-TR-320-96. huggins@eecs.umich.edu. Partially supported by ONR grant N00014-94-1-1182 and NSF grant CCR-95-04375. 1