Type inference verified: Algorithm W in Isabelle/HOL
This paper presents the first machine-checked verification of Milner's type inference algorithm W for computing the most general type of an untyped lambda-term enriched with let-expressions. This term language is the core of most typed functional programming languages and is also known as Mini-ML. We show how to model all the concepts involved, in particular types and type schemes, substitutions, and the thorny issue of "new" variables. Only a few key proofs are discussed in detail. The theories and proofs are developed in Isabelle/HOL, the HOL instantiation of the generic theorem prover Isabelle.
type inference isabelle hol machine-checked proof mini-ml