Advertisement

Seamless Interactive Program Verification

  • Sarah GrebingEmail author
  • Jonas Klamroth
  • Mattias UlbrichEmail author
Conference paper
  • 32 Downloads
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

References

  1. 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_4CrossRefGoogle Scholar
  2. 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_53CrossRefGoogle Scholar
  3. 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. 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-5CrossRefGoogle Scholar
  5. 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-9zbMATHGoogle Scholar
  6. 6.
    Schneiderman, B.: Direct manipulation. A step beyond programming languages. IEEE Trans. Comput. 16(8), 57–69 (1983)Google Scholar
  7. 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_12CrossRefGoogle Scholar
  8. 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_3CrossRefGoogle Scholar
  9. 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. 10.
    Molich, R., Nielsen, J.: Improving a human-computer dialogue. Commun. ACM 33(3), 338–348 (1990)CrossRefGoogle Scholar
  11. 11.
    Nielsen, J.: 10 usability heuristics for user interface design (1995)Google Scholar
  12. 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_35CrossRefGoogle Scholar
  13. 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_20CrossRefzbMATHGoogle Scholar
  14. 14.
    Knuth, D.E.: Literate programming. Comput. J. 27(2), 97–111 (1984)CrossRefGoogle Scholar
  15. 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. 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_1CrossRefGoogle Scholar
  17. 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)MathSciNetCrossRefGoogle Scholar
  18. 18.
    Grebing, S.: User interaction in interactive deductive program verification. Ph.D. thesis, Karlsruhe Institute of Technology (2019, to appear)Google Scholar
  19. 19.
    Beyer, H., Holtzblatt, K.: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco (1998)Google Scholar
  20. 20.
    Benyon, D.: Designing Interactive Systems: A Comprehensive Guide to HCI andInteraction Design. Addison Wesley (2010)Google Scholar
  21. 21.
    Kuckartz, U.: Qualitative Inhaltsanalyse. Computerunterstützung. Grundlagentexte Methoden. Beltz Juventa, Methoden, Praxis (2014)Google Scholar
  22. 22.
    Easthaughffe, K.A.: Support for interactive theorem proving: some design principles and their application. In: UITP 1998 (1998)Google Scholar
  23. 23.
    Dix, A., Finlay, J., Abowd, G., Beale, R.: Human-Computer Interaction. Prentice-Hall, Inc. (2004)Google Scholar
  24. 24.
    Tognazzini, B.: First Principles of Interaction Design (rev. and exp.) (1987–2014)Google Scholar
  25. 25.
    Ben Shneiderman, C.P.: Designing the User Interface: Strategies for Effective Human-Computer Interaction. Pearson (2005)Google Scholar
  26. 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. 27.
    Haneberg, D., et al.: The user interface of the KIV verification system - a system description. In: UITP 2005 (2005)Google Scholar
  28. 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_25CrossRefGoogle Scholar
  29. 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_8CrossRefGoogle Scholar
  30. 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. 31.
    Platzer, A.: Logical Foundations of Cyber-Physical Systems. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-63588-0CrossRefzbMATHGoogle Scholar
  32. 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_36CrossRefGoogle Scholar
  33. 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)CrossRefGoogle Scholar
  34. 34.
    Dailler, S., Marché, C., Moy, Y.: Lightweight interactive proving inside an automatic program verifier. F-IDE 2018, 1–15 (2018)Google Scholar
  35. 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. 36.
    Leino, K.R.M., Wüstholz, V.: The Dafny integrated development environment. In: F-IDE 2014. EPTCS, vol. 149, pp. 3–15 (2014)CrossRefGoogle Scholar
  37. 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_11CrossRefGoogle Scholar
  38. 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. 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_25CrossRefGoogle Scholar
  40. 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_4CrossRefGoogle Scholar
  41. 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_6CrossRefGoogle Scholar
  42. 42.
    Kirakowski, J.: The use of questionnaire methods for usability assessment (1994)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.Karlsruhe Institute of TechnologyKarlsruheGermany
  2. 2.FZI Research Center for Information TechnologyKarlsruheGermany

Personalised recommendations