Skip to main content

Seamless Interactive Program Verification

  • Conference paper
  • First Online:

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

Abstract

Deductive program verification has made considerable progress in recent years. Automation is the goal, but it is apparent that there will always be challenges that cannot be verified fully automatically, but require some form of user input. We present a novel user interaction concept that allows the user to interact with the verification system on different abstraction levels and on different verification/proof artifacts. The elements of the concept are based on the findings of qualitative user studies we conducted amongst users of interactive deductive program verification systems. Moreover, the concept implements state-of-the-art user interaction principles. We prototypically implemented our concept as an interactive verification tool for Dafny programs.

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

Buying options

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

Learn about institutional subscriptions

Notes

  1. 1.

    Further details can also be found https://formal.iti.kit.edu/~grebing/SWC.

  2. 2.

    Available at https://github.com/mattulbrich/dive.

References

  1. Beckert, B., Bormer, T., Klebanov, V.: Improving the usability of specification languages and methods for annotation-based verification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 61–79. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25271-6_4

    Chapter  Google Scholar 

  2. Beckert, B., Bormer, T., Grahl, D.: Deductive verification of legacy code. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 749–765. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47166-2_53

    Chapter  Google Scholar 

  3. Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P.H., Ulbrich, M. (eds.): Deductive Software Verification – The KeY Book: From Theory to Practice. LNCS, vol. 10001. Springer, Heidelberg (2016)

    Google Scholar 

  4. Bertot, Y., Castran, P.: Interactive Theorem Proving and Program Development: Coq’Art The Calculus of Inductive Constructions. Texts in Theoretical Computer Science an EATCS Series, 1st edn. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-662-07964-5

    Book  Google Scholar 

  5. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45949-9

    MATH  Google Scholar 

  6. Schneiderman, B.: Direct manipulation. A step beyond programming languages. IEEE Trans. Comput. 16(8), 57–69 (1983)

    Google Scholar 

  7. Wenzel, M.: Isar—a generic interpretative approach to readable formal proof documents. In: Bertot, Y., Dowek, G., Théry, L., Hirschowitz, A., Paulin, C. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 167–183. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48256-3_12

    Chapter  Google Scholar 

  8. Paulin-Mohring, C.: Introduction to the Coq proof-assistant for practical software verification. In: Meyer, B., Nordio, M. (eds.) LASER 2011. LNCS, vol. 7682, pp. 45–95. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-35746-6_3

    Chapter  Google Scholar 

  9. Nielsen, J.: Enhancing the explanatory power of usability heuristics. In: SIGCHI Conference on Human Factors in Computing Systems, CHI 1994, ACM, pp. 152–158 (1994)

    Google Scholar 

  10. Molich, R., Nielsen, J.: Improving a human-computer dialogue. Commun. ACM 33(3), 338–348 (1990)

    Article  Google Scholar 

  11. Nielsen, J.: 10 usability heuristics for user interface design (1995)

    Google Scholar 

  12. Cok, D.R.: OpenJML: JML for Java 7 by extending OpenJDK. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 472–479. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-20398-5_35

    Chapter  Google Scholar 

  13. Leino, K.R.M.: Dafny: an automatic program verifier for functional correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR 2010. LNCS (LNAI), vol. 6355, pp. 348–370. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-17511-4_20

    Chapter  MATH  Google Scholar 

  14. Knuth, D.E.: Literate programming. Comput. J. 27(2), 97–111 (1984)

    Article  Google Scholar 

  15. Bormer, T.: Advancing deductive program-level verification for real-world application: lessons learned from an industrial case study. Ph.D. thesis, Karlsruhe Institute of Technology (2014)

    Google Scholar 

  16. Beckert, B., Grebing, S., Böhl, F.: A usability evaluation of interactive theorem provers using focus groups. In: Canal, C., Idani, A. (eds.) SEFM 2014. LNCS, vol. 8938, pp. 3–19. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-15201-1_1

    Chapter  Google Scholar 

  17. Beckert, B., Grebing, S., Böhl, F.: How to put usability into focus: using focus groups to evaluate the usability of interactive theorem provers. In: UITP 2014. EPTCS, vol. 167, pp. 4–13 (2014)

    Article  MathSciNet  Google Scholar 

  18. Grebing, S.: User interaction in interactive deductive program verification. Ph.D. thesis, Karlsruhe Institute of Technology (2019, to appear)

    Google Scholar 

  19. Beyer, H., Holtzblatt, K.: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco (1998)

    Google Scholar 

  20. Benyon, D.: Designing Interactive Systems: A Comprehensive Guide to HCI andInteraction Design. Addison Wesley (2010)

    Google Scholar 

  21. Kuckartz, U.: Qualitative Inhaltsanalyse. Computerunterstützung. Grundlagentexte Methoden. Beltz Juventa, Methoden, Praxis (2014)

    Google Scholar 

  22. Easthaughffe, K.A.: Support for interactive theorem proving: some design principles and their application. In: UITP 1998 (1998)

    Google Scholar 

  23. Dix, A., Finlay, J., Abowd, G., Beale, R.: Human-Computer Interaction. Prentice-Hall, Inc. (2004)

    Google Scholar 

  24. Tognazzini, B.: First Principles of Interaction Design (rev. and exp.) (1987–2014)

    Google Scholar 

  25. Ben Shneiderman, C.P.: Designing the User Interface: Strategies for Effective Human-Computer Interaction. Pearson (2005)

    Google Scholar 

  26. Blackwell, A., Green, T.R.: A cognitive dimensions questionnaire (v. 5.1.1), February 2007. www.cl.cam.ac.uk/~afb21/CognitiveDimensions/CDquestionnaire.pdf

  27. Haneberg, D., et al.: The user interface of the KIV verification system - a system description. In: UITP 2005 (2005)

    Google Scholar 

  28. Balser, M., Reif, W., Schellhorn, G., Stenzel, K., Thums, A.: Formal system development with KIV. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 363–366. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-46428-X_25

    Chapter  Google Scholar 

  29. Filliâtre, J.-C., Paskevich, A.: Why3 — where programs meet provers. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 125–128. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37036-6_8

    Chapter  Google Scholar 

  30. Mitsch, S., Platzer, A.: The KeYmaera X proof IDE - concepts on usability in hybrid systems theorem proving. In: F-IDE 2016. EPTCS, vol. 240, pp. 67–81. Open Publishing Association (2017)

    Google Scholar 

  31. Platzer, A.: Logical Foundations of Cyber-Physical Systems. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-63588-0

    Book  MATH  Google Scholar 

  32. Fulton, N., Mitsch, S., Quesel, J.-D., Völp, M., Platzer, A.: KeYmaera X: an axiomatic tactical theorem prover for hybrid systems. In: Felty, A.P., Middeldorp, A. (eds.) CADE 2015. LNCS (LNAI), vol. 9195, pp. 527–538. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-21401-6_36

    Chapter  Google Scholar 

  33. Hentschel, M., Bubel, R., Hähnle, R.: The symbolic execution debugger (SED): a platform for interactive symbolic execution, debugging, verification and more. Int. J. Softw. Tools Technol. Transf. 21, 485–513 (2018)

    Article  Google Scholar 

  34. Dailler, S., Marché, C., Moy, Y.: Lightweight interactive proving inside an automatic program verifier. F-IDE 2018, 1–15 (2018)

    Google Scholar 

  35. Dahlweid, M., Moskal, M., Santen, T., Tobies, S., Schulte, W.: VCC: contract-based modular verification of concurrent C. In: International Conference on Software Engineering - Companion Volume, pp. 429–430 (2009)

    Google Scholar 

  36. Leino, K.R.M., Wüstholz, V.: The Dafny integrated development environment. In: F-IDE 2014. EPTCS, vol. 149, pp. 3–15 (2014)

    Article  Google Scholar 

  37. Beckert, B., Grebing, S., Ulbrich, M.: An interaction concept for program verification systems with explicit proof object. Hardware and Software: Verification and Testing. LNCS, vol. 10629, pp. 163–178. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70389-3_11

    Chapter  Google Scholar 

  38. Grebing, S., Luong, A.T.T., Weigl, A.: Adding text-based interaction to a direct-manipulation interface for program verification - lessons learned. In: UITP 2018 (2018, to appear)

    Google Scholar 

  39. Christakis, M., Leino, K.R.M., Müller, P., Wüstholz, V.: Integrated environment for diagnosing verification errors. In: Chechik, M., Raskin, J.-F. (eds.) TACAS 2016. LNCS, vol. 9636, pp. 424–441. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49674-9_25

    Chapter  Google Scholar 

  40. McMillan, K.L., Padon, O.: Deductive verification in decidable fragments with Ivy. In: Podelski, A. (ed.) SAS 2018. LNCS, vol. 11002, pp. 43–55. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99725-4_4

    Chapter  Google Scholar 

  41. Laugwitz, B., Held, T., Schrepp, M.: Construction and evaluation of a user experience questionnaire. In: Holzinger, A. (ed.) USAB 2008. LNCS, vol. 5298, pp. 63–76. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89350-9_6

    Chapter  Google Scholar 

  42. Kirakowski, J.: The use of questionnaire methods for usability assessment (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Sarah Grebing or Mattias Ulbrich .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Grebing, S., Klamroth, J., Ulbrich, M. (2020). Seamless Interactive Program Verification. In: Chakraborty, S., Navas, J. (eds) Verified Software. Theories, Tools, and Experiments. VSTTE 2019. Lecture Notes in Computer Science(), vol 12031. Springer, Cham. https://doi.org/10.1007/978-3-030-41600-3_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-41600-3_6

  • Published:

  • Publisher Name: Springer, Cham

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

  • Online ISBN: 978-3-030-41600-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics