Proofs and types
Programming with intersection types and bounded polymorphism
Programming with intersection types and bounded polymorphism
Intersection type assignment systems
Selected papers of the thirteenth conference on Foundations of software technology and theoretical computer science
Foundations of programming languages
Foundations of programming languages
Design of the programming language FORSYTHE
ALGOL-like Languages, Volume 1
Basic simple type theory
Principality and decidable type inference for finite-rank intersection types
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Functional Characterization of Some Semantic Equalities inside Lambda-Calculus
Proceedings of the 6th Colloquium, on Automata, Languages and Programming
A Typed Intermediate Language for Flow-Directed Compilation
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Mathematical Structures in Computer Science
Intersection types and lambda models
Theoretical Computer Science - Logic, language, information and computation
Lectures on the Curry-Howard Isomorphism, Volume 149 (Studies in Logic and the Foundations of Mathematics)
Intersection-types à la Church
Information and Computation
On Isomorphisms of Intersection Types
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
On isomorphisms of intersection types
ACM Transactions on Computational Logic (TOCL)
Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluation
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Towards a Logic for Union Types
Fundamenta Informaticae - Intersection Types and Related Systems ITRS
Hi-index | 5.23 |
Intersection types are well known to type theorists mainly for two reasons. Firstly, they type all and only the strongly normalizable lambda terms. Secondly, the intersection type operator is a meta-level operator, that is, there is no direct logical counterpart in the Curry-Howard isomorphism sense. In particular, its meta-level nature implies that it does not correspond to the intuitionistic conjunction. The intersection type system is naturally a type inference system (system a la Curry), but the meta-level nature of the intersection operator does not allow to easily design an equivalent typed system (system a la Church). There are many proposals in the literature to design such systems, but none of them gives an entirely satisfactory answer to the problem. In this paper, we will review the main results in the literature both on the logical interpretation of intersection types and on proposed typed lambda calculi. The core of this paper is a new proposal for a true intersection typed lambda calculus, without any meta-level notion. Namely, any typable term (in the intersection type inference) has a corresponding typed term (which is the same as the untyped term by erasing the type decorations and the typed term constructors) with the same type, and vice versa. The main idea is to introduce a relevant parallel term constructor which corresponds to the intersection type constructor, in such a way that terms in parallel share the same resources, that is, the same context of free typed variables. Three rules allow us to generate all typed terms. The first two rules, Application and Lambda-abstraction, are performed on all the components of a parallel term in a synchronized way. Finally, via the third rule of Local Renaming, once a free typed variable is bounded by lambda-abstraction, each of the terms in parallel can do its local renaming, with type refinement, of that particular resource.