Skip to main content
Log in

Checking Finite Traces Using Alternating Automata

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

Abstract

Alternating automata have been commonly used as a basis for static verification of reactive systems. In this paper we show how alternating automata can be used in runtime verification. We present three algorithms to check at runtime whether a reactive program satisfies a temporal specification, expressed by a linear-time temporal logic formula. The three methods start from the same alternating automaton but traverse the automaton in different ways: depth-first, breadth-first, and backwards, respectively. We then show how an extension of these algorithms, that collects statistical data while verifying the execution trace, can be used for a more detailed analysis of the runtime behavior. All three methods have been implemented and experimental results are presented.

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. N.S. Bjørner, A. Browne, M. Colón, B. Finkbeiner, Z. Manna, H.B. Sipma, and T.E. Uribe, “Verifying temporal properties of reactive systems: A STeP tutorial,” Formal Methods in System Design, Vol. 16, No. 3, pp. 227–270, 2000.

    Google Scholar 

  2. G. Bruns and P. Godefroid, “Temporal logic query checking,” in Proc. 16th IEEE Symp. Logic in Comp. Sci., IEEE Computer Society Press, 2001, pp. 409-417.

  3. D. Drusinsky, “The Temporal Rover and the ATG Rover,” in K. Havelund, J. Penix, and W. Visser (Eds.), SPIN Model Checking and Software Verification, 7th Int'l SPIN Workshop, Vol. 1885 of LNCS, Springer-Verlag, pp. 323-330, 2000.

  4. B. Finkbeiner, S. Sankaranarayanan, and H. B. Sipma, “Collecting statistics over runtime executions,” in K. Havelund and G. Rosu (Eds.), Runtime Verification 2002, Vol. 70 of Electronic Notes in Theoretical Computer Science. Elsevier, 2002

  5. K. Havelund, “Using runtime analysis to guide model checking of Java Programs” in K. Havelund, J. Penix, and W. Visser (Eds.), SPIN Model Checking and Software Verification, 7th Int'l SPIN Workshop, Vol. 1885 of LNCS, Springer-Verlag, 2000, pp. 245-264.

  6. K. Havelund and G. Ro?u, “Testing linear temporal logic formulae on finite execution traces,” Technical Report TR 01-08, RIACS, 2001.

  7. K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2001.

  8. K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 70 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2002a.

  9. K. Havelund and G. Rosu, “Synthesizing monitors for safety properties,” in Tools and Algorithms for Construction and Analysis of Systems (TACAS'02), Vol. 2280 of LNCS, Springer-Verlag, 2002b, pp. 342-356.

  10. M. Kim, S. Kannan, I. Lee, O. Sokolsky, and M. Viswanathan, “Java-MaC: a run-time assurance tool for Java programs,” in K. Havelund and G. Rosu (Eds.), Runtime Verification (RV 2001), Vol. 55 of Electronic Notes in Computer Science. Paris, Elsevier Science Publishers, 2001, pp. 115–132.

    Google Scholar 

  11. I. Lee, S. Kannan, M. Kim, O. Sokolsky, and M. Viswanathan, “Runtime assurance based on formal specifications,” in Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1999.

  12. Z. Manna and A. Pnueli, “Specification and verification of concurrent programs by ∀-automata,” in B. Banieqbal, H. Barringer, and A. Pnueli (Eds.), Temporal Logic in Specification, No. 398 in LNCS. Berlin: Springer-Verlag, 1987, pp. 124–164. Also in Proc. 14th ACM Symp. Princ. of Prog. Lang., Munich, Germany, 1987, pp. 1-12.

    Google Scholar 

  13. Z. Manna and A. Pnueli, Temporal Verification of Reactive Systems: Safety. New York: Springer-Verlag, 1995.

    Google Scholar 

  14. Z. Manna and H.B. Sipma, “Alternating the temporal picture for safety,” in U. Montanari, J.D. Rolim, and E. Welzl (Eds.), Proc. 27th Intl. Colloq. Aut. Lang. Prog., Vol. 1853. Geneva, Switzerland, Springer-Verlag, 2000, pp. 429–450.

    Google Scholar 

  15. G. Ro?u and K. Havelund, “Synthesizing dynamic programming algorithms from linear temporal logic formulae,” Technical Report TR 01-15, RIACS, 2001.

  16. W. Thomas, “Automata on infinite objects,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, Vol. B. Elsevier Science Publishers North-Holland, 1990, pp. 133–191.

    Google Scholar 

  17. M.Y. Vardi, “Alternating automata and program verification,” in J. van Leeuwen (Ed.), Computer Science Today. Recent Trends and Developments, Vol. 1000 of LNCS. Springer-Verlag, 1995, pp. 471-485.

  18. M.Y. Vardi, “An automata-theoretic approach to linear temporal logic,” in F. Moller and G. Birtwistle (Eds.), Logics for Concurrency. Structure versus Automata, Vol. 1043 of LNCS, Springer-Verlag, 1996, pp. 238-266.

  19. M.Y. Vardi, “Alternating automata: Checking truth and validity for temporal logics,” in Proc. 14th Intl. Conference on Automated Deduction, Vol. 1249 of LNCS. Springer-Verlag, 1997.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Finkbeiner, B., Sipma, H. Checking Finite Traces Using Alternating Automata. Formal Methods in System Design 24, 101–127 (2004). https://doi.org/10.1023/B:FORM.0000017718.28096.48

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/B:FORM.0000017718.28096.48

Navigation