Inclusions and Subtypes II: Higher-Order Case

The first-order theory of subtypes as inclusions developed in Part I is extended to a higher-order context This involves providing a higher-order equational logic for (inclusive) subtypes, a categorical semantics for such a logic that is complete and has initial models, and a proof that this higher-order logic is a conservative extension of its firstorder counterpart This higher-order categorical semantics includes a new notion of homomorphism between models that is both very natural in terms of its preservation properties and substantially more general than other notions of higher-order homomorphism proposed previously. The categorical semantics of higher-order inclusive subtypes is then generalized to a notion of model with two subtype relations r <r' (inclusion) and r <• T' (implicit conversion) thus reconciling and relating the two different intuitions that have so far prevailed in the first-order and higher-order cases. Axioms are then given that integrate the < and <: relations in the unified categorical semantics. Besides enjoying the benefits provided by each of the notions without their respective limitations, this framework supports rules for structural subtyping that are more informative and can discriminate between inclusions and implicit conversions.

[1]  Mitsuhiro Okada,et al.  Strong normalizability for the combined system of the typed lmbda calculus and an arbitrary convergent term rewrite system , 1989, ISSAC '89.

[2]  Gert Smolka TEL (Version 0.9) Report and User Manual , 1988 .

[3]  Robin Milner,et al.  Definition of standard ML , 1990 .

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

[5]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

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

[7]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[8]  José Meseguer,et al.  Relating models of polymorphism , 1989, POPL '89.

[9]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[10]  Jeffrey D. Ullman Elements of ML programming , 1994 .

[11]  Mitchell Wand,et al.  Type inference for record concatenation and multiple inheritance , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[12]  Val Tannen,et al.  Polymorphic Rewriting Conserves Algebraic Strong Normalization and Confluence Val Tannen , 2011 .

[13]  Thierry Coquand,et al.  Inheritance as Implicit Coercion , 1991, Inf. Comput..

[14]  José Meseguer,et al.  EQLOG: Equality, Types, and Generic Modules For Logic Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[15]  José Meseguer,et al.  Inclusions and Subtypes I: First-Order Case , 1996, J. Log. Comput..

[16]  Val Tannen,et al.  Computing with coercions , 1990, LISP and Functional Programming.

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

[18]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

[19]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[20]  Jean-Pierre Jouannaud,et al.  Operational Semantics for Order-Sorted Algebra , 1985, ICALP.

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

[22]  Albert R. Meyer,et al.  What is a Model of the Lambda Calculus? , 1982, Inf. Control..

[23]  Roy L. Crole,et al.  Categories for Types , 1994, Cambridge mathematical textbooks.

[24]  V. Breazu-Tannen,et al.  Combining algebra and higher-order types , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[25]  David A. Wolfram,et al.  On Types and FOOPS , 1990, DS-4.

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

[27]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[28]  Thomas Streicher,et al.  Correctness and completeness of a categorical semantics of the calculus of constructions , 1989 .

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

[30]  José Meseguer,et al.  A logical theory of concurrent objects and its realization in the Maude language , 1993 .

[31]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.