Abstract
The problem of testing a linear temporal logic (LTL) formula on a finite execution trace of events, generated by an executing program, occurs naturally in runtime analysis of software. An algorithm which takes a past time LTL formula and generates an efficient dynamic programming algorithm is presented. The generated algorithm tests whether the formula is satisfied by a finite trace of events given as input and runs in linear time, its constant depending on the size of the LTL formula. The memory needed is constant, also depending on the size of the formula. Further optimizations of the algorithm are suggested. Past time operators suitable for writing succinct specifications are introduced and shown definitionally equivalent to the standard operators. This work is part of the PathExplorer project, the objective of which it is to construct a flexible framework for monitoring and analyzing program executions.
Chapter PDF
Similar content being viewed by others
References
Manuel Clavel, Steven Eker, Patrick Lincoln, and José Meseguer. Principles of Maude. In José Meseguer, editor, Proceedings, First International Workshop on Rewriting Logic and its Applications. Elsevier Science, 1996. Volume 4, Electronic Notes in Theoretical Computer Science.
James Corbett, Matthew B. Dwyer, John Hatcliff, Corina S. Pasareanu, Robby, Shawn Laubach, and Hongjun Zheng. Bandera: Extracting Finite-state Models from Java Source Code. In Proceedings of the 22nd International Conference on Software Engineering, Limerick, Ireland, June 2000. ACM Press.
Claudio Demartini, Radu Iosif, and Riccardo Sisto. A Deadlock Detection Tool for Concurrent Java Programs. Software Practice and Experience, 29(7):577–603, July 1999.
Doron Drusinsky. The Temporal Rover and the ATG Rover. In Klaus Havelund, John Penix, and Willem Visser, editors, SPIN Model Checking and Software Verification, volume 1885 of Lecture Notes in Computer Science, pages 323–330. Springer, 2000.
Klaus Havelund, Scott Johnson, and Grigore Rosu. Specification and Error Pattern Based Program Monitoring. In European Space Agency Workshop on On-Board Autonomy, Noordwijk, The Netherlands, 2001.
Klaus Havelund, Michael Lowry, and John Penix. Formal Analysis of a Space Craft Controller using SPIN. IEEE Transactions on Software Engineering, 27(8):749–765, August 2001.
Klaus Havelund and Thomas Pressburger. Model Checking Java Programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4):366–381, April 2000. Special issue of STTT containing selected submissions to the 4th SPIN workshop, Paris, France, 1998.
Klaus Havelund and Grigore Rosu. Java PathExplorer-A Runtime Verification Tool. In The 6th International Symposium on Arti.cial Intelligence, Robotics and Automation in Space: A New Space Odyssey, Montreal, Canada, June 18–21, 2001.
Klaus Havelund and Grigore Rosu. Monitoring Java Programs with Java PathExplorer. In Klaus Havelund and Grigore Rosu, editors, Proceedings of Runtime Verification (RV’01), volume 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001.
Klaus Havelund and Grigore Rosu. Monitoring Programs using Rewriting. In Proceedings, International Conference on Automated Software Engineering (ASE’01), pages 135–143. Institute of Electrical and Electronics Engineers, 2001. San Diego, California.
Klaus Havelund and Natarajan Shankar. Experiments in Theorem Proving and Model Checking for Protocol Veri.cation. In Marie Claude Gaudel and Jim Woodcock, editors, FME’96: Industrial Benefit and Advances in Formal Methods, volume 1051 of Lecture Notes in Computer Science, pages 662–681. Springer, 1996.
Gerard J. Holzmann and Margaret H. Smith. A Practical Method for Verifying Event-Driven Software. In Proceedings of ICSE’99, International Conference on Software Engineering, Los Angeles, California, USA, May 1999. IEEE/ACM.
JavaCC. Web page. http://www.webgain.com/products/java_cc.
JTrek. Web page. http://www.compaq.com/java/download.
Insup Lee, Sampath Kannan, Moonjoo Kim, Oleg Sokolsky, and Mahesh Viswanathan. Runtime Assurance Based on Formal Specifications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1999.
Zohar Manna and Amir Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer, New York, 1992.
David Y.W. Park, Ulrich Stern, and David L. Dill. Java Model Checking. In Proceedings of the First International Workshop on Automated Program Analysis, Testing and Verification, Limerick, Ireland, June 2000.
Amir Pnueli. The Temporal Logic of Programs. In Proceedings of the 18th IEEE Symposium on Foundations of Computer Science, pages 46–77, 1977.
Grigore Rosu and Klaus Havelund. Synthesizing Dynamic Programming Algorithms from Linear Temporal Logic Formulae. Technical Report TR 01-08, NASA—RIACS, May 2001.
Scott D. Stoller. Model-Checking Multi-threaded Distributed Java Programs. In Klaus Havelund, John Penix, and Willem Visser, editors, SPIN Model Checking and Software Verification, volume 1885 of Lecture Notes in Computer Science, pages 224–244. Springer, 2000.
Willem Visser, Klaus Havelund, Guillaume Brat, and SeungJoon Park. Model Checking Programs. In Proceedings of ASE’2000: The 15th IEEE International Conference on Automated Software Engineering. IEEE CS Press, September 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Havelund, K., Roşu, G. (2002). Synthesizing Monitors for Safety Properties. In: Katoen, JP., Stevens, P. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2002. Lecture Notes in Computer Science, vol 2280. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46002-0_24
Download citation
DOI: https://doi.org/10.1007/3-540-46002-0_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43419-1
Online ISBN: 978-3-540-46002-2
eBook Packages: Springer Book Archive