Intersection Types via Finite-Set Declarations
Fairouz Kamareddine, Joe Wells

TL;DR
This paper introduces the f-cube, an extension of the lambda-cube with finite-set declarations that enable representing intersection types as Pi-types, allowing typing of certain untypable terms without complex intersection rules.
Contribution
The paper presents the f-cube, a novel extension of the lambda-cube, that encodes intersection types via finite-set declarations, simplifying intersection type typing.
Findings
Successfully encodes intersection types as Pi-types using FSDs
Enables typing of the untypable term U' without intersection-introduction rules
Provides a practical approach for language implementers to incorporate intersection types
Abstract
The lambda-cube is a famous pure type system (PTS) cube of eight powerful explicit type systems that include the simple, polymorphic and dependent type theories. The lambda-cube only types Strongly Normalising (SN) terms but not all of them. It is well known that even the most powerful system of the lambda-cube can only type the same pure untyped lambda-terms that are typable by the higher-order polymorphic implicitly typed lambda-calculus Fomega, and that there is an untyped {\lambda}-term U' that is SN but is not typable in Fomega or the lambda-cube. Hence, neither system can type all the SN terms it expresses. In this paper, we present the f-cube, an extension of the lambda-cube with finite-set declarations (FSDs) like y\in{C1,...,Cn} : B which means that y is of type B and can only be one of C1,..., Cn. The novelty of our FSDs is that they allow to represent intersection types as…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Advanced Graph Theory Research · Logic, programming, and type systems
