Principal Types and Unification for a Simple Intersection Type System

In this paper we introduce a decidable restriction of the intersection type discipline. The restriction is based on a uniform principle rather than on a notion of rank. For this system we give a type checking algorithm that we prove to be sound and complete. An extended language of types with labelled intersections and intersection schemes is needed to describe the principal type of terms which turns out to be unique module a set of equations between labels. The unification algorithm far labelled types, that extends first order unification, could be used as a basis to define inference algorithms for other (more powerful) systems with intersection.

[1]  J. B. Wells,et al.  Typability and type checking in the second-order /spl lambda/-calculus are equivalent and undecidable , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[2]  Jerzy Tiuryn,et al.  Computational consequences and partial solutions of a generalized unification problem , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[3]  Alan Mycroft,et al.  Polymorphic Type Schemes and Recursive Definitions , 1984, Symposium on Programming.

[4]  Steffen van Bakel,et al.  Complete Restrictions of the Intersection Type Discipline , 1992, Theor. Comput. Sci..

[5]  Pawel Urzyczyn Type reconstruction in F-omega is undecidable , 1993, TLCA.

[6]  Paola Giannini,et al.  Type Inference in Polymorphic Type Discipline , 1991, TACS.

[7]  Paola Giannini,et al.  A Decidable Intersection Type System based on Relevance , 1994, TACS.

[8]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

[9]  Mario Coppo,et al.  An Extended Polymorphic Type System for Applicative Languages , 1980, MFCS.

[10]  Simona Ronchi Della Rocca,et al.  Principal Type Scheme and Unification for Intersection Type Discipline , 1988, Theor. Comput. Sci..

[11]  Mario Coppo,et al.  Principal type-schemes and lambda-calculus semantics , 1980 .

[12]  Daniel Leivant,et al.  Typing and Computational Properties of Lambda Expressions , 1986, Theor. Comput. Sci..

[13]  Paola Giannini,et al.  A Complete Type Inference Algorithm for Simple Intersection Types , 1992, CAAP.

[14]  Alberto Ferrari,et al.  Type Inference, Abstract Interpretation and Strictness Analysis , 1993, Theor. Comput. Sci..

[15]  Alexander Aiken,et al.  Soft typing with conditional types , 1994, POPL '94.

[16]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[17]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[18]  Chris Hankin,et al.  Deriving algorithms from type inference systems: application to strictness analysis , 1994, POPL '94.

[19]  Philippa Gardner,et al.  Discovering Needed Reductions Using Type Theory , 1994, TACS.

[20]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[21]  Simona Ronchi Della Rocca,et al.  Principal Type Schemes for an Extended Type Theory , 1984, Theor. Comput. Sci..

[22]  S. V. Bakel,et al.  Intersection type disciplines in Lambda Calculus and applicative term rewriting systems , 1993 .

[23]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[24]  Jerzy Tiuryn,et al.  Type reconstruction in finite-rank fragments of the polymorphic lambda -calculus , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[25]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[26]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[27]  Daniel Leivant,et al.  Polymorphic type inference , 1983, POPL '83.

[28]  Mariangiola Dezani-Ciancaglini,et al.  An extension of the basic functionality theory for the λ-calculus , 1980, Notre Dame J. Formal Log..