Type inference with expansion variables and intersection types in system E and an exact correspondence with β-reduction

  • Authors:
  • Sébastien Carlier;J. B. Wells

  • Affiliations:
  • Heriot-Watt University;Heriot-Watt University

  • Venue:
  • PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

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.