Abstract
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.
Similar content being viewed by others
References
M. Abadi and L. Lamport, “The existence of refinement mappings,” Theoretical Computer Science, Vol. 82, pp. 253–284, 1991.
M. Abadi and L. Lamport, “Conjoining specifications,” ACM Transactions on Programming Languages and Systems, Vol. 17, pp. 507–534, 1995.
B. Alpern, A.J. Demers, and F.B. Schneider, “Safety without stuttering,” Information Processing Letters, Vol. 23, pp. 177–180, 1986.
R. Alur and T.A. Henzinger, “Local liveness for compositional modeling of fair reactive systems,” in CAV 95: Computer-aided Verification, Lecture Notes in Computer Science 939, Springer-Verlag, pp. 166–179, 1995.
R. Alur, T.A. Henzinger, and S.K. Rajamani, “Symbolic exploration of transition hierarchies,” in TACAS 98: Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science 1384, Springer-Verlag, pp. 330–344, 1998.
R. Alur, T.A. Henzinger, F.Y.C. Mang, S. Qadeer, S.K. Rajamani, and S. Tasiran, “Mocha: Modularity in model checking,” in CAV 98: Computer-aided Verification, Lecture Notes in Computer Science 1427, Springer-Verlag, pp. 521–525, 1998.
A. Benveniste, P. le Guernic, and C. Jacquemot, “Synchronous programming with events and relations: The Signal language and its semantics,” Science of Computer Programming, Vol. 16, pp. 103–149, 1991.
G. Berry and G. Gonthier, “The synchronous programming language Esterel: Design, semantics, implementation,” Technical Report 842, INRIA, 1988.
G. Berry, S. Ramesh, and R.K. Shyamasundar, “Communicating reactive processes,” in Proceedings of the 20th Annual Symposium on Principles of Programming Languages, ACM Press, pp. 85–98, 1993.
K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley Publishing Company, 1988.
D.L. Dill, Trace Theory for Automatic Hierarchical Verification of Speed-independent Circuits, The MIT Press, 1989.
D.L. Dill, “The MURØ verification system,” in CAV 96: Computer-aided Verification, Lecture Notes in Computer Science 1102, Springer-Verlag, pp. 390–393, 1996.
O. Grumberg and D.E. Long, “Model checking and modular verification,” ACM Transactions on Programming Languages and Systems, Vol. 16, pp. 843–871, 1994.
N. Halbwachs, Synchronous Programming of Reactive Systems, Kluwer Academic Publishers, 1993.
T.A. Henzinger, S. Qadeer, and S.K. Rajamani, “You assume, we guarantee: Methodology and case studies,” in CAV 98: Computer-aided Verification, Lecture Notes in Computer Science 1427, Springer-Verlag, pp. 440–445, 1998.
C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.
G.J. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall, 1991.
R.P. Kurshan, Computer-aided Verification of Coordinating Processes, Princeton University Press, 1994.
R.P. Kurshan, M. Merritt, A. Orda, and S.R. Sachs, “Modeling asynchrony with a synchronous model,” in CAV 95: Computer-aided Verification, Lecture Notes in Computer Science 939, Springer-Verlag, pp. 339–352, 1995.
L. Lamport, “Specifying concurrent program modules,” ACM Transactions on Programming Languages and Systems, Vol. 5, pp. 190–222, 1983.
N.A. Lynch, Distributed Algorithms, Morgan-Kaufmann, 1996.
Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.
K.L. McMillan, Symbolic Model Checking: An Approach to the State-explosion Problem, Kluwer Academic Publishers, 1993.
R. Milner, Communication and Concurrency, Prentice-Hall, 1989.
E.W. Stark, “A proof technique for rely-guarantee properties,” in FST & TCS 85: Foundations of Software Technology and Theoretical Computer Science, Lecture Notes in Computer Science 206, Springer-Verlag, pp. 369–391, 1985.
R.J. van Glabbeek, “Comparative concurrency semantics and refinement of actions,” Ph.D. Thesis, Vrije Universiteit te Amsterdam, 1990.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Alur, R., Henzinger, T.A. Reactive Modules. Formal Methods in System Design 15, 7–48 (1999). https://doi.org/10.1023/A:1008739929481
Issue Date:
DOI: https://doi.org/10.1023/A:1008739929481