Skip to main content

Verification of large software systems

  • Conference paper
  • First Online:

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

Abstract

This paper presents a formal approach to the specification, construction and automated verification of large software systems. We describe the design methodology, the theory of correctness, the proof strategy for the resulting proof obligations, and the experiences from case studies carried out using the Karlsruhe Interactive Verifier (KIV). The design methodology supports the top-down development of structured algebraic first-order specifications and stepwise implementation of its parts by program modules. The correctness of the resulting modular systems is proved to be compositional. For the correctness of single program modules we give a characterization in terms of Dynamic Logic. This provides a general solution to the correctness problem for implementations of full first-order specifications.

This work was partly sponsored by the BSI-project VSE, and the BMFT-project KORSO.

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. Antoniou, G., Sperschneider, V., On The Verification of Modules, CSL 89, Springer LNCS 440

    Google Scholar 

  2. Adel'son-Vel'skii, G.M., Landis, Y.M., An Algorithm for the Organization of Information, Soviet Math. Dokl. 3, 1962, pp. 1259–1262

    Google Scholar 

  3. Blum, E.K., Ehrig, H., Parisi-Presicce, F., Algebraic Specification of Modules and Their Basic Interconnections, Journal of Computer and System Sciences 34 (1987), pp. 293–339

    Article  Google Scholar 

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

    Google Scholar 

  5. Boyer, R., Moore, J, A Computational Logic, Academic Press, New York 1979

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  8. Eisinger, N., Ohlbach, H.-J., The Markgraf Karl Refutation Procedure (MKRP), 8th Intern. Conference on Automated Deduction, Oxford, England, Siekmann (ed.), Springer LNCS 230, 1986

    Google Scholar 

  9. Fagin, R., Nievergelt, J., Pippenger, N., Strong, H.R., Extendible Hashing — a fast access method for dynamic files, ACM Tans. Database Systems 4 (1979), 315–344

    Article  Google Scholar 

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

    Google Scholar 

  11. Goguen, J., Meseguer, J., Universal Realization, Persistent Interconnection and Implementation of Abstract Modules, Proc. 9th ICALP, 1982, Springer LNCS 45, 265–281

    Google Scholar 

  12. Goguen, J., Thatcher, J., Wagner, E., 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, Engléwood Cliffs, 1978, pp. 80–149

    Google Scholar 

  13. Harel, D., First-Order Dynamic Logic, Springer LNCS 68, 1979

    Google Scholar 

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

    Google Scholar 

  15. Heisel, M., Reif, W., Stephan, W., A Dynamic Logic for Program Verification, Logic at Botik 1989, Springer LNCS 363, pp. 134–145

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  19. Kfoury, A.J., Urzyczyn, P., Necessary and Sufficient Conditions for the Universality of Programming Formalisms, Acta Informatica 22, 347–377 (1985)

    Article  Google Scholar 

  20. Langenstein, B., Verification of Dynamic Hashing, Institut für Logik, Komplexität und Deduktionssysteme, University of Karlsruhe 1991, (in German)

    Google Scholar 

  21. R.E. Milne, Semantic Foundations of RSL, RAISE/CRI/DOC/4/V1, CRI, 1990

    Google Scholar 

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

    Google Scholar 

  23. Padawitz, P., Horn Logic and Rewriting for Functional and Logic Program Design, Universität Passau, Fakultät für Mathematik und Informatik, MIP-9002, März 1990

    Google Scholar 

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

    Google Scholar 

  25. Reif, W., Correctness of Specifications and Generic Modules, Dissertation, University of Karlsruhe, 1991 (in German)

    Google Scholar 

  26. Reif, W., Correctness of Full First-Order Specifications, 4th Conference on Software Engineering and Knowledge Engineering, Capri, Italy, IEEE press, 1992

    Google Scholar 

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

    Google Scholar 

  28. Rushby, J., von Henke, F., Owre, S., An Introduction to formal Specification and Verification Using EHDM, CSL Tech. Report 91/02, SRI, 1991

    Google Scholar 

  29. Schellhorn, G., 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 

  30. Stenzel, K., Design and Implementation of a Proof Strategy for Module Verification in the KIV System, Institut für Logik, Kompl. u. Ded. systeme, University of Karlsruhe 1990, (in German)

    Google Scholar 

  31. Wirsing, M., 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 

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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wolfgang Reif .

Editor information

Rudrapatna Shyamasundar

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Reif, W. (1992). Verification of large software systems. In: Shyamasundar, R. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1992. Lecture Notes in Computer Science, vol 652. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56287-7_109

Download citation

  • DOI: https://doi.org/10.1007/3-540-56287-7_109

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56287-0

  • Online ISBN: 978-3-540-47507-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics