Skip to main content

Formal verification of algorithm W: The monomorphic case

  • Conference paper
  • First Online:
Theorem Proving in Higher Order Logics (TPHOLs 1996)

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

Included in the following conference series:

Abstract

A formal verification of the soundness and completeness of Milner’s type inference algorithm W for simply typed lambda-terms is presented. Particular attention is paid to the notorious issue of “new” variables. The proofs are carried out in Isabelle/HOL, the HOL instantiation of the generic theorem prover Isabelle.

Research supported by ESPRIT BRA 6453, Types.

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. L. Cardelli. Basic polymorphic typechecking. Sci. Comp. Programming, 8:147–172, 1987.

    Article  MATH  Google Scholar 

  2. D. Clément, J. Despeyroux, T. Despeyroux, and G. Kahn. A simple applicative language: Mini-ML. In Proc. ACM Conf. Lisp and Functional Programming, pages 13–27, 1986.

    Google Scholar 

  3. L. Damas and R. Milner. Principal type schemes for functional programs. In Proc. 9th ACM Symp. Principles of Programming Languages, pages 207–212, 1982.

    Google Scholar 

  4. L. M. M. Damas. Type Assignment in Programming Languages. PhD thesis, Department of Computer Science, University of Edinburgh, 1985.

    Google Scholar 

  5. N. G. de Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem. Indagationes Mathematicae, 34:381–392, 1972.

    Google Scholar 

  6. M. Gordon and T. Melham. Introduction to HOL: a theorem-proving environment for higher-order logic. Cambridge University Press, 1993.

    Google Scholar 

  7. J. R. Hindley. The principal type-scheme of an object in combinatory logic. Trans. Amer. Math. Soc., 146:29–60, 1969.

    Article  MATH  MathSciNet  Google Scholar 

  8. P. Hudak, S. Peyton 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 

  9. M. P. Jones. Qualified Types: Theory and Practice. Technical Monograph PRG-106, Oxford University Computing Laboratory, Programming Research Group, July 1992.

    Google Scholar 

  10. J.-P. Jouannaud and C. Kirchner. Solving equations in abstract algebras: A rule-based survey of unification. In J.-L. Lassez and G. Plotkin, editors, Computational Logic: Essays in Honor of Alan Robinson, pages 257–321. MIT Press, 1991.

    Google Scholar 

  11. J.-L. Lassez, M. Maher, and K. Mariott. Unification revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming, pages 587–625. Morgan Kaufman, 1987.

    Google Scholar 

  12. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.

    Google Scholar 

  13. J. McKinna and R. Pollack. Pure type systems formalized. In M. Bezem and J. Groote, editors, Typed Lambda Calculi and Applications, volume 664 of Lect. Notes in Comp. Sci., pages 289–305. Springer-Verlag, 1993.

    Google Scholar 

  14. R. Milner. A Theory of Type Polymorphism in Programming. Journal of Computer and System Sciences, 17:348–375, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  15. R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990.

    Google Scholar 

  16. D. Nazareth. A Polymorphic Sort System for Axiomatic Specification Languages. PhD thesis, Technische Universität München, 1995. Technical Report TUM-I9515.

    Google Scholar 

  17. T. Nipkow and C. Prehofer. Type reconstruction for type classes. J. Functional Programming, 5(2):201–224, 1995.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  19. L. C. Paulson. Generic automatic proof tools. Technical Report 396, University of Cambridge, Computer Laboratory, 1996.

    Google Scholar 

  20. R. Pollack. A verified typechecker. In M. Dezani-Ciancaglini and G. Plotkin, editors, Typed Lambda Calculi and Applications, volume 902 of Lect. Notes in Comp. Sci. Springer-Verlag, 1995.

    Google Scholar 

  21. J. Robinson. A machine-oriented logic based on the resolution principle. J. ACM, 12:23–41, 1965.

    Article  MATH  Google Scholar 

  22. M. Tofte. Type inference for polymorphic references. Information and Computation, 89:1–34, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  23. P. Wadler. Comprehending monads. In Conference on Lisp and Functional Programming, pages 61–78, June 1990.

    Google Scholar 

  24. P. Wadler. The essence of functional programming. In Proc. 19th ACM Symp. Principles of Programming Languages, 1992.

    Google Scholar 

  25. M. Wand. A simple algorithm and proof for type inference. Fundementa Informaticae, 10:115–122, 1987.

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gerhard Goos Juris Hartmanis Jan van Leeuwen Joakim von Wright Jim Grundy John Harrison

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nazareth, D., Nipkow, T. (1996). Formal verification of algorithm W: The monomorphic case. In: Goos, G., Hartmanis, J., van Leeuwen, J., von Wright, J., Grundy, J., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1996. Lecture Notes in Computer Science, vol 1125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0105414

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61587-3

  • Online ISBN: 978-3-540-70641-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics