Typed operational semantics for higher-order subtyping

Bounded operator abstraction is a language construct relevant to object-oriented programming languages and to ML2000, the successor to Standard ML. In this paper, we introduce F<:ω, a variant of F<:ω with this feature and with Cardelli and Wegner's kernel Fun rule for quantifiers. We define a typed operational semantics with subtyping and prove that it is equivalent with F≤ω, using logical relations to prove soundness. The typed operational semantics provides a powerful and uniform technique to study metatheoretic properties of F≤ω, such as Church-Rosser, subject reduction, the admissibility of structural rules, and the equivalence with the algorithmic presentation of the system that performs weak-head reductions.Furthermore, we can show decidability of subtyping using the typed operational semantics and its equivalence with the usual presentation. Hence, this paper demonstrates for the first time that logical relations can be used to show decidability of subtyping.

[1]  Per Martin-Löf,et al.  An intuitionistic theory of types , 1972 .

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

[3]  Luca Cardelli,et al.  Operations on records , 1989, Mathematical Structures in Computer Science.

[4]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[5]  Kim B. Bruce,et al.  A Modest Model of Records, Inheritance and Bounded Quantification , 1990, Inf. Comput..

[6]  Healfdene Goguen A Kripke-Style Model for the Admissibility of Structural Rules , 2000, TYPES.

[7]  Healfdene Goguen The Metatheory of UTT , 1994, TYPES.

[8]  William W. Tait,et al.  Intensional interpretations of functionals of finite type I , 1967, Journal of Symbolic Logic.

[9]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[10]  Claudio V. Russo Types for Modules , 2004, Electronic Notes in Theoretical Computer Science.

[11]  Benjamin C. Pierce,et al.  Higher-order intersection types and multiple inheritance , 1996, Mathematical Structures in Computer Science.

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

[13]  John C. Mitchell,et al.  Type Systems for Programming Languages , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[14]  Thomas Streicher,et al.  Semantics of type theory - correctness, completeness and independence results , 1991, Progress in theoretical computer science.

[15]  Erich J. Neuhold,et al.  Formal description of programming concepts , 1991 .

[16]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[17]  Mark P. Jones A system of constructor classes: overloading and implicit higher-order polymorphism , 1993, FPCA '93.

[18]  B. Pierce Programming with intersection types and bounded polymorphism , 1992 .

[19]  Kim B. Bruce Typing in object-oriented languages: Achieving expressiveness and safety , 1996 .

[20]  J. Gallier,et al.  A Proof of Strong Normalization for the Theor y of Constructions Using a Kripke-like Interpretation , 1990 .

[21]  J. Girard,et al.  Proofs and types , 1989 .

[22]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[23]  Adriana B. Compagnoni,et al.  Higher-order subtyping with intersection types , 1995 .

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

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

[26]  John C. Mitchell,et al.  Theoretical aspects of object-oriented programming: types, semantics, and language design , 1994, Choice Reviews Online.

[27]  Adriana B. Compagnoni,et al.  Anti-Symmetry of Higher-Order Subtyping , 1999, CSL.

[28]  Luca Cardelli,et al.  Types for Data-Oriented Languages , 1988, EDBT.

[29]  John C. Mitchell,et al.  PER models of subtyping, recursive types and higher-order polymorphism , 1992, POPL '92.

[30]  John C. Mitchell Toward a typed foundation for method specialization and inheritance , 1989, POPL '90.

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

[32]  Zhaohui Luo An extended calculus of constructions , 1990 .

[33]  Healfdene Goguen Typed Operational Semantics , 1995, TLCA.

[34]  David Aspinall,et al.  Subtyping dependent types , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

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

[36]  T. Coquand An algorithm for testing conversion in type theory , 1991 .

[37]  Gang Chen Subtyping Calculus of Construction (Extended Abstract) , 1997, MFCS.

[38]  Mariangiola Dezani-Ciancaglini,et al.  A Characterization of F-Complete Type Assignments , 1986, Theor. Comput. Sci..

[39]  Frank Pfenning,et al.  Logical Frameworks , 2001, Handbook of Automated Reasoning.

[40]  Kim B. Bruce,et al.  PolyTOIL: A type-safe polymorphic object-oriented language , 1995, TOPL.

[41]  J. H. Geuvers Logics and type systems , 1993 .

[42]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[43]  Zhaohui Luo,et al.  Some Algorithmic and Proof-Theoretical Aspects of Coercive Subtyping , 1996, TYPES.

[44]  Healfdene Goguen A typed operational semantics for type theory , 1994 .

[45]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[46]  Luca Cardelli,et al.  Extensible records in a pure calculus of subtyping , 1994 .

[47]  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.

[48]  Adriana B. Compagnoni,et al.  Decidability of Higher-Order Subtyping with Intersection Types , 1994, CSL.

[49]  M. E. R. “If” , 1921, Definitions.

[50]  Judicaël Courant,et al.  An Applicative Module Calculus , 1997, TAPSOFT.

[51]  Andrew W. Appel,et al.  Principles and a Preliminary Design for ML2000 , 2000 .

[52]  Masako Takahashi Parallel Reductions in lambda-Calculus , 1995, Inf. Comput..

[53]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[54]  James McKinna,et al.  Pure Type Systems Formalized , 1993, TLCA.

[55]  Xavier Leroy,et al.  Applicative functors and fully transparent higher-order modules , 1995, POPL '95.

[56]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[57]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

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