What are principal typings and what are they good for?
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Basic simple type theory
A notation for lambda terms. A generalization of environment
Theoretical Computer Science
Higher order unification via explicit substitutions
Information and Computation
Typed lambda-calculi with explicit substitutions may not terminate
TLCA '95 Proceedings of the Second International Conference on Typed Lambda Calculi and Applications
The Essence of Principal Typings
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Implementation of Higher-Order Unification Based on Calculus of Explicit Substitution
SOFSEM '95 Proceedings of the 22nd Seminar on Current Trends in Theory and Practice of Informatics
Journal of Functional Programming
Hi-index | 0.00 |
Having principal typings (for short PT) is an important property of type systems. In simply typed systems, this property guarantees the possibility of a complete and terminating type inference mechanism. It is well-known that the simply typed 驴-calculus has this property but recently J.B. Wells has introduced a system-independent definition of PT, which allows to prove that some type systems, e.g. the Hindley/Milner type system, do not satisfy PT. Explicit substitutions address a major computational drawback of the 驴-calculus and allow the explicit treatment of the substitution operation to formally correspond to its implementation. Several extensions of the 驴-calculus with explicit substitution have been given but some of which do not preserve basic properties such as the preservation of strong normalization. We consider two systems of explicit substitutions (驴seand 驴驴) and show that they can be accommodated with an adequate notion of PT. Specifically, our results are as follows:驴 We introduce PT notions for the simply typed versions of the 驴se- and the 驴驴-calculi and prove that they agree with Wells' notion of PT.驴 We show that these versions satisfy PT by revisiting previously introduced type inference algorithms.