Interpreter verification for a functional language

  • Manfred Broy
  • Ursula Hinkel
  • Tobias Nipkow
  • Christian Prehofer
  • Birgit Schieder
Part of the Lecture Notes in Computer Science book series (LNCS, volume 880)


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, 1988.Google Scholar
  3. 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. 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. 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. 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. 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. 8.
    C. A. Gunter. Semantics of Programming Languages. MIT Press, 1992.Google Scholar
  9. 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. 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. 11.
    D. A. McAllester. Ontic: A Knowledge Representation System for Mathematics. MIT Press, 1989.Google Scholar
  12. 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. 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. 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. 15.
    L. C. Paulson. Logic and Computation. Cambridge University Press, 1987.Google Scholar
  16. 16.
    L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lect. Notes in Comp. Sci. Springer-Verlag, 1994.Google Scholar
  17. 17.
    F. Regensburger. HOLCF: Eine konservative Erweiterung von HOL um LCF. PhD thesis, Technische Universität München, 1994. To appear.Google Scholar
  18. 18.
    B. Schieder. Logic and Proof Method of Recursion. PhD thesis, Institut für Informatik, TU München, 1994. To appear.Google Scholar
  19. 19.
    G. Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Manfred Broy
    • 1
  • Ursula Hinkel
    • 1
  • Tobias Nipkow
    • 1
  • Christian Prehofer
    • 1
  • Birgit Schieder
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenMünchenGermany

Personalised recommendations