Advertisement

Formal Methods in System Design

, Volume 24, Issue 2, pp 101–127 | Cite as

Checking Finite Traces Using Alternating Automata

  • Bernd Finkbeiner
  • Henny Sipma
Article

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.

runtime verification alternating automata trace checking temporal logic online monitoring 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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.Google Scholar
  3. 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.Google Scholar
  4. 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, 2002Google Scholar
  5. 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.Google Scholar
  6. 6.
    K. Havelund and G. Ro?u, “Testing linear temporal logic formulae on finite execution traces,” Technical Report TR 01-08, RIACS, 2001.Google Scholar
  7. 7.
    K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2001.Google Scholar
  8. 8.
    K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 70 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2002a.Google Scholar
  9. 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.Google Scholar
  10. 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. 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.Google Scholar
  12. 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. 13.
    Z. Manna and A. Pnueli, Temporal Verification of Reactive Systems: Safety. New York: Springer-Verlag, 1995.Google Scholar
  14. 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. 15.
    G. Ro?u and K. Havelund, “Synthesizing dynamic programming algorithms from linear temporal logic formulae,” Technical Report TR 01-15, RIACS, 2001.Google Scholar
  16. 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. 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.Google Scholar
  18. 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.Google Scholar
  19. 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.Google Scholar

Copyright information

© Kluwer Academic Publishers 2004

Authors and Affiliations

  • Bernd Finkbeiner
    • 1
  • Henny Sipma
    • 1
  1. 1.Computer Science DepartmentStanford UniversityStanfordUSA

Personalised recommendations