Skip to main content

Interpreter verification for a functional language

  • Semantics
  • Conference paper
  • First Online:
Foundation of Software Technology and Theoretical Computer Science (FSTTCS 1994)

Abstract

Starting from a denotational and a term-rewriting based operational semantics (an interpreter) for a small functional language, we present a correctness proof of the interpreter w.r.t. the denotational semantics. The complete proof has been formalized in the logic LCF and checked with the theorem prover Isabelle. Based on this proof, conclusions for mechanical theorem proving in general are drawn.

Research supported by ESPRIT BRA 6453, TYPES

Research supported by DFG grant Br 887/4-2, Deduktive Programmentwicklung

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Aagaard and M. Leeser. Verifying a logic synthesis tool in Nuprl: A case study in software verification. In K. G. Larsen, editor, Proc. 4th Workshop Computer Aided Verification, volume 663 of Lect. Notes in Comp. Sci. Springer-Verlag, 1992.

    Google Scholar 

  2. R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, 1988.

    Google Scholar 

  3. R. S. Boyer and Y. Yu. Automated correctness proofs of machine code programs for a commercial microprocessor. In D. Kapur, editor, Proc. 11th Int. Conf. Automated Deduction, volume 607 of Lect. Notes in Comp. Sci., pages 416–430. Springer-Verlag, 1992.

    Google Scholar 

  4. M. Broy. Experiences with software specification and verification using LP, the Larch proof assistant. Technical Report SRC 93, DIGITAL Systems Research Center, 1992.

    Google Scholar 

  5. B. Buth, K.-H. Buth, A. Fränzle, B. v. Karger, Y. Lakhmeche, H. Langmaack, and M. Müller-Olm. Provably correct compiler developement and implementation. In U. Kastens and P. Pfahler, editors, Compiler Construction, volume 641 of Lect. Notes in Comp. Sci. Springer-Verlag, 1992.

    Google Scholar 

  6. P. Curzon. A verified compiler for a structured assembly language. In M. Archer, J. J. Joyce, K. N. Levitt, and P. J. Windley, editors, Proc. 1991 Int. Workshop on the HOL Theorem Proving System and its Applications, pages 253–262. IEEE Computer Society Press, 1992.

    Google Scholar 

  7. M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF: a Mechanised Logic of Computation, volume 78 of Lect. Notes in Comp. Sci. Springer-Verlag, 1979.

    Google Scholar 

  8. C. A. Gunter. Semantics of Programming Languages. MIT Press, 1992.

    Google Scholar 

  9. U. Hinkel. Maschineller Beweis der Korrektheit eines Interpreters. Master's thesis, Institut für Informatik, TU München, 1993. In German.

    Google Scholar 

  10. P. Hudak, S. P. Jones, and P. Wadler. Report on the programming language Haskell: A non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.

    Google Scholar 

  11. D. A. McAllester. Ontic: A Knowledge Representation System for Mathematics. MIT Press, 1989.

    Google Scholar 

  12. P. D. Mosses. Denotational semantics. In J. v. Leeuwen, editor, Formal Models and Semantics, Handbook of Theoretical Computer Science, volume B. Elsevier, 1990.

    Google Scholar 

  13. T. Nipkow and C. Prehofer, Type checking type classes. In Proc. 20th ACM Symp. Principles of Programming Languages, pages 409–418. ACM Press, 1993. Revised version to appear in J. Functional Programming.

    Google Scholar 

  14. L. C. Paulson. Deriving structural induction in LCF. In G. Kahn, D. B. MacQueen, and G. Plotkin, editors, Semantics of Data Types, volume 173 of Lect. Notes in Comp. Sci., pages 197–214. Springer-Verlag, 1984.

    Google Scholar 

  15. L. C. Paulson. Logic and Computation. Cambridge University Press, 1987.

    Google Scholar 

  16. L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lect. Notes in Comp. Sci. Springer-Verlag, 1994.

    Google Scholar 

  17. F. Regensburger. HOLCF: Eine konservative Erweiterung von HOL um LCF. PhD thesis, Technische Universität München, 1994. To appear.

    Google Scholar 

  18. B. Schieder. Logic and Proof Method of Recursion. PhD thesis, Institut für Informatik, TU München, 1994. To appear.

    Google Scholar 

  19. G. Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

P. S. Thiagarajan

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Broy, M., Hinkel, U., Nipkow, T., Prehofer, C., Schieder, B. (1994). Interpreter verification for a functional language. In: Thiagarajan, P.S. (eds) Foundation of Software Technology and Theoretical Computer Science. FSTTCS 1994. Lecture Notes in Computer Science, vol 880. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58715-2_115

Download citation

  • DOI: https://doi.org/10.1007/3-540-58715-2_115

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58715-6

  • Online ISBN: 978-3-540-49054-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics