Basic Theory of F-Bounded Quantification

Abstract System F-bounded is a second-order typed lambda calculus, where the basic features of object-oriented languages can be naturally modelled. F-bounded extends the better known system F ⩽ , in a way that provides an immediate solution for the treatment of the so-called “binary methods.” Although more powerful than F ⩽ and also quite natural, system F-bounded has only been superficially studied from a foundational perspective and many of its essential properties have been conjectured but never proved in the literature. The aim of this paper is to give a solid foundation to F-bounded , by addressing and proving the key properties of the system. In particular, transitivity elimination, completeness of the type checking semi-algorithm, the subject reduction property for βη reduction, conservativity with respect to system F ⩽ , and antisymmetry of a “full” subsystem are considered, and various possible formulations for system F-bounded are compared. Finally, a semantic interpretation of system F-bounded is presented, based on partial equivalence relations.

[1]  David McAllester,et al.  A Proof of Strong Normalization of F_2, F_omega and Beyond , 1995, Inf. Comput..

[2]  Martín Abadi,et al.  On subtyping and matching , 1995, TOPL.

[3]  Giorgio Ghelli Termination of System F-bounded: A Complete Proof , 1997, Inf. Comput..

[4]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[5]  Jozef Gruska Foundations of Computing , 1997 .

[6]  Dinesh Katiyar Subtyping F-bounded types , 1992 .

[7]  Giorgio Ghelli,et al.  Divergence of F< Type Checking , 1995, Theor. Comput. Sci..

[8]  Benjamin C. Pierce,et al.  Intersection types and bounded polymorphism , 1993, Mathematical Structures in Computer Science.

[9]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[10]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[11]  Roberto M. Amadio A fixed point extension of the second order lambda-calculus: observable equivalences and models , 1988, LICS 1988.

[12]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[13]  Benjamin C. Pierce,et al.  Bounded Existentials and Minimal Typing , 1998, Theor. Comput. Sci..

[14]  John C. Mitchell,et al.  The Semantics of Second-Order Lambda Calculus , 1990, Inf. Comput..

[15]  Luca Cardelli,et al.  A semantic basis for quest , 1990, Journal of Functional Programming.

[16]  Kim B. Bruce A paradigmatic object-oriented programming language: Design, static typing and semantics , 1994, Journal of Functional Programming.

[17]  Felice Cardone,et al.  Relational Semantics for Recursive Types and Bounded Quantification , 1989, ICALP.

[18]  Giuseppe Castagna,et al.  A calculus for overloaded functions with subtyping , 1992, LFP '92.

[19]  Giuseppe Castagna,et al.  A Semantics for Lambda&-early: A Calculus with Overloading and Early Binding , 1993, TLCA.

[20]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[21]  William R. Cook,et al.  Object-Oriented Programming Versus Abstract Data Types , 1990, REX Workshop.

[22]  Giorgio Ghelli Recursive Types Are not Conservative over F , 1993, TLCA.

[23]  Kim B. Bruce,et al.  A modest model of records, inheritance and bounded quantification , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[24]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[25]  Giuseppe Castagna Unifying Overloading and lambda-Abstraction: lambda{} , 1997, Theor. Comput. Sci..

[26]  John C. Mitchell,et al.  F-bounded quantification for object-oriented programming , 1989 .

[27]  Luca Cardelli,et al.  On Binary Methods , 1995, Theory Pract. Object Syst..

[28]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[29]  Benjamin C. Pierce,et al.  Bounded Quantification is Undecidable , 1994, Inf. Comput..

[30]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[31]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1991, TACS.

[32]  Roberto M. Amadio,et al.  Recursion over Realizability Structures , 1991, Inf. Comput..

[33]  Benjamin C. Pierce,et al.  Higher-Order Subtyping , 1994, Theor. Comput. Sci..

[34]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[35]  Martín Abadi,et al.  A PER model of polymorphism and recursive types , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[36]  Dario Colazzo,et al.  Subtyping recursive types in kernel Fun , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[37]  Martin Hofmann,et al.  Positive Subtyping , 1996, Inf. Comput..

[38]  Luca Cardelli,et al.  Comparing Object Encodings , 1997, Inf. Comput..

[39]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..