Reactive Modules

We present a formal model for concurrent systems. The model represents synchronous and asynchronous components in a uniform framework that supports compositional (assume-guarantee) and hierarchical (stepwise-refinement) design and verification. While synchronous models are based on a notion of atomic computation step, and asynchronous models remove that notion by introducing stuttering, our model is based on a flexible notion of what constitutes a computation step: by applying an abstraction operator to a system, arbitrarily many consecutive steps can be collapsed into a single step. The abstraction operator, which may turn an asynchronous system into a synchronous one, allows us to describe systems at various levels of temporal detail. For describing systems at various levels of spatial detail, we use a hiding operator that may turn a synchronous system into an asynchronous one. We illustrate the model with diverse examples from synchronous circuits, asynchronous shared-memory programs, and synchronous message-passing protocols.

[1]  Thomas A. Henzinger,et al.  You Assume, We Guarantee: Methodology and Case Studies , 1998, CAV.

[2]  S. Ramesh,et al.  Communicating reactive processes , 1993, POPL '93.

[3]  Ariel Orda,et al.  Modelling Asynchrony with a Synchronous Model , 1995, CAV.

[4]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[5]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[6]  David L. Dill,et al.  Trace theory for automatic hierarchical verification of speed-independent circuits , 1989, ACM distinguished dissertations.

[7]  Thomas A. Henzinger,et al.  Local Liveness for Compositional Modeling of Fair Reactive Systems , 1995, CAV.

[8]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[9]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[10]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[11]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[12]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[13]  Bowen Alpern,et al.  Safety Without Stuttering , 1986, Inf. Process. Lett..

[14]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[15]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[16]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[17]  Albert Benveniste,et al.  programmi language and its , 2001 .

[18]  Eugene W. Stark,et al.  A Proof Technique for Rely/Guarantee Properties , 1985, FSTTCS.

[19]  Thomas A. Henzinger,et al.  Symbolic Exploration of transition Hierarchies , 1998, TACAS.

[20]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.