Hostname: page-component-78c5997874-4rdpn Total loading time: 0 Render date: 2024-11-05T04:06:20.605Z Has data issue: false hasContentIssue false

Quantifier elimination and parametric polymorphism in programming languages

Published online by Cambridge University Press:  07 November 2008

Harry G. Mairson
Affiliation:
Department of Computer Science, Brandeis University, Waltham, MA 02254, USA
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We present a simple and easy-to-understand explanation of ML type inference and parametric polymorphism within the framework of type monomorphism, as in the first order typed lambda calculus. We prove the equivalence of this system with the standard interpretation using type polymorphism, and extend the equivalence to include polymorphic fixpoints. The monomorphic interpretation gives a purely combinatorial understanding of the type inference problem, and is a classic instance of quantifier elimination, as well as an example of Gentzen-style cut elimination in the framework of the Curry-Howard propositions-as-types analogy.

Type
Articles
Copyright
Copyright © Cambridge University Press 1992

References

Barendregt, H. 1984. The Lambda Calculus: Its Syntax and Semantics. North-Holland.Google Scholar
Cardelli, L. 1984. Basic polymorphic type-checking. Science of Computer Programming, 8 (2): 147172.CrossRefGoogle Scholar
Curry, H. B. and Feys, R. 1958. Combinatory Logic I. North-Holland.Google Scholar
van Daalen, D. 1979. Logic and Structure. Springer-Verlag.Google Scholar
Damas, L. 1985. Type assignment in programming languages. PhD dissertation, Computer Science Department, Edinburgh University.Google Scholar
Damas, L. and Milner, R. 1982. Principal type schemes for functional programs. In 9th ACM Symposium on Principles of Programming Languages, 207212, 01.Google Scholar
Gentzen, G. 1969. The Collected Papers of Gerhard Gentzen (ed. Szabo, E.). North-Holland.Google Scholar
Girard, J.-Y. 1972. Interprétation fonctionnelle et élimination des coupures de l'Arithmétique d'order supérieur. Thèse de Doctorat d'Etat, Université de Paris VII.Google Scholar
Hancock, P. 1987. Polymorphic type-checking. In S., Peyton-Jones, The Implementation of Functional Programming Languages. Prentice-Hall.Google Scholar
Harper, R., Milner, R. and Tofte, M. 1990. The Definition of Standard ML. MIT Press.Google Scholar
Henglein, F. and Mairson, H. 1991. The complexity of type inference for higher-order typed lambda calculi. In Proc. 18th ACM Symposium on the Principles of Programming Languages, 119130, 01.Google Scholar
Hindley, R. and Seldin, J. 1987. Introduction to Combinators and Lambda Calculus. Cambridge University Press.Google Scholar
Hudak, P. and Wadler, P. L., eds. Report on the functional programming language Haskell. Yale University Technical Report YALEU/DCS/RR656.Google Scholar
Kanellakis, P. C. and Mitchell, J. C. 1989. Polymorphic unification and ML typing. Brown University Technical Report CS-89-40, August. (Also in Proc. 16th ACM Symposium on the Principles of Programming Languages, 105115, 01.)Google Scholar
Kanellakis, P. C., Mairson, H. G. and Mitchell, J. C. 1991. Unification and ML type reconstruction. In Computational Logic: Essays in Honor of Alan Robinson, Lassez, J.-L. and Plotkin, G., eds., MIT Press, 1991.Google Scholar
Kfoury, A. J., Tiuryn, J. and Urzyczyn, P. 1990. Undecidability of the semi-unification problem. In Proc. 22nd ACM Symposium on Theory of Computing, 05.Google Scholar
Mairson, H. G. 1990. Deciding ML typability is complete for deterministic exponential time. In Proc. 17th ACM Symposium on the Principles of Programming Languages, 382401, 01.Google Scholar
Milner, R. 1978. A theory of type polymorphism in programming. J. Computer and System Sciences, 17: 348375.CrossRefGoogle Scholar
Mitchell, J. C. 1990. Type systems for programming languages. Volume B, pp. 365468. In van Leeuwen, et al. , eds., Handbook of Theoretical Computer Science. North-Holland.Google Scholar
Mitchell, J. C. and Harper, R. 1988. The essence of ML. In Proc. 15th ACM Symposium on Principles of Programming Languages, 2846, 01.Google Scholar
Mycroft, A. 1984. Polymorphic types schemes and recursive definitions. In Paul, M. and Robinet, B., eds., Proc. International Symposium on Programming. Volume 167 of Lecture Notes in Computer Science, Springer-Verlag, 217228.CrossRefGoogle Scholar
Reynolds, J. C. 1974. Towards a theory of type structure. In Proc. Paris Colloquium on Programming, Volume 19 of Lecture Notes in Computer Science, Springer-Verlag, 408425.Google Scholar
Robinson, J. A. 1965. A machine oriented logic based on the resolution principle. J. of the ACM, 12 (1): 2341.CrossRefGoogle Scholar
Sannella, D., ed. 1988. Postgraduate Examination Questions in Computation Theory, 1978-1988. Laboratory for Foundations of Computer Science, Report ECS-LFCS-88-64, Edinburgh University.Google Scholar
Tait, W. W. 1967. Intensional interpretation of functionals of finite type I. J. Symbolic Logic, 32: 198212.CrossRefGoogle Scholar
Turner, D. A. 1985. Miranda: A non-strict functional language with polymorphic types. In IFIP International Conference on Functional Programming and Computer Architecture. Volume 20 of Lecture Notes in Computer Science, Springer-Verlag, 116.Google Scholar
Wand, M. 1987. A simple algorithm and proof for type inference. Fundamenta Informaticae,10.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.