Skip to main content

The Kiv-approach to software verification

  • Tools
  • Chapter
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1009))

Abstract

This paper presents a particular approach to the design and verification of large sequential systems. It is based on structured algebraic specifications and stepwise refinement by program modules. The approach is implemented in Kiv (Karlsruhe Interactive Verifier), and supports the entire design process starting from formal specifications and ending with verified code. Its main characteristics are a strict decompositional design discipline for modular systems, a powerful proof component, and an evolutionary verification model supporting incremental error correction and verification. We present the design methodology for modular systems, a feasible verification method for single modules, and an evolutionary verification technique based on reuse of proofs. We report on the current performance of the system, compare it to others in the field, and discuss future perspectives.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G.M. Adelson-Velskii, Y.M., Landis: An Algorithm for the Organization of Information. Soviet Math. Dokl. 3, 1962, pp. 1259–1262

    Google Scholar 

  2. G. Antoniou, On the Verification of Modular Programs, Dissertation Universität Osnabrück, 1989 (in German).

    Google Scholar 

  3. S. Biundo, B. Hummel, D. Hutter, C. Walther: The Karlsruhe Induction Theorem Proving System. 8th International Conference on Automated Deduction, Springer LNCS 230, 1986

    Google Scholar 

  4. R.S. Boyer, J S. Moore, A Computational Logic. Academic Press, 1979

    Google Scholar 

  5. M. Broy et al.: The Requirement and Design Specification Language Spectrum, An Informal Introduction. Technical report, TU München, 1993

    Google Scholar 

  6. Constable, Allen, Bromley, Cleaveland, Cremer, Harper, Howe, Knoblock, Mendler, Panagaden, Sasaki, Smith, Implementing Mathematics with the Nuprl Proof Development System, Prentice Hall, 1986.

    Google Scholar 

  7. H. Ehrig, B. Mahr: Fundamentals of Algebraic Specification 1, Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science, Vol. 6, Springer 1985

    Google Scholar 

  8. H. Ehrig, B. Mahr: Fundamentals of Algebraic Specification 2, Module Specifications and Constraints. EATCS Monographs on Theoretical Computer Science, Vol. 21, Springer 1990.

    Google Scholar 

  9. Th. Fuchß, W. Reif, G. Schellhorn, K. Stenzel, Three Selected Case Studies in Verification, Broy, Jähnichen (eds.), Korso, Correct Software by Formal Methods, Springer LNCS, 1995 (in this volume).

    Google Scholar 

  10. J. Goguen, R.M. Burstall, CAT, a system for the structured elaboration of correct programs from structured specifications, Technical report, SRI, 1980.

    Google Scholar 

  11. V. Giarratana, F. Gimona, U. Montanari: Observability Concepts in Abstract Data Type Specifications. 5th Symposium Math. Foundations of Computer Science (1976), Springer LNCS 45

    Google Scholar 

  12. M. J. Gordon, HOL: A Proof Generating System for Higher-order Logic, In G. Birtwistle and P.A. Subrahmanyam, editors, VLSI Specification and Synthesis. Kluwer Academic Publishers, 1988.

    Google Scholar 

  13. J. Goguen, J. Thatcher, E. Wagner: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. Current Trends in Programming Methodology IV, Yeh, R. (Ed.), Prentice-Hall, Englewood Cliffs, 1978, pp. 80–149

    Google Scholar 

  14. D. Harel, First Order Dynamic Logic. Springer LNCS 1979.

    Google Scholar 

  15. R. Hennicker, Observational Implementation, STACS 89, Paderborn, Springer LNCS, 1989.

    Google Scholar 

  16. R. Hettler, D. Nazareth, F. Regensburger, O. Slotosch: AVL Trees Revisited: A Case Study in Spectrum. In Broy, Jähnichen (eds.), Korso, Correct Software by Formal Methods. Springer LNCS, 1994. (In this volume).

    Google Scholar 

  17. C.A.R. Hoare, Proof of Correctness of Data Representations, Acta Informatica 1,4, 1972.

    Article  Google Scholar 

  18. M. Heisel, W. Reif, W. Stephan, A Dynamic Logic for Program Verification. “Logic at Botik” 89, Meyer, Taitslin (eds.), Springer LNCS 1989.

    Google Scholar 

  19. M. Heisel, W. Reif, W. Stephan, Tactical Theorem Proving in Program Verification. 10th International Conference on Automated Deduction, Kaiserslautern, FRG, Springer LNCS 1990.

    Google Scholar 

  20. M. Heisel, W. Reif, W. Stephan: Formal Software Development in the Kiv System. Automating Software Design, Lowry, McCartney (eds), AAAI press 1991

    Google Scholar 

  21. R. Heckmann, G. Sander, TrafoLa-H Reference Manual, Hoffmann, Krieg-Brückner (eds.), Program Development by Specification and Transformation. The Prospectra Methodology, Language Family, and System, SLNCS 680, 1993.

    Google Scholar 

  22. C.B. Jones, Systematic Program Development, Gehani, Mc Gettrick (eds.), Software Specification Techniques, Addison-Wesley, 1986.

    Google Scholar 

  23. M. Kaufmann, A User's Manual for an Interactive Enhancement to the Boyer-Moore Theorem Prover. Technical Report CLI 19, CLInc, 1988

    Google Scholar 

  24. Th. Kolbe, C. Walther, Reuse of Proofs, 11th European Conference on Artificial Intelligence, Amsterdam, NL, Cohn (ed.), John Wiley & Sons, 1994.

    Google Scholar 

  25. J S. Moore, Piton, A Verified Assembly Level Language. Technical Report 22, Computational Logic, Inc., Austin, Texas 1988.

    Google Scholar 

  26. R. Nakajima, M. Honda, H. Nakahara, Hierarchical Program Specification and Verification — a Many-sorted Logical Approach, Acta Informatica 14, 1980.

    Google Scholar 

  27. Owre, Rushby, Shankar, User Guide for the PVS Specification and Verification System, Language, and Proof Checker (Beta Release), Computer Science Laboratory, SRI International, Menlo Park, CA 94025, USA, 1993.

    Google Scholar 

  28. S. Owen, Analogy for Automated Reasoning, Perspectives in Artificial Intelligence, Academic Press, 1990.

    Google Scholar 

  29. L.C. Paulson, Isabelle: A Generic Theorem Prover, SLNCS 828, 1994.

    Google Scholar 

  30. B. Pase, S. Kromodimoeljo: m-NEVER System Summary. Proc. 9th International Conference on Automated Deduction, E. Lusk, R. Overbeek (eds), Springer LNCS 310 (1988)

    Google Scholar 

  31. P. Pepper, M. Wirsing, et al. A Method for the Development of Correct Software. In Broy, Jähnichen (eds.), Korso, Correct Software by Formal Methods. Springer LNCS 1995. (In this volume).

    Google Scholar 

  32. W. Reif, Correctness of Specifications and Generic Modules, doctoral thesis, Department of Computer Science, Univ. of Karlsruhe, 1991, (in German).

    Google Scholar 

  33. W. Reif, The Kiv-System: Systematic Construction of Verified Software. 11th CADE, Albany, NY, USA, D. Kapur (ed.), Springer LNCS 1992.

    Google Scholar 

  34. W. Reif, Verification of Large Software Systems. Conference on Foundations of Software Technology and Theoretical Computer Science, New Dehli, India, Shyamasundar (ed.), Springer LNCS 1992.

    Google Scholar 

  35. W. Reif, Correctness of Generic Modules. Symposium on Logical Foundations of Computer Science, “Logic at Tver”, Tver, Russia, Nerode, Taitslin (eds.), Springer LNCS 1992.

    Google Scholar 

  36. W. Reif, K. Stenzel, Reuse of Proofs in Software Verification. Technical report No. 26/92, Fakultät für Informatik, Universität Karlsruhe.

    Google Scholar 

  37. W. Reif, K. Stenzel, Reuse of Proofs in Software Verification, Conference on Foundations of Software Technology and Theoretical Computer Science, Bombay, India, Shyamasundar (ed.), Springer LNCS 761, 1993.

    Google Scholar 

  38. G. Schellhorn: Examples for the Verification of Modules in Dynamic Logic. Institut für Logik, Komplexität und Deduktionssysteme, University of Karlsruhe 1989, (in German)

    Google Scholar 

  39. D.T. Sanella, A. Tarlecki, Toward formal development of programs from algebraic specifications: implementations revisited, Acta Informatica 25, 1988.

    Google Scholar 

  40. K. Stenzel: Design and Implementation of a Proof Strategy for Module Verification in the Kiv System. Institut für Logik, Komplexität und Deduktionssysteme, University of Karlsruhe 1990, (in German).

    Google Scholar 

  41. K. Stenzel, Reuse of Failed Proofs in Software Verification, diploma thesis, Institut für Logik, Komplexität und Deduktionssysteme, University of Karlsruhe, 1992 (In German).

    Google Scholar 

  42. D.T. Sanella, M. Wirsing, Implementation of Parameterised Specifications, Proceedings 9th ICALP, Aarhus, Denmark, Springer LNCS 1982.

    Google Scholar 

  43. D.T. Sanella, M. Wirsing, A kernel language for algebraic specification and implementation, Coll. on Foundations of Computation Theory, Linköping, Sweden, Lecture Notes in Computer Science 158, 1983.

    Google Scholar 

  44. M. Wirsing, M. Broy, A modular framework for algebraic specification and implementation, Invited paper, Diaz, Orejas (eds.) TAPSOFT 89, Springer Lecture Notes in Computer Science 351, 1989.

    Google Scholar 

  45. M. Wirsing: Algebraic Specification, In Handbook of Theoretical Computer Science. Volume B, Formal Models and Semantics, Jan van Leeuwen (ed.), Elsevier, 1990, pp. 675–788

    Google Scholar 

  46. M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy: On Hierarchies of Abstract Data Types. Acta Informatica 20 (1983), pp. 1–33

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manfred Broy Stefan Jähnichen

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Reif, W. (1995). The Kiv-approach to software verification. In: Broy, M., Jähnichen, S. (eds) KORSO: Methods, Languages, and Tools for the Construction of Correct Software. Lecture Notes in Computer Science, vol 1009. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015471

Download citation

  • DOI: https://doi.org/10.1007/BFb0015471

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60589-8

  • Online ISBN: 978-3-540-47802-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics