Skip to main content

Alternating automata and program verification

  • Chapter
  • First Online:
Book cover Computer Science Today

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

Abstract

We describe an automata-theoretic approach to the automatic verification of finite-state programs. The basic idea underlying this approach is that for any temporal formula we can construct an alternating automaton that accepts precisely the computations that satisfy the formula. For linear temporal logics the automaton runs on infinite words while for branching temporal logics the automaton runs on infinite trees. The simple combinatorial structures that emerge from the automata-theoretic approach decouple the logical and algorithmic components of finite-state-program verification and yield clear and general verification algorithms.

Part of this work was done at the IBM Almaden Research Center.

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. J.A. Brzozowski and E. Leiss. Finite automata, and sequential networks. Theoretical Computer Science, 10:19–35,1980.

    Article  Google Scholar 

  2. 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, California, 1994. Springer-Verlag, Berlin. full version available from authors.

    Google Scholar 

  3. 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,1986.

    Article  Google Scholar 

  4. E.M. Clarke and O. Gramberg. Avoiding the state explosion problem in temporal logic model-checking algorithms. In Proc. 6th ACM Symposium on Principles of Distributed Computing, pages 294–303, Vancouver, British Columbia, August 1987.

    Google Scholar 

  5. E.M. Clarke, O. Gramberg, and D. Long. Verification tools for finite-state concurrent systems. In A Decade of Concurrency — Reflections and Perspectives (Proc. REX School/Symposium) volume 803 of Lecture Notes in Computer Science, pages 124–175. Springer-Verlag, Berlin, 1993.

    Google Scholar 

  6. Y. Choueka. Theories of automata on Ω-tapes: A simplified approach. J. Computer and System Sciences, 8:117–141,1974.

    Google Scholar 

  7. A.K. Chandra, D.C. Kozen, and L.J. Stockmeyer. Alternation. Journal of the Association for Computing Machinery, 28(1):114–133,1981.

    Google Scholar 

  8. R. Cleaveland. A linear-time model-checking algorithm for the alternation-free modal Μ-calculus. Formal Methods in System Design, 2:121–147,1993.

    Article  Google Scholar 

  9. C. Courcoubetis, M.Y. Vardi, P. Wolper, and M. Yannakakis. Memory efficient algorithms for the verification of temporal properties. Formal Methods in System Design, 1:275–288,1992.

    Article  Google Scholar 

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

    Google Scholar 

  11. E.A. Emerson and C. Jutla. Tree automata, mu-calculus and determinacy. In Proceedings of the 32nd IEEE Symposium on Foundations of Computer Science, pages 368–377, San Juan, October 1991.

    Google Scholar 

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

  13. E.A. Emerson and C.-L. Lei. Temporal model checking under generalized fairness constraints. In Proc. 18th Hawaii International Conference on System Sciences, pages 277–288, Hawaii, 1985.

    Google Scholar 

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

    Google Scholar 

  15. E.A. Emerson. Temporal and modal logic. Handbook of Theoretical Computer Science, B:997–1072, 1990.

    Google Scholar 

  16. E.A. Emerson and A. P. Sistla. Deciding branching time logic. In Proceedings of the 16th ACM Symposium on Theory of Computing, pages 14–24, Washington, April 1984.

    Google Scholar 

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

  18. M.T. Liu. Protocol engineering. Advances in Computing, 29:79–195,1989.

    Google Scholar 

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

  20. O. Lichtenstein, A. Pnueli, and L. Zuck. The glory of the past. In Logics of Programs, volume 193 of Lecture Notes in Computer Science, pages 196–218, Brooklyn, 1985. Springer-Verlag, Berlin.

    Google Scholar 

  21. S. Miyano and T. Hayashi. Alternating finite automata on Ω-words. Theoretical Computer Science, 32:321–330,1984.

    Article  Google Scholar 

  22. M. Michel. Complementation is more difficult with automata on infinite words. CNET, Paris, 1988.

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  25. D.E. Muller and P.E. Schupp. Simulating alternating tree automata by nondeterministic automata: New results and new proofs of the theorems by Rabin, McNaughton and Safra. Theoretical Computer Science, 141(1–2):69–108, April 1995.

    Article  Google Scholar 

  26. D.E. Muller, A. Saoudi, and P.E. Schupp. Alternating automata, the weak monadic theory of the tree and its complexity. In L. Kott, editor, Automata, Languages and Programming, Proc. 13th Int. Colloquium (ICALP '86), volume 226 of Lecture Notes in Computer Science, pages 275–283. Springer-Verlag, Berlin, 1986.

    Google Scholar 

  27. D. E. Muller, A. Saoudi, and P. E. Schupp. Weak alternating automata give a simple explanation of why most temporal and dynamic logics are decidable in exponential time. In Proceedings 3rd IEEE Symposium on Logic in Computer Science, pages 422–427, Edinburgh, July 1988.

    Google Scholar 

  28. R. Peikert. Ω-regular languages and propositional temporal logic. Technical Report 85-01, ETH, 1985.

    Google Scholar 

  29. A. Pnueli. The temporal logic of programs. In Proc. 18th IEEE Symposium on Foundation of Computer Science, pages 46–57, 1977.

    Google Scholar 

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

    Google Scholar 

  31. M.O. Rabin. Weakly definable relations and special automata. In Y. Bar-Hilel, editor, Proc. Symp. Math. Logic and Foundations of Set Theory, pages 1–23. North Holland, 1970.

    Google Scholar 

  32. H. Rudin. Network protocols and tools to help produce them. Annual Review of Computer Science, 2:291–316,1987.

    Article  Google Scholar 

  33. S. Safra. On the complexity of omega-automata. In Proceedings of the 29th IEEE Symposium on Foundations of Computer Science, pages 319–327, White Plains, October 1988.

    Google Scholar 

  34. A.P. Sistla and E.M. Clarke. The complexity of propositional linear temporal logic. Journal of the Association for Computing Machinery, 32:733–749, 1985.

    Google Scholar 

  35. R. S. Streett and E. A. Emerson. The propositional mu-calculus is elementary. In J. Paredaens, editor, Automata, Languages and Programming, Proc. 11th Int. Colloquium (ICALP '84), volume 172 of Lecture Notes in Computer Science, pages 465–472. Springer-Verlag, Berlin, 1984.

    Google Scholar 

  36. A.P. Sistla. Theoretical issues in the design and analysis of distributed systems. PhD thesis, Harvard University, 1983.

    Google Scholar 

  37. A.P. Sistla, M.Y. Vardi, and P. Wolper. The complementation problem for Büchi automata with applications to temporal logic. Theoretical Computer Science, 49:217–237,1987.

    Article  Google Scholar 

  38. M.Y. Vardi. Nontraditional applications of automata theory. In Theoretical Aspects of Computer Software, Proc. Int. Symposium (TACS'94), volume 789 of Lecture Notes in Computer Science, pages 575–597. Springer-Verlag, Berlin, 1994.

    Google Scholar 

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

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

    Google Scholar 

  41. M.Y. Vardi and P. Wolper. Reasoning about infinite computations. Information and Computation, 115(1):1–37,1994.

    Article  Google Scholar 

  42. P. Wolper. Ontherelation of programs and computations to models of temporal logic. In Temporal Logic in Specification, Proc., volume 398 of Lecture Notes in Computer Science, pages 75–123. Springer-Verlag, Berlin, 1989.

    Google Scholar 

  43. P. Wolper, M.Y. Vardi, and A.P. Sistla. Reasoning about infinite computation paths. In Proc. 24th IEEE Symposium on Foundations of Computer Science, pages 185–194, Tucson, 1983.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan van Leeuwen

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Vardi, M.Y. (1995). Alternating automata and program verification. In: van Leeuwen, J. (eds) Computer Science Today. Lecture Notes in Computer Science, vol 1000. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015261

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60105-0

  • Online ISBN: 978-3-540-49435-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics