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.
Similar content being viewed by others
References
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.
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.
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.
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
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.
K. Havelund and G. Ro?u, “Testing linear temporal logic formulae on finite execution traces,” Technical Report TR 01-08, RIACS, 2001.
K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2001.
K. Havelund and G. Rosu (Eds.), “Runtime verification 2001,” Vol. 70 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2002a.
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.
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.
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.
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.
Z. Manna and A. Pnueli, Temporal Verification of Reactive Systems: Safety. New York: Springer-Verlag, 1995.
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.
G. Ro?u and K. Havelund, “Synthesizing dynamic programming algorithms from linear temporal logic formulae,” Technical Report TR 01-15, RIACS, 2001.
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.
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.
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.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/B:FORM.0000017718.28096.48