Abstract
Runtime verification (RV) facilitates monitoring the executions of a system, comparing them against a formal specification. A main challenge is to keep the incremental complexity of updating its internal structure, each time a new event is inspected, to a minimum. There is a tradeoff between achieving a low incremental complexity and the expressive power of the used specification formalism. We present an efficient RV tool that allows specifying properties of executions that include data, with the possibility to apply arithmetic operations and comparisons on the data values. In order to be able to apply efficient RV for specifications with these capabilities, we combine two RV methodologies: the first one is capable of performing arithmetic operations and comparisons based on the most recent events; the second is capable of handling many events with data and relating events that occur at arbitrary distance in the observed execution. This is done by two phase RV, where the first phase, which monitors the input events directly and is responsible to the arithmetic calculations and comparisons, feeds the second phase with modified events for further processing. This is implemented as a tool called TP-DejaVu, which extends the DejaVu tool.
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 third and fourth authors was partially funded by Israeli Science Foundation grant 2454/23: “Validating and controlling software and hardware systems assisted by machine learning”.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Data-Availability Statement
The TP-DejaVu tool is open source and publicly available at https://doi.org/10.5281/zenodo.8322559, as well as from the GitHub repository at https://github.com/moraneus/TP-DejaVu.
References
Alpern, B., Schneider, F.B.: Recognizing safety and liveness. Distrib. Comput. 2(3), 117–126 (1987)
Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 44–57. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24622-0_5
Barringer, H., Havelund, K.: TraceContract: a scala DSL for trace analysis. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 57–72. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21437-0_7
Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. In: Sokolsky, O., Taşıran, S. (eds.) RV 2007. LNCS, vol. 4839, pp. 111–125. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-77395-5_10
Basin, D.A., Klaedtke, F., Marinovic, S., Zalinescu, E.: Monitoring of temporal first-order properties with aggregations. Formal Methods 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), 45 (2015)
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, LICS, pp. 428–439 (1990)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking, 1st edn, pp. 1–314, I–XIV. MIT Press (2001). ISBN 978-0-262-03270-4
Colombo, C., Gauci, A., Pace, G.J.: LarvaStat: monitoring of statistical properties (RV 2010), pp. 480–484 (2010)
Dams, D., Havelund, K., Kauffman, S.: A Python library for trace analysis. In: Dang, T., Stolz, V. (eds.) Proceedings of the Runtime Verification: 22nd International Conference, RV 2022, Tbilisi, 28–30 September 2022, pp. 264–273. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-17196-3_15
D’Angelo, B., et al.: LOLA: runtime monitoring of synchronous systems. In: 12th International Symposium on Temporal Representation and Reasoning (TIME), pp. 166–174. IEEE (2005)
Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. Softw. Tools Technol. Transf. 18(2), 205–225 (2016)
Duckett, B., Havelund, K., Stewart, L.: Space telemetry analysis with PyContract. In: Haxthausen, A.E., Huang, W.-l., Roggenbach, M. (eds.) Applicable Formal Methods for Safe Industrial Products: Essays Dedicated to Jan Peleska on the Occasion of His 65th Birthday, pp. 272–288. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-40132-9_17
Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley (2010)
Gorostiaga, F., Sánchez, C.: HStriver: a very functional extensible tool for the runtime verification of real-time event streams. In: Huisman, M., Păsăreanu, C., Zhan, N. (eds.) FM 2021. LNCS, vol. 13047, pp. 563–580. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-90870-6_30
Hallé, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192–206 (2012)
Havelund, K.: Data Automata in Scala, Theoretical Aspects of Software Engineering Conference (TASE), pp. 1–9. IEEE Computer Society (2014)
Havelund, K.: Rule-based runtime verification revisited. Int. J. Softw. Tools Technol. Transf. 17(2), 143–170 (2014). https://doi.org/10.1007/s10009-014-0309-2
Havelund, K., Peled, D., Ulus, D.: First-order temporal logic monitoring with BDDs. In: FMCAD 2017, pp. 116–123 (2017)
Havelund, K., Peled, D.: An extension of first-order LTL with rules with application to runtime verification. Int. J. Softw. Tools Technol. Transf. 23(4), 547–563 (2021)
Havelund, K., Roşu, G.: Synthesizing monitors for safety properties. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, pp. 342–356. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46002-0_24
Kallwies, H., Leucker, M., Schmitz, M., Schulz, A., Thoma, D., Weiss, A.: TeSSLa – an ecosystem for runtime verification. In: Dang, T., Stolz, V. (eds.) RV 2022. LNCS 13498, pp. 314–324. Springer, Cham (2022). https://doi.org/10.1007/978-3-031-17196-3_20
Kim, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance tool for Java. In: 1st International Workshop on Runtime Verification (RV), ENTCS, vol. 55, no. 2. Elsevier (2001)
Perez, I., Dedden, F., Goodloe, A.: Copilot 3. Technical report, NASA Langley Research Center (2020)
Reger, G, Cruz, H.C., Rydeheard, D.: MarQ: monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 596–610. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46681-0_55
Wolper, P.: Temporal logic can be more expressive. Inf. Control 56(1/2), 72–99 (1983)
TP-DejaVu Tool Source Code. https://doi.org/10.5281/zenodo.8322559
DejaVu Tool Source Code. https://github.com/havelund/dejavu
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Havelund, K., Katsaros, P., Omer, M., Peled, D., Temperekidis, A. (2024). TP-DejaVu: Combining Operational and Declarative Runtime Verification. In: Dimitrova, R., Lahav, O., Wolff, S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2024. Lecture Notes in Computer Science, vol 14500. Springer, Cham. https://doi.org/10.1007/978-3-031-50521-8_12
Download citation
DOI: https://doi.org/10.1007/978-3-031-50521-8_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-50520-1
Online ISBN: 978-3-031-50521-8
eBook Packages: Computer ScienceComputer Science (R0)