Advertisement

A Formally Verified Monitor for Metric First-Order Temporal Logic

  • Joshua SchneiderEmail author
  • David Basin
  • Srđan KrstićEmail author
  • Dmitriy TraytelEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11757)

Abstract

Runtime verification tools must correctly establish a specification’s validity or detect violations. This task is difficult, especially when the specification is given in an expressive declarative language that demands a non-trivial monitoring algorithm. We use a proof assistant to not only solve this task, but also to gain confidence in our solution. We formally verify the correctness of a monitor for metric first-order temporal logic specifications using the Isabelle/HOL proof assistant. From our formalization, we extract an executable algorithm with correctness guarantees and use differential testing to find discrepancies in the outputs of two unverified monitors for first-order specification languages.

Keywords

First-order monitoring Temporal logic Proof assistant 

Notes

Acknowledgment

Joshua Schneider is supported by the US Air Force grant “Monitoring at Any Cost” (FA9550-17-1-0306). Srđan Krstić is supported by the Swiss National Science Foundation grant “Big Data Monitoring” (167162). Martin Raszyk pointed us to DejaVu’s non-standard semantics for formulas with equality. Anonymous reviewers gave numerous helpful suggestions on how to improve the presentation.

References

  1. 1.
    Ausaf, F., Dyckhoff, R., Urban, C.: POSIX lexing with derivatives of regular expressions (proof pearl). In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 69–86. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-43144-4_5CrossRefGoogle Scholar
  2. 2.
    Basin, D., Klaedtke, F., Müller, S., Zălinescu, E.: Monitoring metric first-order temporal properties. J. ACM 62(2), 15:1–15:45 (2015)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Basin, D., Klaedtke, F., Zălinescu, E.: The MonPoly monitoring tool. In: RV-CuBES 2017. Kalpa Publications in Computing, vol. 3, pp. 19–28. EasyChair (2017)Google Scholar
  4. 4.
    Benzaken, V., Contejean, E.: A Coq mechanised formal semantics for realistic SQL queries: formally reconciling SQL and bag relational algebra. In: Mahboubi, A., Myreen, M.O. (eds.) CPP 2019, pp. 249–261. ACM, New York (2019)CrossRefGoogle Scholar
  5. 5.
    Benzaken, V., Contejean, É., Keller, C., Martins, E.: A Coq formalisation of SQL’s execution engines. In: Avigad, J., Mahboubi, A. (eds.) ITP 2018. LNCS, vol. 10895, pp. 88–107. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-94821-8_6CrossRefGoogle Scholar
  6. 6.
    Blech, J.O., Falcone, Y., Becker, K.: Towards certified runtime verification. In: Aoki, T., Taguchi, K. (eds.) ICFEM 2012. LNCS, vol. 7635, pp. 494–509. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-34281-3_34CrossRefGoogle Scholar
  7. 7.
    Bohrer, B., Tan, Y.K., Mitsch, S., Myreen, M.O., Platzer, A.: VeriPhy: verified controller executables from verified cyber-physical system models. In: Foster, J.S., Grossman, D. (eds.) PLDI 2018, pp. 617–630. ACM, New York (2018)CrossRefGoogle Scholar
  8. 8.
    Esparza, J., Lammich, P., Neumann, R., Nipkow, T., Schimpf, A., Smaus, J.-G.: A fully verified executable LTL model checker. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 463–478. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-39799-8_31CrossRefGoogle Scholar
  9. 9.
    Haftmann, F.: Code generation from specifications in higher-order logic. Ph.D. thesis, Technical University Munich (2009)Google Scholar
  10. 10.
    Havelund, K.: Rule-based runtime verification revisited. STTT 17(2), 143–170 (2015)CrossRefGoogle Scholar
  11. 11.
    Havelund, K., Peled, D.: Efficient runtime verification of first-order temporal properties. In: Gallardo, M.M., Merino, P. (eds.) SPIN 2018. LNCS, vol. 10869, pp. 26–47. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-94111-0_2CrossRefGoogle Scholar
  12. 12.
    Havelund, K., Peled, D., Ulus, D.: First order temporal logic monitoring with BDDs. In: FMCAD 2017, pp. 116–123. IEEE (2017)Google Scholar
  13. 13.
    Havelund, K., Peled, D., Ulus, D.: DejaVu: a monitoring tool for first-order temporal logic. In: MT@CPSWeek 2018, pp. 12–13 (2018)Google Scholar
  14. 14.
    Havelund, K., Reger, G., Thoma, D., Zălinescu, E.: Monitoring events that carry data. In: Bartocci, E., Falcone, Y. (eds.) Lectures on Runtime Verification. LNCS, vol. 10457, pp. 61–102. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-75632-5_3CrossRefGoogle Scholar
  15. 15.
    Laurent, J., Goodloe, A., Pike, L.: Assuring the guardians. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 87–101. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-23820-3_6CrossRefGoogle Scholar
  16. 16.
    Malecha, J.G., Morrisett, G., Shinnar, A., Wisnesky, R.: Toward a verified relational database management system. In: Hermenegildo, M.V., Palsberg, J. (eds.) POPL 2010, pp. 237–248. ACM, New York (2010)Google Scholar
  17. 17.
    McKeeman, W.M.: Differential testing for software. Digit. Tech. J. 10(1), 100–107 (1998)Google Scholar
  18. 18.
    Mitsch, S., Platzer, A.: ModelPlex: verified runtime validation of verified cyber-physical system models. Formal Methods Syst. Des. 49(1–2), 33–74 (2016)CrossRefGoogle Scholar
  19. 19.
    Nipkow, T., Wenzel, M., Paulson, L.C. (eds.): Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002).  https://doi.org/10.1007/3-540-45949-9CrossRefzbMATHGoogle Scholar
  20. 20.
    Nipkow, T., Traytel, D.: Unified decision procedures for regular expression equivalence. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 450–466. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-08970-6_29CrossRefGoogle Scholar
  21. 21.
    Pike, L., Niller, S., Wegmann, N.: Runtime verification for ultra-critical systems. In: Khurshid, S., Sen, K. (eds.) RV 2011. LNCS, vol. 7186, pp. 310–324. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-29860-8_23CrossRefGoogle Scholar
  22. 22.
    Pike, L., Wegmann, N., Niller, S., Goodloe, A.: Experience report: a do-it-yourself high-assurance compiler. In: Thiemann, P., Findler, R.B. (eds.) ICFP 2012, pp. 335–340. ACM, New York (2012)Google Scholar
  23. 23.
    Reger, G., Rydeheard, D.: From first-order temporal logic to parametric trace slicing. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 216–232. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-23820-3_14CrossRefGoogle Scholar
  24. 24.
    Rizaldi, A., et al.: Formalising and monitoring traffic rules for autonomous vehicles in Isabelle/HOL. In: Polikarpova, N., Schneider, S. (eds.) IFM 2017. LNCS, vol. 10510, pp. 50–66. Springer, Cham (2017).  https://doi.org/10.1007/978-3-319-66845-1_4CrossRefGoogle Scholar
  25. 25.
    Roşu, G., Chen, F.: Semantics and algorithms for parametric monitoring. Log. Methods Comput. Sci. 8(1:9), 1–47 (2012)MathSciNetzbMATHGoogle Scholar
  26. 26.
    Sánchez, C.: Online and offline stream runtime verification of synchronous systems. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 138–163. Springer, Cham (2018).  https://doi.org/10.1007/978-3-030-03769-7_9CrossRefzbMATHGoogle Scholar
  27. 27.
    Schneider, J., Basin, D., Brix, F., Krstić, S., Traytel, D.: Adaptive online first-order monitoring. In: Chen, Y.F., Cheng, C.H., Esparza, J. (eds.) ATVA 2019. Springer (2019, to appear). http://people.inf.ethz.ch/trayteld/papers/atva19-adaptive/aom.pdf
  28. 28.
    Schneider, J., Basin, D., Krstić, S., Traytel, D.: Case study associated with this paper (2019). https://hub.docker.com/r/infsec/verified-monpoly-exps. Docker image (tag 1.3.0)
  29. 29.
    Schneider, J., Traytel, D.: Formalization of a monitoring algorithm for metric first-order temporal logic. Archive of Formal Proofs (2019). http://isa-afp.org/entries/MFOTL_Monitor.html
  30. 30.
    Völlinger, K.: Verifying the output of a distributed algorithm using certification. In: Lahiri, S., Reger, G. (eds.) RV 2017. LNCS, vol. 10548, pp. 424–430. Springer, Cham (2017).  https://doi.org/10.1007/978-3-319-67531-2_29CrossRefGoogle Scholar
  31. 31.
    Wimmer, S.: Formalized timed automata. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 425–440. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-43144-4_26CrossRefGoogle Scholar
  32. 32.
    Wimmer, S., Lammich, P.: Verified model checking of timed automata. In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 61–78. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-89960-2_4CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Institute of Information Security, Department of Computer ScienceETH ZürichZurichSwitzerland

Personalised recommendations