Skip to main content

Verification of open systems

  • Conference paper
  • First Online:
Foundations of Software Technology and Theoretical Computer Science (FSTTCS 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1346))

Abstract

In computer system design, we distinguish between closed and open systems. A closed system is a system whose behavior is completely determined by the state of the system. An open system is a system that interacts with its environment and whose behavior depends on this interaction. The ability of temporal logics to describe an ongoing interaction of a reactive program with its environment makes them particularly appropriate for the specification of open systems. Nevertheless, model-checking algorithms used for the verification of closed systems are not appropriate for the verification of open systems. Correct verification of open systems should check the system with respect to arbitrary environments and should take into account uncertainty regarding the environment. This is not the case with current model-checking algorithms and tools. Module checking is an algorithmic method that checks, given an open system (modeled as a finite structure) and a desired requirement (specified by a temporal-logic formula), whether the open system satisfies the requirement with respect to all environments. In this paper we describe and examine module checking problem, and study its computational complexity. Our results show that module checking is computationally harder than model checking.

Supported in part by NSF grants CCR-9628400 and CCR-9700061 and by a grant from the Intel Corporation.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. I. Beer, S. Ben-David, D. Geist, R. Gewirtzman, and M. Yoeli. Methodology and system for practical formal verification of reactive hardware. In Proc. 6th Conference on Computer Aided Verification, volume 818 of Lecture Notes in Computer Science, pages 182–193, Stanford, June 1994.

    Google Scholar 

  2. J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang. Symbolic model checking: 1020 states and beyond. In Proceedings of the 5th Symposium on Logic in Computer Science, pages 428–439, Philadelphia, June 1990.

    Google Scholar 

  3. O. Bernholtz, M.Y. Vardi, and P. Wolper. An automata-theoretic approach to branching-time model checking. In D. L. Dill, editor, Computer Aided Verification, Proc. 6th Int. Conference, volume 818 of Lecture Notes in Computer Science, pages 142–155, Stanford, June 1994. Springer-Verlag, Berlin.

    Google Scholar 

  4. E.M. Clarke and E.A. Emerson. Design and synthesis of synchronization skeletons using branching time temporal logic. In Proc. Workshop on Logic of Programs, volume 131 of Lecture Notes in Computer Science, pages 52–71. Springer-Verlag, 1981.

    Google Scholar 

  5. E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems, 8(2):244–263, January 1986.

    Article  MATH  Google Scholar 

  6. E.M. Clarke, O. Grumberg, and M.C. Browne. Reasoning about networks with many identical finite-state processes. In Proc. 5th ACM Symposium on Principles of Distributed Computing, pages 240–248, Calgary, Alberta, August 1986.

    Google Scholar 

  7. E.M. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D.E. Long, K.L. McMillan, and L.A. Ness. Verification of the futurebus+ cache coherence protocol. Formal Methods in System Design, 6:217–232, 1995.

    Article  Google Scholar 

  8. E.M. Clarke, O. Grumberg, and D. Long. Verification tools for finite-state concurrent systems. In J.W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors, Decade of Concurrency — Reflections and Perspectives (Proceedings of REX School), volume 803 of Lecture Notes in Computer Science, pages 124–175. Springer-Verlag, 1993.

    Google Scholar 

  9. E.A. Emerson and J.Y. Halpern. Sometimes and not never revisited: On branching versus linear time. Journal of the ACM, 33(1):151–178, 1986.

    Article  MATH  MathSciNet  Google Scholar 

  10. E.A. Emerson and C. Jutia. The complexity of tree automata and logics of programs. In Proceedings of the 29th IEEE Symposium on Foundations of Computer Science, pages 368–377, White Plains, October 1988.

    Google Scholar 

  11. E.A. Emerson and C.-L. Lei. Modalities for model checking: Branching time logic strikes back. In Proceedings of the Twelfth ACM Symposium on Principles of Programming Languages, pages 84–96, New Orleans, January 1985.

    Google Scholar 

  12. E.A. Emerson. Automata, tableaux, and temporal logics. In Proc. Workshop on Logic of Programs, volume 193 of Lecture Notes in Computer Science, pages 79–87. Springer-Verlag, 1985.

    Google Scholar 

  13. E.A. Emerson and A. P. Sistla. Deciding branching time logic. In Proc. 16th ACM Symposium on Theory of Computing, Washington, April 1984.

    Google Scholar 

  14. M.J. Fischer and R.E. Ladner. Propositional dynamic logic of regular programs. J. of Computer and Systems Sciences, 18:194–211, 1979.

    Article  MATH  MathSciNet  Google Scholar 

  15. M.J.Fischer and L.D. Zuck. Reasoning about uncertainty in fault-tolerant distributed systems. In M. Joseph, editor, Proc. Symp. on Formal Techniques in Real-Time and Fault-Tolerant Systems, volume 331 of Lecture Notes in Computer Science, pages 142–158. Springer-Verlag, 1988.

    Google Scholar 

  16. O. Grumberg and D.E. Long. Model checking and modular verification. ACM Trans. on Programming Languages and Systems, 16(3):843–871, 1994.

    Article  Google Scholar 

  17. L.M. Goldschlager. The monotone and planar circuit value problems are log space complete for p. SIGACT News, 9(2):25–29, 1977.

    Article  MATH  Google Scholar 

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

    Google Scholar 

  19. D. Hard and A. Pnueli. On the development of reactive systems. In K. Apt, editor. Logics and Models of Concurrent Systems, volume F-13 of NATO Advanced Summer Institutes, pages 477–498. Springer-Verlag, 1985.

    Google Scholar 

  20. O. Kupferman and O. Grumberg. Buy one, get one free !!! Journal of Logic and Computation, 6(4):523–539, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  21. O. Kupferman and M.Y. Vardi. On the complexity of branching modular model checking. In Proc. 6th Conferance on Concurrency Theory, volume 962 of Lecture Notes in Computer Science, pages 408–422, Philadelphia, August 1995. Springer-Verlag.

    Google Scholar 

  22. O. Kupferman and M.Y. Vardi. Module checking. In Computer Aided Verification, Proc. 8th Int. Conference, volume 1102 of Lecture Notes in Computer Science, pages 75–86. Springer-Verlag, 1996.

    Google Scholar 

  23. O. Kupferman and M.Y. Vardi. Module checking revisited. In Computer Aided Verification, Proc. 9th Int. Conference, volume 1254 of Lecture Notes in Computer Science, pages 36–47. Springer-Verlag, 1997.

    Google Scholar 

  24. O. Kupferman and M.Y. Vardi. Weak alternating automata are not that weak. In 5th Israeli Symposium on Theory of Computing and Systems, pages 147–158. IEEE Computer Society Press, 1997.

    Google Scholar 

  25. O. Kupferman, M.Y. Vardi, and P. Wolper. Module checking. 1997.

    Google Scholar 

  26. L. Lamport. Sometimes is sometimes “not never” — on the temporal logic of programs. In Proceedings of the 7th ACM Symposium on Principles of Programming Languages, pages 174–185, January 1980.

    Google Scholar 

  27. O. Lichtenstein and A. Pnueli. Checking that finite state concurrent programs satisfy their linear specification. In Proceedings of the Twelfth ACM Symposium on Principles of Programming Languages, pages 97–107, New Orleans, January 1985.

    Google Scholar 

  28. K.L. McMillan. Symbolic model checking. Kluwer Academic Publishers, 1993.

    Google Scholar 

  29. R. Milner. An algebraic definition of simulation between programs. In Proceedings of the 2nd International Joint Conference on Artificial Intelligence, pages 481–489, September 1971.

    Google Scholar 

  30. Z. Manna and A. Pnueli. Temporal specification and verification of reactive modules. 1992.

    Google Scholar 

  31. D.E. Muller and P.E. Schupp. Alternating automata on infinite trees. Theoretical Computer Science, 54:267–276, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  32. D.E. Muller and P.E. Schupp. Simulating aternating tree automata by nondeterministic automata: New results and new proofs of theorems of Rabin, McNaughton and Safra. Theoretical Computer Science, 141:69–107,1995.

    Article  MATH  MathSciNet  Google Scholar 

  33. A. Pnueli. The temporal semantics of concurrent programs. Theoretical Computer Science, 13:45–60,1981.

    Article  MATH  MathSciNet  Google Scholar 

  34. A. Pnueli and R. Rosner. On the synthesis of a reactive module. In Proceedings of the Sixteenth ACM Symposium on Principles of Programming Languages, Austin, January 1989.

    Google Scholar 

  35. V.R. Pratt. A near-optimal method for reasoning about action. J. on Computer and System Sciences, 20(2):231–254, 1980.

    Article  MATH  MathSciNet  Google Scholar 

  36. J.P. Queille and J. Sifakis. Specification and verification of concurrent systems in Cesar. In Proc. 5th International Symp. on Programming, volume 137, pages 337–351. Springer-Verlag, Lecture Notes in Computer Science, 1981.

    Google Scholar 

  37. J.H. Reif. The complexity of two-player games of incomplete information. J. on Computer and System Sciences, 29:274–301, 1984.

    Article  MATH  MathSciNet  Google Scholar 

  38. A.P. Sistla and E.M. Clarke. The complexity of prepositional linear temporal logic. J. ACM, 32:733–749, 1985.

    Article  MATH  MathSciNet  Google Scholar 

  39. M.Y. Vardi. On the complexity of modular model checking. In Proceedings of the 10th IEEE Symposium on Logic in Computer Science, June 1995.

    Google Scholar 

  40. M.Y. Vardi and L. Stockmeyer. Improved upper and lower bounds for modal logics of programs. In Proc 17th ACM Symp. on Theory of Computing, pages 240–251, 1985.

    Google Scholar 

  41. M.Y. Vardi and P. Wolper. An automata-theoretic approach to automatic program verification. In Proceedings of the First Symposium on Logic in Computer Science, pages 322–331, Cambridge, June 1986.

    Google Scholar 

  42. M.Y. Vardi and P. Wolper. Automata-theoretic techniques for modal logics of programs. Journal of Computer and System Science, 32(2): 182–221, April 1986.

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. Ramesh G Sivakumar

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vardi, M.Y. (1997). Verification of open systems. In: Ramesh, S., Sivakumar, G. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1997. Lecture Notes in Computer Science, vol 1346. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0058035

Download citation

  • DOI: https://doi.org/10.1007/BFb0058035

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63876-6

  • Online ISBN: 978-3-540-69659-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics