Abstract
System E is a recently designed type system for the ?-calculus with intersection types and expansion variables. During automatic type inference, expansion variables allow postponing decisions about which non-syntax-driven typing rules to use until the right information is available and allow implementing the choices via substitution. This paper uses expansion variables in a unification-based automatic type inference algorithm for System E that succeeds for every ß-normalizable ?-term. We have implemented and tested our algorithm and released our implementation publicly. Each step of our unification algorithm corresponds to exactly one ß-reduction step, and vice versa. This formally verifies and makes precise a step-for-step correspondence between type inference and ß-reduction. This also shows that type inference with intersection types and expansion variables can, in effect, carry out an arbitrary amount of partial evaluation of the program being analyzed.
Original language | English |
---|---|
Title of host publication | Proceedings of the Sixth ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, PPDP'04 |
Pages | 132-143 |
Number of pages | 12 |
Publication status | Published - 2004 |
Event | 14th International Symposium on Logic Based Program Synthesis and Transformation - Verona, Italy Duration: 26 Aug 2004 → 28 Aug 2004 |
Conference
Conference | 14th International Symposium on Logic Based Program Synthesis and Transformation |
---|---|
Abbreviated title | LOPSTR 2004 |
Country/Territory | Italy |
City | Verona |
Period | 26/08/04 → 28/08/04 |
Keywords
- Expansion variables
- Intersection types
- Lambda-calculus
- Type inference