Skip to main content

HStriver: A Very Functional Extensible Tool for the Runtime Verification of Real-Time Event Streams

  • Conference paper
  • First Online:
Formal Methods (FM 2021)

Abstract

We present HStriver, an extensible stream runtime verification tool for event streams. The tool consists of a runtime verification engine for (1) real-time events streams where individual observations and verdicts can occur at arbitrary times, and (2) rich data in the observations and verdicts. This rich setting allows, for example, encoding as HStriver specifications quantitative semantics of logics like STL, including different notions of robustness.

The keystone of stream runtime verification (SRV) is the clean separation between temporal dependencies and data computations. To encode the data values and computations involved in the monitoring process we borrow (almost) arbitrary data-types from Haskell. These types are transparently lifted to the specification language and incorporated in the engine, so they can be used as the types of the inputs (observations), outputs (verdicts), and intermediate streams. The resulting extensible language is then embedded, alongside the temporal evaluation engine (which is agnostic to the types) into Haskell as an embedded Domain Specific Langauge (eDSL). Morever, the availability of functional features in the specification language enables the direct implementation of desirable features in HStriver like parametrization (using functions that return stream specifications), etc. The resulting tool is a flexible and extensible stream runtime verification engine for real-time streams. We illustrate the use of the tool on many sophisticated real-time specifications, including realistic signal temporal logic (STL) properties of existing designs.

The tool is available open source at http://github.com/imdea-software/hstriver. This work was funded in part by the Madrid Regional Government under project “S2018/TCS-4339 (BLOQUES-CM)”, by Spanish National Project “BOSCO (PGC2018-102210-B-100)”.

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 89.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 119.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.

    See the tool webpage https://software.imdea.org/hstriver to find example specifications along with input and output data.

  2. 2.

    The full code or all examples and libraries in this section can be found in https://software.imdea.org/hstriver.

References

  1. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Proceedings of the 5th Int’l Conference on Verification, Model Checking and Abstract Interpretation (VMCAI’04). LNCS, vol. 2937, pp. 44–57. Springer (2004). https://doi.org/10.1007/978-3-540-24622-0_5

  2. Barringer, H., Havelund, K.: Tracecontract: A scala DSL for trace analysis. In: Proceedings of the 17th Int’l Symposium on Formal Methods (FM’11). LNCS, vol. 6664, pp. 57–72. Springer (2011). https://doi.org/10.1007/978-3-642-21437-0_7

  3. Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from eagle to ruleR. In: Proceedings of the 7th Int’l Workshop on Runtime Verification (RV’07). LNCS, vol. 4839, pp. 111–125. Springer (2007). https://doi.org/10.1007/978-3-540-77395-5_10

  4. Bartocci, E., Falcone, Y. (eds.): Lectures on Runtime Verification. LNCS, vol. 10457. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-75632-5

  5. Basin, D., Klaedtke, M.H.F., Zalinescu, E.: MONPOLY: monitoring usage-control policies. In: Proceedings of the 2nd Int’l Conference on Runtime Verification (RV’11). LNCS, vol. 7186, pp. 360–364. Springer (2011). https://doi.org/10.1007/978-3-642-29860-8_27

  6. Basin, D.A., Klaedtke, F., Zalinescu, E.: The MonPoly monitoring tool. In: Proceedings of the Int’l Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools (RV-CUBES), pp. 19–28. Kalpa Publications in Computing, EasyChair (2017). https://doi.org/10.29007/89hs

  7. Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 14 (2011). https://doi.org/10.1145/2000799.2000800

  8. Berry, G.: Proof, language, and interaction: essays in honour of Robin Milner, chap. The foundations of Esterel, pp. 425–454. MIT Press (2000). https://doi.org/10.7551/mitpress/5641.001.0001

  9. Ceresa, M., Gorostiaga, F., Sánchez, C.: Declarative stream runtime verification (hLola). In: Proceedings of the 18th Asian Symposium on Programming Languages and Systems (APLAS’20). LNCS, vol. 12470, pp. 25–43. Springer (2020). https://doi.org/10.1007/978-3-030-64437-6_2

  10. Convent, L., Hungerecker, S., Leucker, M., Scheffel, T., Schmitz, M., Thoma, D.: TeSSLa: temporal stream-based specification language. In: Proceedings of SBMF’18. LNCS, vol. 11254. Springer (2018). https://doi.org/10.1007/978-3-030-03044-5_10

  11. Cumin, J., Lefebvre, G., Ramparany, F., Crowley, J.: A dataset of routine daily activities in an instrumented home. In: Ubiquitous Computing and Ambient Intelligence, pp. 413–425. Springer International Publishing, Cham (2017). https://doi.org/10.1007/978-3-319-67585-5_43

  12. 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. In: Proceedings of the 12th Int’l Symposium of Temporal Representation and Reasoning (TIME’05), pp. 166–174. IEEE CS Press (2005). https://doi.org/10.1109/TIME.2005.26

  13. Eisner, C., Fisman, D., Havlicek, J., Lustig, Y., McIsaac, A., Campenhout, D.V.: Reasoning with temporal logic on truncated paths. In: Proceedings of the 15th Int’l Conference on Computer Aided Verification (CAV’03). LNCS, vol. 2725, pp. 27–39. Springer (2003). https://doi.org/10.1007/978-3-540-45069-6_3

  14. Falcone, Y., Krstic, S., Reger, G., Traytel, D.: A taxonomy for classifying runtime verification tools. In: Proceedings of the 18th Int’l Conference on Runtime Verification (RV’18). LNCS, vol. 11237, pp. 241–262. Springer (2018). https://doi.org/10.1007/978-3-030-03769-7_14

  15. Faymonville, P., Finkbeiner, B., Schledjewski, M., Schwenger, M., Stenger, M., Tentrup, L., Hazem, T.: StreamLAB: stream-based monitoring of cyber-physical systems. In: Proceedings of the 31st Int’l Conference on Computer-Aided Verification (CAV’19). LNCS, vol. 11561, pp. 421–431. Springer (2019). https://doi.org/10.1007/978-3-030-25540-4_24

  16. Faymonville, P., Finkbeiner, B., Schwenger, M., Torfah, H.: Real-time stream-based monitoring. CoRR abs/1711.03829 (2017). arxiv.org/abs/1711.03829

  17. Gorostiaga, F., Danielsson, L.M., Sánchez, C.: Unifying the time-event spectrum for stream runtime verification. In: Proceedings of 20th Int’l Conference on Runtime Verification (RV’20). LNCS, vol. 12399, pp. 462–481. Springer (2020). https://doi.org/10.1007/978-3-030-60508-7_26

  18. Gorostiaga, F., Sánchez, C.: Striver: Stream runtime verification for real-time event-streams. In: Proceedings of the 18th Int’l Conference on Runtime Verification (RV’18). LNCS, vol. 11237, pp. 282–298. Springer (2018). https://doi.org/10.1007/978-3-030-03769-7_16

  19. Gorostiaga, F., Sánchez, C.: HLola: a very functional tool for extensible stream runtime verification. In: Proceedings of the 27th Int’l Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’21). Part II, pp. 349–356. LNCS, Springer (2021). https://doi.org/10.1007/978-3-030-72013-1_18

  20. Gorostiaga, F., Sánchez, C.: Stream runtime verification of real-time event streams with the Striver language. Int. J. Softw. Tools Technol. Transfer 23(2), 157–183 (2021). https://doi.org/10.1007/s10009-021-00605-3

  21. Halbwachs, N., Caspi, P., Pilaud, D., Plaice, J.: Lustre: a declarative language for programming synchronous systems. In: Proceedings of the 14th ACM Symposium on Principles of Programming Languages, pp. 178–188. ACM Press (1987). https://doi.org/10.1145/41625.41641

  22. Hallé, S.: When RV meets CEP. In: Proceedings of RV’16. LNCS, vol. 10012, pp. 68–91. Springer (2016). https://doi.org/10.1007/978-3-319-46982-9_6

  23. Hallé, S., Khoury, R.: Event stream processing with BeepBeep 3. In: Proceedings of the Int’l Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools (RV-CUBES), pp. 81–88. Kalpa Publications in Computing, EasyChair (2017). https://doi.org/10.29007/4cth

  24. Havelund, K.: Rule-based runtime verification revisited. Int. J. Softw. Tools Technol. Transfer 17(2), 143–170 (2014). https://doi.org/10.1007/s10009-014-0309-2

  25. Havelund, K., Goldberg, A.: Verify your runs. In: Proceedings of VSTTE’05, pp. 374–383. LNCS 4171, Springer (2005). https://doi.org/10.1007/978-3-540-69149-5_40

  26. Havelund, K., Roşu, G.: Synthesizing monitors for safety properties. In: Proceedings of the 8th Int’l Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’02). LNCS, vol. 2280, pp. 342–356. Springer-Verlag (2002). https://doi.org/10.1007/3-540-46002-0_24

  27. Jin, X., Deshmukh, J.V., Kapinski, J., Ueda, K., Butts, K.: Powertrain control verification benchmark. In: Proceedings of the 17th Int’l Conference on Hybrid systems: Computation and Control (HSCC’14), pp. 253–262. ACM (2014). https://doi.org/10.1145/2562059.2562140

  28. Leucker, M., Sánchez, C., Scheffel, T., Schmitz, M., Schramm, A.: TeSSLa: runtime verification of non-synchronized real-time streams. In: Proceedings of the 33rd Symposium on Applied Computing (SAC’18). ACM (2018). https://doi.org/10.1145/3167132.3167338

  29. Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Logic Algebr. Progr. 78(5), 293–303 (2009). https://doi.org/10.1016/j.jlap.2008.08.004

    Article  MATH  Google Scholar 

  30. Maler, O., Nickovic, D.: Monitoring temporal properties of continuous signals. In: Proceedings of FORMATS/FTRTFT 2004. LNCS, vol. 3253, pp. 152–166. Springer (2004). https://doi.org/10.1007/978-3-540-30206-3_12

  31. Manna, Z., Pnueli, A.: Temporal Verification of Reactive Systems. Springer-Verlag (1995). https://doi.org/10.1007/978-1-4612-4222-2

    Article  Google Scholar 

  32. Pike, L., Goodloe, A., Morisset, R., Niller, S.: Copilot: a hard real-time runtime monitor. In: Proceedings of the 1st Int’l Conference on Runtime Verification (RV’10). LNCS, vol. 6418, pp. 345–359. Springer (2010). https://doi.org/10.1007/978-3-642-16612-9_26

  33. Reinbacher, T., Rozier, K.Y., Schumann, J.: Temporal-logic based runtime observer pairs for system health management of real-time systems. In: Proceedings 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 357–372. Springer (2014). https://doi.org/10.1007/978-3-642-54862-8_24

  34. Roşu, G., Havelund, K.: Rewriting-based techniques for runtime verification. Autom. Softw. Eng. 12(2), 151–197 (2005). https://doi.org/10.1007/s10515-005-6205-y

  35. Sánchez, C.: Online and offline stream runtime verification of synchronous systems. In: Proceedings of the 18th Int’l Conference on Runtime Verification (RV’18). LNCS, vol. 11237, pp. 138–163. Springer (2018). https://doi.org/10.1007/978-3-030-03769-7_9

  36. Sen, K., Roşu, G.: Generating optimal monitors for extended regular expressions. In: Electronic Notes in Theoretical Computer Science, vol. 89. Elsevier (2003). https://doi.org/10.1016/S1571-0661(04)81051-X

  37. Stolz, V., Huch, F.: Runtime verification of concurrent Haskell programs. Electron. Notes Theor. Comput. Sci. 113, 201–216 (2005). https://doi.org/10.1016/j.entcs.2004.01.026

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Felipe Gorostiaga .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Gorostiaga, F., Sánchez, C. (2021). 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) Formal Methods. FM 2021. Lecture Notes in Computer Science(), vol 13047. Springer, Cham. https://doi.org/10.1007/978-3-030-90870-6_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-90870-6_30

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-90869-0

  • Online ISBN: 978-3-030-90870-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics