Decidability of higher-order subtyping with intersection types
The combination of higher-order subtyping with intersection types yields a typed model of object-oriented programming with multiple inheritance . The target calculus, F ⋀ ω , a natural generalization of Girard's system Fω with intersection types and bounded polymorphism, is of independent interest, and is our subject of study.
Our main contribution is the proof that subtyping in F ⋀ ω is decidable. This yields as a corollary the decidability of subtyping in F ≤ ω , its intersection free fragment, because the F ⋀ ω subtyping system is a conservative extension of that of F ≤ ω .
The calculus presented in  has no reductions on types. In the F ⋀ ω subtyping system the presence of β∧-conversion — an extension of β-conversion with distributivity laws — drastically increases the complexity of proving the decidability of the subtyping relation. Our proof consists of, firstly, defining an algorithmic presentation of the subtyping system of F ⋀ ω , secondly, proving that this new presentation is sound and complete with respect to the original one, and finally, proving that the algorithm always terminates.
Moreover, we establish basic structural properties of the language of types of F ⋀ ω such as strong normalization and Church-Rosser.
Among the novel aspects of the present solution is the use of term rewriting techniques to present intersection types, which clearly splits the computational semantics (reduction rules) from the syntax (inference rules) of the system. Another original feature is the use of a choice operator to model the behavior of variables during subtype checking.
KeywordsNormal Form Intersection Type Reduction Rule Choice Operator Strong Normalization
Unable to display preview. Download preview PDF.
- H. P. Barendregt, M. Coppo, and M. Dezani-Ciancaglini. A filter lambda model and the completeness of type assignment. Journal of Symbolic Logic, 48(4):931–940, 1983.Google Scholar
- Kim Bruce and John Mitchell. PER models of subtyping, recursive types and higher-order polymorphism. In Proceedings of the Nineteenth ACM Symposium on Principles of Programming Languages, Albequerque, NM, January 1992.Google Scholar
- Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John Mitchell. Fbounded quantification for object-oriented programming. In Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273–280, September 1989.Google Scholar
- Luca Cardelli. Notes about F >ω. Unpublished manuscript, October 1990.Google Scholar
- Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4), December 1985.Google Scholar
- Felice Cardone and Mario Coppo. Two extensions of Curry's type inference system. In Odifreddi , pages 19–76.Google Scholar
- Giuseppe Castagna and Benjamin Pierce. Decidable bounded quantification. In Proceedings of Twenty-First Annual ACM Symposium on Principles of Programming Languages, Portland, OR. ACM, January 1994.Google Scholar
- Adriana Compagnoni. Higher-Order Subtyping with Intersection Types. PhD thesis, University of Nijmegen, The Netherlands, January 1995.Google Scholar
- Adriana B. Compagnoni. Subtyping in F ⋀ω is decidable. Technical Report ECS-LFCS-94-281, LFCS, University of Edinburgh, January 1994.Google Scholar
- Adriana B. Compagnoni and Benjamin C. Pierce. Multiple inheritance via intersection types. Mathematical Structures in Computer Science, 1995. To appear. Preliminary version available as University of Edinburgh technical report ECS-LFCS-93-275 and Catholic University Nijmegen computer science technical report 93-18, Aug. 1993.Google Scholar
- William R. Cook, Walter L. Hill, and Peter S. Canning. Inheritance is not subtyping. In Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 125–135, San Francisco, CA, January 1990. Also in .Google Scholar
- Pierre-Louis Curien and Giorgio Ghelli. Coherence of subsumption: Minimum typing and type-checking in F ≤. Mathematical Structures in Computer Science, 2:55–91, 1992. Also in .Google Scholar
- Giorgio Ghelli. Proof Theoretic Studies about a Minimal Type System Integrating Inclusion and Parametric Polymorphism. PhD thesis, Università di Pisa, March 1990. Technical report TD-6/90, Dipartimento di Informatica, Università di Pisa.Google Scholar
- Giorgio Ghelli, January 1994. Message to the Types mailing list.Google Scholar
- Jean-Yves Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VII, 1972.Google Scholar
- Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. The MIT Press, 1994.Google Scholar
- John C. Mitchell. Toward a typed foundation for method specialization and inheritance. In Proceedings of the 17th ACM Symposium on Principles of Programming Languages, pages 109–124, January 1990. Also in in .Google Scholar
- Piergiorgio Odifreddi, editor. Logic and Computer Science. Number 31 in APIC Studies in Data Processing. Academic Press, 1990.Google Scholar
- Benjamin C. Pierce. Programming with Intersection Types and Bounded Polymorphism. PhD thesis, Carnegie Mellon University, December 1991. Available as School of Computer Science technical report CMU-CS-91-205.Google Scholar
- Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming, 4(2):207–247, April 1994.Google Scholar
- Martin Steffen and Benjamin Pierce. Higher-order subtyping. In IFIP Working Conference on Programming Concepts, Methods and Calculi (PROCOMET), June 1994. An earlier version appeared as University of Edinburgh technical report ECS-LFCS-94-280 and Universität Erlangen-Nürnberg Interner Bericht IMMD7-01/94, February 1994.Google Scholar