Combining Type Disciplines

We present a type inference system for pure λ-calculus which includes, in addition to arrow types, also universal and existential type quantifiers, intersection and union types, and type recursion. The interest of this system lies in the fact that it offers a possibility to study in a unified framework a wide range of type constructors. We investigate the main syntactical properties of the system, including an analysis of the preservation of types under parallel reduction strategies, leading to a form of the subject-reduction property. We describe a model for this system where types are special subsets of a D∞ model for λ-calculus, without imposing any formal contractiveness constraint on types of the kind considered for a closely related system by MacQueen, Plotkin and Sethi (1986).

[1]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[2]  Mariangiola Dezani-Ciancaglini,et al.  An extension of the basic functionality theory for the λ-calculus , 1980, Notre Dame J. Formal Log..

[3]  Jonathan P. Seldin Review: Corrado Bohm, Wolf Gross, E. R. Caianiello, Introduction to the CUCH; C. Bohm, T. B. Steel, The CUCH as a Formal and Description Language , 1975 .

[4]  Alberto Ferrari,et al.  Type Inference, Abstract Interpretation and Strictness Analysis , 1993, Theor. Comput. Sci..

[5]  N. P. Mendler,et al.  Recursive Types and Type Constraints in Second-Order Lambda Calculus , 1987, LICS.

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

[7]  G. Kreisel The Collected Papers of Gerhard Gentzen , 1971 .

[8]  Frank Pfenning,et al.  Intersection Types for a Logical Framework , 1992 .

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

[10]  Mario Coppo,et al.  Type Inference with Recursive Types: Syntax and Semantics , 1991, Inf. Comput..

[11]  Felice Cardone,et al.  Recursive Types for Fun , 1991, Theor. Comput. Sci..

[12]  Frank Pfenning,et al.  Refinement types for ML , 1991, PLDI '91.

[13]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

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

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

[16]  Donald E. Knuth,et al.  Examples of formal semantics , 1971, Symposium on Semantics of Algorithmic Languages.

[17]  Luca Cardelli,et al.  Typeful Programming , 1989, Formal Description of Programming Concepts.

[18]  Gordon D. Plotkin,et al.  An ideal model for recursive polymorphic types , 1984, Inf. Control..

[19]  John C. Reynolds,et al.  Preliminary design of the programming language Forsythe , 1988 .

[20]  E. G. K. Lopez-Escobar,et al.  Proof functional connectives , 1985 .

[21]  Mariangiola Dezani-Ciancaglini,et al.  Intersection and Union Types: Syntax and Semantics , 1995, Inf. Comput..

[22]  John C. Mitchell,et al.  F-bounded polymorphism for object-oriented programming , 1989, FPCA.

[23]  Benjamin C. Pierce,et al.  Preliminary Investigation of a Calculus with Intersection and Union Types , 1990 .

[24]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[25]  Mario Coppo,et al.  A Completeness Theorem for Recursively Defined Types , 1985, ICALP.

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

[27]  Santiago M. Pericás-Geertsen TYPE INFERENCE WITH RECURSIVE TYPES AT DIFFERENT RANKS , 1994 .

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

[29]  D. Prawitz Natural Deduction: A Proof-Theoretical Study , 1965 .

[30]  G. Pottinger,et al.  A type assignment for the strongly normalizable |?-terms , 1980 .