A Semantic Basis for Quest

Quest is a programming language based on impredicative type quantifiers and subtyping within a three-level structure of kinds, types and type operators, and values. The semantics of Quest is rather challenging. In particular, difficulties arise when we try to model simultaneously features such as contravariant function spaces, record types, subtyping, recursive types, and fixpoints. In this paper we describe in detail the type inference rules for Quest, and we give them meaning using a partial equivalence relation model of types. Subtyping is interpreted as in previous work by Bruce and Longo, but the interpretation of some aspects, namely subsumption, power kinds, and record subtyping, is novel. The latter is based on a new encoding of record types. We concentrate on modeling quantifiers and subtyping; recursion is the subject of current work. Appears in: Journal of Functional Programming, Vol 1, Part 4, pp.417-458, Cambridge Univ. Press, Oct 1991. SRC Research Report 55, February 14, 1990. Revised January 1, 1993.  Digital Equipment Corporation 1990,1993. This work may not be copied or reproduced in whole or in part for any commercial purpose. Permission to copy in whole or in part without payment of fee is granted for nonprofit educational and research purposes provided that all such whole or partial copies include the following: a notice that such copying is by permission of the Systems Research Center of Digital Equipment Corporation in Palo Alto, California; an acknowledgment of the authors and individuals contributors to the work; and all applicable portions of the copyright notice. Copying, reproducing, or republishing for any other purpose shall require a license with payment of fee to the Systems Research Center. All rights reserved. 1 This author's work has been supported in part by Digital Equipment Corporation.

[1]  R. Acevedo,et al.  Research report , 1967, Revista odontologica de Puerto Rico.

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

[3]  A. Troelstra Metamathematical investigation of intuitionistic arithmetic and analysis , 1973 .

[4]  G. Longo,et al.  Lambda-Calculus Models and Extensionality , 1980, Math. Log. Q..

[5]  J. Hyland The Effective Topos , 1982 .

[6]  John C. Reynolds,et al.  Polymorphism is not Set-Theoretic , 1984, Semantics of Data Types.

[7]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[8]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

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

[10]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[11]  Andrew M. Pitts,et al.  The theory of constructions: Categorical semantics and topos-theoretic models , 1987 .

[12]  Andre Scedrov,et al.  A Categorical Approach to Realizability and Polymorphic Types , 1987, MFPS.

[13]  David A. Schmidt,et al.  Mathematical Foundations of Programming Language Semantics , 1987, Lecture Notes in Computer Science.

[14]  Andrew M. Pitts,et al.  Polymorphism is Set Theoretic, Constructively , 1987, Category Theory and Computer Science.

[15]  Martin Hyland A small complete category , 1988, Ann. Pure Appl. Log..

[16]  Luca Cardelli,et al.  Modula-3 Report. , 1988 .

[17]  Peter Buneman,et al.  Workshop on Database Programming Languages , 1988 .

[18]  Thomas Ehrhard A categorical semantics of constructions , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[19]  Simon Martini Bounded quantifiers have interval models , 1988, LFP '88.

[20]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[21]  John C. Mitchell,et al.  Polymorphic Type Inference and Containment , 1988, Inf. Comput..

[22]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[23]  Thierry Coquand,et al.  Inheritance and explicit coercion , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[24]  Zhaohui Luo,et al.  ECC, an extended calculus of constructions , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[25]  Luca Cardelli,et al.  Operations on Records , 1989, Mathematical Foundations of Programming Semantics.

[26]  Giuseppe Longo Some Aspects of Impredicativity: Notes on Weyl's philosophy of Mathematics and on todays Type Theory , 1989 .

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

[28]  Jon Fairbairn,et al.  Some types with inclusion properties in ∀, →, μ , 1989 .

[29]  S. Feferman Polymorphic typed lambda-calculi in a type-free axiomatic framework , 1990 .

[30]  Giorgio Ghelli,et al.  Coherence of Subsumption , 1990, CAAP.

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

[32]  William R. Cook,et al.  Canning: inheritance is not subtyping , 1990 .

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

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

[35]  Giuseppe Longo,et al.  Categories, types and structures - an introduction to category theory for the working computer scientist , 1991, Foundations of computing.

[36]  Eugenio Moggi,et al.  Constructive Natural Deduction and its 'Omega-Set' Interpretation , 1991, Math. Struct. Comput. Sci..

[37]  Simone Martini,et al.  Categorical Models of Polymorphism , 1992, Inf. Comput..