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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
Further details can also be found https://formal.iti.kit.edu/~grebing/SWC.
- 2.
Available at https://github.com/mattulbrich/dive.
References
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
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
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)
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
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
Schneiderman, B.: Direct manipulation. A step beyond programming languages. IEEE Trans. Comput. 16(8), 57–69 (1983)
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
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
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)
Molich, R., Nielsen, J.: Improving a human-computer dialogue. Commun. ACM 33(3), 338–348 (1990)
Nielsen, J.: 10 usability heuristics for user interface design (1995)
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
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
Knuth, D.E.: Literate programming. Comput. J. 27(2), 97–111 (1984)
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)
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
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)
Grebing, S.: User interaction in interactive deductive program verification. Ph.D. thesis, Karlsruhe Institute of Technology (2019, to appear)
Beyer, H., Holtzblatt, K.: Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann Publishers Inc., San Francisco (1998)
Benyon, D.: Designing Interactive Systems: A Comprehensive Guide to HCI andInteraction Design. Addison Wesley (2010)
Kuckartz, U.: Qualitative Inhaltsanalyse. Computerunterstützung. Grundlagentexte Methoden. Beltz Juventa, Methoden, Praxis (2014)
Easthaughffe, K.A.: Support for interactive theorem proving: some design principles and their application. In: UITP 1998 (1998)
Dix, A., Finlay, J., Abowd, G., Beale, R.: Human-Computer Interaction. Prentice-Hall, Inc. (2004)
Tognazzini, B.: First Principles of Interaction Design (rev. and exp.) (1987–2014)
Ben Shneiderman, C.P.: Designing the User Interface: Strategies for Effective Human-Computer Interaction. Pearson (2005)
Blackwell, A., Green, T.R.: A cognitive dimensions questionnaire (v. 5.1.1), February 2007. www.cl.cam.ac.uk/~afb21/CognitiveDimensions/CDquestionnaire.pdf
Haneberg, D., et al.: The user interface of the KIV verification system - a system description. In: UITP 2005 (2005)
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
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
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)
Platzer, A.: Logical Foundations of Cyber-Physical Systems. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-63588-0
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
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)
Dailler, S., Marché, C., Moy, Y.: Lightweight interactive proving inside an automatic program verifier. F-IDE 2018, 1–15 (2018)
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)
Leino, K.R.M., Wüstholz, V.: The Dafny integrated development environment. In: F-IDE 2014. EPTCS, vol. 149, pp. 3–15 (2014)
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
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)
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
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
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
Kirakowski, J.: The use of questionnaire methods for usability assessment (1994)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
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)