Principal type scheme and unification for intersection type discipline
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Filter models with polymorphic types
Theoretical Computer Science
A direct algorithm for type inference in the rank-2 fragment of the second-order &lgr;-calculus
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Bounded quantification is undecidable
Information and Computation
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
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Inference of polymorphic and conditional strictness properties
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principality and decidable type inference for finite-rank intersection types
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Domains and lambda-calculi
The Definition of Standard ML
The Java Language Specification
The Java Language Specification
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Une Extension de la Theorie des Types en lambda-Calcul
Proceedings of the Fifth Colloquium on Automata, Languages and Programming
The Essence of Principal Typings
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
A Complete Type Inference Algorithm for Simple Intersection Types
CAAP '92 Proceedings of the 17th Colloquium on Trees in Algebra and Programming
Typability is Undecidable for F+Eta
Typability is Undecidable for F+Eta
Mathematical Structures in Computer Science
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Types, potency, and idempotency: why nonlinearity and amnesia make a type system work
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
THEORETICAL PEARLS: A bargain for intersection types: a simple strong normalization proof
Journal of Functional Programming
On strong normalization and type inference in the intersection type discipline
Theoretical Computer Science
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Inhabitation of Low-Rank Intersection Types
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
Model-checking higher-order functions
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Programming Examples Needing Polymorphic Recursion
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Dependent types from counterexamples
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intersection type systems and explicit substitutions calculi
WoLLIC'10 Proceedings of the 17th international conference on Logic, language, information and computation
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Expansion for universal quantifiers
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Elaborating intersection and union types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Model Checking Higher-Order Programs
Journal of the ACM (JACM)
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Fundamenta Informaticae - Intersection Types and Related Systems ITRS
Hi-index | 5.23 |
Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typings and types exactly the strongly normalizable λ-terms. More interestingly, every finite-rank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference. This is in contrast to System F where the finite rank restriction for every finite rank at 3 and above has neither principal typings nor decidable type inference. Furthermore, the notion of principal typings for our system involves only one operation, substitution, rather than several operations (not all substitution-based) as in earlier presentations of principality for intersection types (without rank restrictions). In our system the earlier notion of expansion is integrated in the form of expansion variables, which are subject to substitution as are ordinary variables. A unification-based type inference algorithm is presented using a new form of unification, β-unification.