Skip to main content
Log in

Reactive Modules

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. M. Abadi and L. Lamport, “The existence of refinement mappings,” Theoretical Computer Science, Vol. 82, pp. 253–284, 1991.

    Google Scholar 

  2. M. Abadi and L. Lamport, “Conjoining specifications,” ACM Transactions on Programming Languages and Systems, Vol. 17, pp. 507–534, 1995.

    Google Scholar 

  3. B. Alpern, A.J. Demers, and F.B. Schneider, “Safety without stuttering,” Information Processing Letters, Vol. 23, pp. 177–180, 1986.

    Google Scholar 

  4. 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.

  5. 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.

  6. 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.

  7. 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.

    Google Scholar 

  8. G. Berry and G. Gonthier, “The synchronous programming language Esterel: Design, semantics, implementation,” Technical Report 842, INRIA, 1988.

  9. 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.

  10. K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley Publishing Company, 1988.

  11. D.L. Dill, Trace Theory for Automatic Hierarchical Verification of Speed-independent Circuits, The MIT Press, 1989.

  12. 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.

  13. O. Grumberg and D.E. Long, “Model checking and modular verification,” ACM Transactions on Programming Languages and Systems, Vol. 16, pp. 843–871, 1994.

    Google Scholar 

  14. N. Halbwachs, Synchronous Programming of Reactive Systems, Kluwer Academic Publishers, 1993.

  15. 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.

  16. C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.

  17. G.J. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall, 1991.

  18. R.P. Kurshan, Computer-aided Verification of Coordinating Processes, Princeton University Press, 1994.

  19. 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.

  20. L. Lamport, “Specifying concurrent program modules,” ACM Transactions on Programming Languages and Systems, Vol. 5, pp. 190–222, 1983.

    Google Scholar 

  21. N.A. Lynch, Distributed Algorithms, Morgan-Kaufmann, 1996.

  22. Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.

  23. K.L. McMillan, Symbolic Model Checking: An Approach to the State-explosion Problem, Kluwer Academic Publishers, 1993.

  24. R. Milner, Communication and Concurrency, Prentice-Hall, 1989.

  25. 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.

  26. R.J. van Glabbeek, “Comparative concurrency semantics and refinement of actions,” Ph.D. Thesis, Vrije Universiteit te Amsterdam, 1990.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008739929481

Navigation