Skip to main content

Explaining Violations of Properties in Control-Flow Temporal Logic

  • Conference paper
  • First Online:
Runtime Verification (RV 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11757))

Included in the following conference series:

Abstract

Runtime Verification is the process of deciding whether a run of a program satisfies a given property. This work considers the more challenging problem of explaining why a run does or does not satisfy the property. We look at this problem in the context of CFTL, a low-level temporal logic. Our main contribution is a method for reconstructing representative execution paths, separating them into good and bad paths, and producing partial parse trees explaining their differences. This requires us to extend CFTL and our second contribution is a partial semantics used to identify the first violating observation in a trace. This is extended with a notion of severity of violation, allowing us to handle real-time properties sensitive to small timing variations. These techniques are implemented as an extension to the publicly available VyPR2 tool. Our work is motivated by results obtained applying VyPR2 to a web service on the CMS Experiment at CERN and initial tests produce useful explanations for realistic use cases.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Practically, in our implementation we target a subset of Python.

References

  1. Flask for Python. http://flask.pocoo.org

  2. Graphviz for Python. https://graphviz.readthedocs.io/en/stable/

  3. Babenko, A., Mariani, L., Pastore, F.: Ava: automated interpretation of dynamically detected anomalies. In: Proceedings of the Eighteenth International Symposium on Software Testing and Analysis, ISSTA 2009, pp. 237–248. ACM, New York, NY, USA (2009). https://doi.org/10.1145/1572272.1572300

  4. Ball, T., Larus, J.R.: Efficient path profiling. In: Proceedings of the 29th Annual ACM/IEEE International Symposium on Microarchitecture MICRO, vol. 29, pp. 46–57. IEEE Computer Society, Washington, DC, USA (1996). http://dl.acm.org/citation.cfm?id=243846.243857

  5. Bartocci, E., Falcone, Y., Francalanza, A., Leucker, M., Reger, G.: An introduction to runtime verification. In: Lectures on Runtime Verification - Introductory and Advanced Topics. LNCS, vol. 10457, pp. 1–23 (2018)

    Chapter  Google Scholar 

  6. Basin, D., Krstić, S., Traytel, D.: Almost event-rate independent monitoring of metric dynamic logic. In: Lahiri, S., Reger, G. (eds.) RV 2017. LNCS, vol. 10548, pp. 85–102. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67531-2_6

    Chapter  Google Scholar 

  7. Beer, I., Ben-David, S., Chockler, H., Orni, A., Trefler, R.: Explaining counterexamples using causality. Form. Methods Syst. Des. 40(1), 20–40 (2012). https://doi.org/10.1007/s10703-011-0132-2

    Article  MATH  Google Scholar 

  8. Christakis, M., Heizmann, M., Mansur, M.N., Schilling, C., Wüstholz, V.: Semantic fault localization and suspiciousness ranking. In: Vojnar, T., Zhang, L. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, pp. 226–243. Springer International Publishing, Cham (2019)

    Chapter  Google Scholar 

  9. Dawes, J.H., Reger, G.: Specification of State and Time Constraints for Runtime Verification of Functions (2018). arXiv:1806.02621

  10. Dawes, J.H., Reger, G.: Specification of temporal properties of functions for runtime verification. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, pp. 2206–2214. SAC 2019. ACM, New York, NY, USA (2019). https://doi.org/10.1145/3297280.3297497

  11. Dawes, J.H., Reger, G., Franzoni, G., Pfeiffer, A., Govi, G.: VyPR2: a framework for runtime verification of python web services. In: Vojnar, T., Zhang, L. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, pp. 98–114. Springer International Publishing, Cham (2019)

    Chapter  Google Scholar 

  12. Donzé, A., Maler, O.: Robust satisfaction of temporal logic over real-valued signals. In: Chatterjee, K., Henzinger, T.A. (eds.) Formal Modeling and Analysis of Timed Systems, pp. 92–106. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  13. Ferrère, T., Maler, O., Ničković, D.: Trace diagnostics using temporal implicants. In: Finkbeiner, B., Pu, G., Zhang, L. (eds.) Automated Technology for Verification and Analysis, pp. 241–258. Springer International Publishing, Cham (2015)

    Chapter  Google Scholar 

  14. Groce, A., Chaki, S., Kroening, D., Strichman, O.: Error explanation with distance metrics. Int. J. Softw. Tools Technol. Transfer 8(3), 229–247 (2006). https://doi.org/10.1007/s10009-005-0202-0

    Article  Google Scholar 

  15. Havelund, K., Reger, G.: Specification of parametric monitors - quantified event automata versus rule systems. In: Formal Modeling and Verification of Cyber-Physical Systems (2015)

    Google Scholar 

  16. Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance approach for java programs. Form. Methods Syst. Des. 24(2), 129–155 (2004). https://doi.org/10.1023/B:FORM.0000017719.43755.7c

    Article  MATH  Google Scholar 

  17. Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Logic Algebr. Program. 78(5), 293–303 (2009). https://doi.org/10.1016/j.jlap.2008.08.004. http://www.sciencedirect.com/science/article/pii/S1567832608000775. The 1st Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS 2007)

    Article  Google Scholar 

  18. Meredith, P.O., Jin, D., Griffith, D., Chen, F., Rosu, G.: An overview of the MOP runtime verification framework. STTT 14(3), 249–289 (2012). https://doi.org/10.1007/s10009-011-0198-6

    Article  Google Scholar 

  19. Reger, G.: Suggesting edits to explain failing traces. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 287–293. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23820-3_20

    Chapter  Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987). https://doi.org/10.1016/0004-3702(87)90062-2,. http://www.sciencedirect.com/science/article/pii/0004370287900622

    Article  MathSciNet  MATH  Google Scholar 

  22. Renieris, M., Reiss, S.P.: Fault localization with nearest neighbor queries. In: Proceedings of the 18th IEEE International Conference on Automated Software Engineering, ASE 2003, pp. 30–39. IEEE Press, Piscataway, NJ, USA (2003). https://doi.org/10.1109/ASE.2003.1240292

  23. Reps, T., Ball, T., Das, M., Larus, J.: The use of program profiling for software maintenance with applications to the year 2000 problem. In: Jazayeri, M., Schauer, H. (eds.) Software Engineering – ESEC/FSE 1997, pp. 432–449. Springer, Berlin Heidelberg, Berlin, Heidelberg (1997)

    Chapter  Google Scholar 

  24. Signoles, J.: E-ACSL: Executable ANSI/ISO C Specification Language, version 1.5-4, March 2014. frama-c.com/download/e-acsl/e-acsl.pdf

  25. de Souza, H.A., Chaim, M.L., Kon, F.: Spectrum-based software fault localization: A survey of techniques, advances, and challenges. CoRR abs/1607.04347 (2016). http://arxiv.org/abs/1607.04347

  26. Wong, W.E., Gao, R., Li, Y., Abreu, R., Wotawa, F.: A survey on software fault localization. IEEE Trans. Softw. Eng. 42(8), 707–740 (2016). https://doi.org/10.1109/TSE.2016.2521368

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Joshua Heneage Dawes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Dawes, J.H., Reger, G. (2019). Explaining Violations of Properties in Control-Flow Temporal Logic. In: Finkbeiner, B., Mariani, L. (eds) Runtime Verification. RV 2019. Lecture Notes in Computer Science(), vol 11757. Springer, Cham. https://doi.org/10.1007/978-3-030-32079-9_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-32079-9_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-32078-2

  • Online ISBN: 978-3-030-32079-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics