Advertisement

Formal Methods in System Design

, Volume 15, Issue 1, pp 7–48 | Cite as

Reactive Modules

  • Rajeev Alur
  • Thomas A. Henzinger
Article

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.

modeling of reactive systems formal verification compositionality concurrency modeling synchrony and asynchrony assume-guarantee reasoning temporal abstraction 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. Abadi and L. Lamport, “The existence of refinement mappings,” Theoretical Computer Science, Vol. 82, pp. 253–284, 1991.Google Scholar
  2. 2.
    M. Abadi and L. Lamport, “Conjoining specifications,” ACM Transactions on Programming Languages and Systems, Vol. 17, pp. 507–534, 1995.Google Scholar
  3. 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. 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.Google Scholar
  5. 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.Google Scholar
  6. 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.Google Scholar
  7. 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. 8.
    G. Berry and G. Gonthier, “The synchronous programming language Esterel: Design, semantics, implementation,” Technical Report 842, INRIA, 1988.Google Scholar
  9. 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.Google Scholar
  10. 10.
    K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley Publishing Company, 1988.Google Scholar
  11. 11.
    D.L. Dill, Trace Theory for Automatic Hierarchical Verification of Speed-independent Circuits, The MIT Press, 1989.Google Scholar
  12. 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.Google Scholar
  13. 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. 14.
    N. Halbwachs, Synchronous Programming of Reactive Systems, Kluwer Academic Publishers, 1993.Google Scholar
  15. 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.Google Scholar
  16. 16.
    C.A.R. Hoare, Communicating Sequential Processes, Prentice-Hall, 1985.Google Scholar
  17. 17.
    G.J. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall, 1991.Google Scholar
  18. 18.
    R.P. Kurshan, Computer-aided Verification of Coordinating Processes, Princeton University Press, 1994.Google Scholar
  19. 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.Google Scholar
  20. 20.
    L. Lamport, “Specifying concurrent program modules,” ACM Transactions on Programming Languages and Systems, Vol. 5, pp. 190–222, 1983.Google Scholar
  21. 21.
    N.A. Lynch, Distributed Algorithms, Morgan-Kaufmann, 1996.Google Scholar
  22. 22.
    Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.Google Scholar
  23. 23.
    K.L. McMillan, Symbolic Model Checking: An Approach to the State-explosion Problem, Kluwer Academic Publishers, 1993.Google Scholar
  24. 24.
    R. Milner, Communication and Concurrency, Prentice-Hall, 1989.Google Scholar
  25. 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.Google Scholar
  26. 26.
    R.J. van Glabbeek, “Comparative concurrency semantics and refinement of actions,” Ph.D. Thesis, Vrije Universiteit te Amsterdam, 1990.Google Scholar

Copyright information

© Kluwer Academic Publishers 1999

Authors and Affiliations

  • Rajeev Alur
    • 1
  • Thomas A. Henzinger
    • 2
  1. 1.Department of Computer and Information ScienceUniversity of Pennsylvania and Bell LaboratoriesPhiladelphia
  2. 2.Department of Electrical Engineering and Computer SciencesUniversity of California at BerkeleyBerkeley

Personalised recommendations