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.
Preview
Unable to display preview. Download preview PDF.
References
L. Cardelli. Basic polymorphic typechecking. Sci. Comp. Programming, 8:147–172, 1987.
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.
L. Damas and R. Milner. Principal type schemes for functional programs. In Proc. 9th ACM Symp. Principles of Programming Languages, pages 207–212, 1982.
L. M. M. Damas. Type Assignment in Programming Languages. PhD thesis, Department of Computer Science, University of Edinburgh, 1985.
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.
M. Gordon and T. Melham. Introduction to HOL: a theorem-proving environment for higher-order logic. Cambridge University Press, 1993.
J. R. Hindley. The principal type-scheme of an object in combinatory logic. Trans. Amer. Math. Soc., 146:29–60, 1969.
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.
M. P. Jones. Qualified Types: Theory and Practice. Technical Monograph PRG-106, Oxford University Computing Laboratory, Programming Research Group, July 1992.
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.
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.
J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.
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.
R. Milner. A Theory of Type Polymorphism in Programming. Journal of Computer and System Sciences, 17:348–375, 1978.
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, 1990.
D. Nazareth. A Polymorphic Sort System for Axiomatic Specification Languages. PhD thesis, Technische Universität München, 1995. Technical Report TUM-I9515.
T. Nipkow and C. Prehofer. Type reconstruction for type classes. J. Functional Programming, 5(2):201–224, 1995.
L. C. Paulson. Isabelle: A Generic Theorem Prover, volume 828 of Lect. Notes in Comp. Sci. Springer-Verlag, 1994.
L. C. Paulson. Generic automatic proof tools. Technical Report 396, University of Cambridge, Computer Laboratory, 1996.
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.
J. Robinson. A machine-oriented logic based on the resolution principle. J. ACM, 12:23–41, 1965.
M. Tofte. Type inference for polymorphic references. Information and Computation, 89:1–34, 1990.
P. Wadler. Comprehending monads. In Conference on Lisp and Functional Programming, pages 61–78, June 1990.
P. Wadler. The essence of functional programming. In Proc. 19th ACM Symp. Principles of Programming Languages, 1992.
M. Wand. A simple algorithm and proof for type inference. Fundementa Informaticae, 10:115–122, 1987.
Author information
Authors and Affiliations
Editor information
Rights 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