Verifying the unification algorithm in LCF
Science of Computer Programming - Ellis Horwood series in artificial intelligence
Foundations of deductive databases and logic programming
Type inference for polymorphic references
Information and Computation
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
A simple applicative language: mini-ML
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
The Definition of Standard ML
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Certification of a Type Inference Tool for ML: Damas–Milner within Coq
Journal of Automated Reasoning
Formal Verification of Algorithm W: The Monomorphic Case
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Type Inference Verified: Algorithm W in Isabelle/HOL
TYPES '96 Selected papers from the International Workshop on Types for Proofs and Programs
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Certification of a Type Inference Tool for ML: Damas–Milner within Coq
Journal of Automated Reasoning
Proving ML Type Soundness Within Coq
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Compiler verification: a bibliography
ACM SIGSOFT Software Engineering Notes
Gradual typing with unification-based inference
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
A certified implementation of ML with structural polymorphism
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
General bindings and alpha-equivalence in nominal Isabelle
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
CakeML: a verified implementation of ML
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
This paper presents the first machine-checked verification of Milner‘s type inference algorithm W for computing the most general type of an untyped λ-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.