Abstract
Linear temporal logic (LTL) is extensively used in formal methods, in particular in runtime verification (RV) and in model checking. Its propositional version was shown by Wolper (1983, Inform Control 56(1/2): 72–99) to be limited in expressiveness. Several extensions of propositional LTL, which promote the expressive power to that of Büchi automata, have therefore been proposed; however, none of those, by and large, have been adopted for formal methods. We present an extension of propositional LTL with rules, that is as expressive as these aforementioned extensions. We then show a similar deficiency in the expressiveness of first-order LTL and present an extension of it with rules, which parallels the propositional version. In our work on runtime verification, we focus on execution traces which consist of events that carry data, where a first-order version of LTL is needed, and in particular on past time versions of first-order LTL. In the previous work, we provided an algorithm for past time first-order LTL that uses BDDs to represent relations over data elements, and implemented it as a tool called DejaVu. In this paper, we propose a monitoring algorithm for the extension of past time first-order LTL with rules. This is implemented as an extension of DejaVu, and experimental results are provided.
Similar content being viewed by others
Notes
The logics are called monadic since they allow relations with one parameter that explicitly represents the time; hence, instead of occurrences of a proposition p in the temporal logic formulas, the monadic logics have a relation p where p(i) stands for p holds at time i. First-order monadic logic allows quantifying over the time variables, while second-order logic allows quantifying over the relations.
For a counter-free language, there is an integer n such that for all words x, y, z and integers \(m \ge n\) we have that \(xy^m z \in L\) if and only if \(xy^n z \in L\).
Finite domains are handled with some minor changes, see [24].
This theory is based on the compactness theory of first-order logic, see [17] Chap. 4.
Again, the definition can be extended to any number of variables.
Other enumeration generation schemes are possible. Our implementation allows a garbage collection mechanism that can reuse enumerations that are no longer needed.
With k bits, we can store \(2^k\) enumerations. It is possible to extend the number of bits used on the fly.
An additional 900+ lines of mostly property-independent boilerplate code is generated.
References
Alpern, B., Schneider, F.B.: Recognizing safety and liveness. Distrib. Comput. 2(3), 117–126 (1987)
Attard, D.P., Cassar, I., Francalanza, A., Aceto, L., Ingólfsdóttir, A.: A runtime monitoring tool for actor-based systems. In: Gay, S., Ravara, A. (eds) Behavioural Types: from Theory to Tools, Chapter 3, pp. 49–76, River Publishers, Denmark (2017)
Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification, Verification, Model Checking, and Abstract Interpretation (VMCAI’04), LNCS, vol. 44–57. Springer, Berlin (2004)
Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. J. Log. Comput. (JLC), Vol. 20, No. 3. Oxford University Press, Oxford, pp. 675–706 (2008)
Bartocci, E., Falcone, Y., Francalanza, A., Leucker, M., Reger, G.: An introduction to runtime verification, lectures on runtime verification - introductory and advanced topics, LNCS, vol. 1–23. Springer, Berlin (2018)
Basin, D.A., Klaedtke, F., Marinovic, S., Zalinescu, En: Monitoring of temporal first-order properties with aggregations. Form. Meth. Syst. Des. 46(3), 262–285 (2015)
Basin, D.A., Klaedtke, F., Müller, S., Zalinescu, E.: Monitoring metric first-order temporal properties. J. ACM 62(2), 1–45 (2015)
Bauer, A., Leucker, M., Schallhart, C.: The good, the bad, and the ugly, but how ugly is ugly?, Workshop on Runtime Verification (RV’07), LNCS, vol. 126–138. Springer, Berlin (2007)
Bohn, J., Damm, W., Grumberg, O., Hungar, H., Laster, K.: First-order CTL model checking, International Conference on Foundations of Software Technology and Theoretical Computer Science, (FSTTCS’98), LNCS, vol. 283–294. Springer, Berlin (1998)
Bryant, R.E.: Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: \(10^{20}\) states and beyond. Inform. Comput. 98(2), 142–170 (1992)
Chomicki, J.: Efficient checking of temporal integrity constraints using bounded history encoding. ACM Trans. Database Syst. 20(2), 149–186 (1995)
Clarke, E.M., Grumberg, O., Peled, D.: Model checking. MIT Press, Chambridge (2000)
D’Angelo, B., Sankaranarayanan, S., Sánchez, C., Robinson, W., Finkbeiner, B., Sipma, H.B., Mehrotra, S., Manna, Z. LOLA: Runtime monitoring of synchronous systems, International Symposium on Temporal Representation and Reasoning (TIME’05), IEEE, 166-174. (2005)
Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. J. Softw. Tools Technol. Transf. 18(2), 205–225 (2016)
Ebbinghaus, H.-D., Flum, J., Thomas, W.: Mathematical Logic. Undergraduate texts in mathematics. Springer, Berlin (1984)
Falcone, Y., Fernandez, J.-C., Mounier, L.: What can you verify and enforce at runtime? STTT 14(3), 349–382 (2012)
Forgy, C.: Rete: A Fast algorithm for the many pattern/many object pattern match problem. Artif. Intell. 19, 17–37 (1982)
Frenkel, H., Grumberg, O., Sheinvald, S.: An automata-theoretic approach to modeling systems and specifications over infinite data, NASA Formal Methods (NFM 17), LNCS, vol. 1–18. Springer, Berlin (2017)
Geist, J., Rozier, K.Y., Schumann, J.: Runtime observer pairs and Bayesian network reasoners on-board FPGAs: Flight-certifiable system health management for embedded systems, International Conference on Runtime Verification (RV’14), LNCS, vol. 215–230. Springer, Berlin (2014)
Gerth, R., Peled, D.A., Vardi, M.Y., Wolper, P.: Simple on-the-fly automatic verification of linear temporal logic. PSTV 3–18 (1995)
Hallé, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192 (2012)
Havelund, K., Peled, D.A., Ulus, D.: First-order temporal logic monitoring with BDDs, Formal Methods in Computer Aided Design (FMCAD’17), IEEE, pp. 116–123 (2017)
Havelund, K., Peled, D.: Efficient runtime verification of first-order temporal properties. International Symposium on Model Checking Software (SPIN’18), LNCS Volume 10869, Springer, Berlin, pp. 26–47 (2018)
Havelund, K., Reger, G., Thoma, D., Zălinescu, E.: Monitoring events that carry data, Lectures on Runtime Verification—Introductory and Advanced Topics, LNCS, vol. 61–102. Springer, Berlin (2018)
Havelund, K., Rosu, G.: Synthesizing monitors for safety properties, Tools and Algorithms for the Construction and Analysis of Systems (TACAS 02), LNCS, vol. 342–356. Springer, Berlin (2002)
Havelund, K.: Data automata in Scala, Theoretical Aspects of Software Engineering (TASE’14), IEEE Computer Society, pp. 1–9 (2014)
Havelund, K.: Rule-based runtime verification revisited. Softw. Tools Technol. Transf. 17(2), 143–170 (2015)
Havelund, K., Peled, D.A., Ulus, D.: First-order temporal logic monitoring with BDDs. Form. Meth. Syst. Des. 56, 1–21 (2019)
Hella, L., Libkin, L., Nurmonen, J., Wong, L.: Logics with aggregate operators. J. ACM 48(4), 880–907 (2001)
IEEE Standard for Property Specification Language (PSL), Annex B. IEEE Std 1850TM-2010, (2010)
JavaBDD, http://javabdd.sourceforge.net
Kupferman, O., Vardi, M.Y.: Model checking of safety properties. Form. Methods Syst. Des. 19(3), 291–314 (2001)
Maler, O., Nic̆ković, D.: Monitoring properties of analog and mixed-signal circuits. Int. J. Softw. Tools Technol. Transf., Springer, Berlin, vol. 15, pp. 247–268, (2013)
Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems—Specification. Springer, Berlin (1992)
Mars Science Laboratory (MSL) mission website. http://mars.jpl.nasa.gov/msl
Meredith, P.O., Jin, D., Griffith, D., Chen, F., Rosu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. vol. 14, pp. 249–289. Springer, Berlin (2012)
Pike, L., Wegmann, N., Niller, S., Goodloe, A.: Copilot: Monitoring embedded systems. Innov. Syst. Softw. Eng. 9(4), 235–255 (2013)
Reger, G., Cruz, H., Rydeheard, D.: MarQ: Monitoring at runtime with QEA, Tools and Algorithms for the Construction and Analysis of Systems (TACAS’15), LNCS, vol. 596–610. Springer, Berlin (2015)
Schneider, J., Basin, D., Krstić, S., Traytel, D.: A formally verified monitor for metric first-order temporal logic, International Conference on Runtime Verification (RV’19), LNCS, vol. 310–328. Springer, Berlin (2019)
Shafiei, N., Havelund, K., Mehlitz, P.C.: Actor-based runtime verification with MESA, International Conference on Runtime Verification (RV’20), LNCS, vol. 221–240. Springer, Berlin (2020)
Sistla, A.P.: Theoretical Issues in the Design and Analysis of Distributed Systems, Ph.D Thesis, Harvard University, (1983)
Thomas, W.: Automata on infinite objects, Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics, pp. 133–192 (1990)
Wolper, P., Vardi, M.Y., Sistla, A.P.: Reasoning about infinite computation paths, Annual Symposium on Foundations of Computer Science (SFCS’83), ACM, pp. 185–194
Wolper, P.: Temporal logic can be more expressive. Inform. Contl. 56(1/2), 72–99 (1983)
Acknowledgements
We would like to thank Dogan Ulus for his contributions to the earlier stages of this project. We would also like to thank Kim Guldtrand Larsen, Ioannis Filippidis, Armin Bierre and Jaco van de Pol for sharing their BDD expertise with us.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
The research performed by the first author was carried out at Jet Propulsion Laboratory, California Institute of Technology, under a contract with the National Aeronautics and Space Administration. The research performed by the second author was partially funded by Israeli Science Foundation Grant 1464/18: “Efficient Runtime Verification for Systems with Lots of Data and its Applications”.
Rights and permissions
About this article
Cite this article
Havelund, K., Peled, D. An extension of first-order LTL with rules with application to runtime verification. Int J Softw Tools Technol Transfer 23, 547–563 (2021). https://doi.org/10.1007/s10009-021-00626-y
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-021-00626-y