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

Sébastien Carlier, J. B. Wells
2004 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming - PPDP '04  
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
more » ... lemented 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.
doi:10.1145/1013963.1013980 dblp:conf/ppdp/CarlierW04 fatcat:4geahdiobzcopgz4oqwm5jnfty