Abstract
Church's system of simple types has proven to be remarkably robust: call-by-name, call-by-need, and call-by-value languages, with or without effects, and even logical frameworks can be based on the same typing rules. When type systems become more expressive, this unity fractures. An early example is the value restriction for parametric polymorphism which is necessary for ML but not Haskell; a later manifestation is the lack of distributivity of function types over intersections in call-by-value languages with effects.
In this talk we reexamine the logical justification for systems of subtyping and intersection types and then explore the consequences in two different settings: logical frameworks and functional programming.
In logical frameworks functions are pure and their definitions observable, but complications could arise from the presence of dependent types. We show that this is not the case, and that we can obtain soundness and completeness theorems for a certain axiomatization of subtyping. We also sketch a connection to the type-theoretic notion of proof irrelevance.
In functional programming we investigate how the encapsulation of effects in monads interacts with subtyping and intersection types, providing an updated analysis of the value restriction and related phenomena. While at present this study is far from complete, we believe that its origin in purely logical notions will give rise to a uniform theory that can easily be adapted to specific languages and their operational interpretations.
- Rowan Davies and Frank Pfenning. Intersection types and computational effects. In P. Wadler, editor, Proceedings of the Fifth International Conference on Functional Programming (ICFP'00), pages 198--208, Montreal, Canada, September 2000. ACM Press. Google Scholar
Digital Library
- William Lovas and Frank Pfenning. A bidirectional refinement type system for LF. In B. Pientka and C. Schürmann, editors, Proceedings of the Second International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, pages 11--25, Bremen, Germany, July 2007.Google Scholar
- Frank Pfenning and Rowan Davies. A judgmental reconstruction of modal logic. Mathematical Structures in Computer Science, 11:511--540, 2001. Google Scholar
Digital Library
- Noam Zeilberger. On the unity of duality. Annals of Pure and Applied Logic, 2007. To appear in a special issue on "Classical Logic and Computation".Google Scholar
Index Terms
Subtyping and intersection types revisited
Recommendations
Subtyping and intersection types revisited
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programmingChurch's system of simple types has proven to be remarkably robust: call-by-name, call-by-need, and call-by-value languages, with or without effects, and even logical frameworks can be based on the same typing rules. When type systems become more ...
Judgmental subtyping systems with intersection types and modal types
We study how to extend modal type systems based on intuitionistic modal logic S4 or S5 with a subtyping system based on intersection types. In the presence of four type constructors $${\!}\!\rightarrow \!{\!},\,{\!}\wedge {\!},\,\square {}$$ , , , and $$\Diamond {}$$ , the traditional approach using a binary subtyping relation does ...
Coinductive Axiomatization of Recursive Type Equality and Subtyping
We present new sound and complete axiomatizations of type equality and subtype inequality for a first-order type language with regular recursive types. The rules are motivated by coinductive characterizations of type containment and type equality via ...







Comments