Intersection types and bounded polymorphism

Intersection types and bounded quantification are complementary extensions of a first-order programming language with subtyping. We define a typed λ-calculus combining these extensions, illustrate its unusual properties, and develop basic proof-theoretic and semantic results leading to algorithms for subtyping and typechecking.

[1]  Robert Cartwright,et al.  A practical soft type system for scheme , 1997, TOPL.

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

[3]  M. Dezani-Ciancaglini,et al.  Extended Type Structures and Filter Lambda Models , 1984 .

[4]  Susumu Hayashi Singleton, Union and Intersection Types for Program Extraction , 1994, Inf. Comput..

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

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

[7]  Mariangiola Dezani-Ciancaglini,et al.  A new type assignment for λ-terms , 1978, Arch. Math. Log..

[8]  John Mitchell,et al.  Type Inference and Type Containment , 1984, Semantics of Data Types.

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

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

[11]  B. Pierce Programming with intersection types, union types, and polymorphism , 1991 .

[12]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

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

[14]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

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

[16]  John C. Mitchell,et al.  A type system for prototyping languages , 1994, POPL '94.

[17]  Daniel Leivant Discrete polymorphism , 1990, LISP and Functional Programming.

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

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

[20]  John C. Reynolds,et al.  The Coherence of Languages with Intersection Types , 1991, TACS.

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

[22]  Mariangiola Dezani-Ciancaglini,et al.  F-Semantics for Intersection Type Discipline , 1984, Semantics of Data Types.

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

[24]  Mariangiola Dezani-Ciancaglini,et al.  Intersection and Union Types , 1991, TACS.

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

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

[27]  John C. Mitchell,et al.  An extension of standard ML modules with subtyping and inheritance , 1991, POPL '91.

[28]  P. Sallé Une extension de la theorie des types en λ-calcul , 1978 .

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

[30]  Kim B. Bruce,et al.  PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language , 1995, ECOOP.

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

[32]  Mariangiola Dezani-Ciancaglini,et al.  Type Theories, Normal Forms and D_\infty-Lambda-Models , 1987, Inf. Comput..

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

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

[35]  M. Coppo Type theories, normal forms, and D?-lambda-models*1 , 1987 .

[36]  Martín Abadi,et al.  An interpretation of objects and object types , 1996, POPL '96.

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

[38]  Kim B. Bruce The Equivalence of Two Semantic Definitions for Inheritance in Object-Oriented Languages , 1991, MFPS.

[39]  Simona Ronchi Della Rocca,et al.  Principal Type Schemes for an Extended Type Theory , 1984, Theor. Comput. Sci..

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

[41]  Giorgio Ghelli,et al.  A static type system for message passing , 1991, OOPSLA '91.

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

[43]  Paola Giannini,et al.  Principal Types and Unification for a Simple Intersection Type System , 1995, Inf. Comput..

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

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

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

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

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

[49]  Steffen van Bakel,et al.  Complete Restrictions of the Intersection Type Discipline , 1992, Theor. Comput. Sci..

[50]  Dana S. Scott,et al.  Data Types as Lattices , 1976, SIAM J. Comput..

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

[52]  Giorgio Ghelli,et al.  Subtyping + Extensionality: Confluence of beta-eta-top reduction in F<= , 1991, TACS.

[53]  Mariangiola Dezani-Ciancaglini,et al.  Functional Characters of Solvable Terms , 1981, Math. Log. Q..

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

[55]  Simona Ronchi Della Rocca,et al.  Principal Type Scheme and Unification for Intersection Type Discipline , 1988, Theor. Comput. Sci..

[56]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[57]  J. Roger Hindley,et al.  To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism , 1980 .

[58]  M. Coppo,et al.  Functional Characterization of Some Semantic Equalities inside Lambda-Calculus , 1979, ICALP.

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

[60]  Mike Fagan,et al.  Soft typing: an approach to type checking for dynamically typed languages , 1992 .

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

[62]  Robert Cartwright,et al.  Soft typing , 2004, SIGP.

[63]  Trevor Jim What are principal typings and what are they good for? , 1996, POPL '96.

[64]  Mariangiola Dezani-Ciancaglini,et al.  Combining Type Disciplines , 1994, Ann. Pure Appl. Log..

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

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

[67]  Luca Cardelli,et al.  Structural subtyping and the notion of power type , 1988, POPL '88.

[68]  F. Cardone,et al.  Two extensions of Curry's type inference system , 1990 .

[69]  Giuseppe Rosolini,et al.  Extensional PERs , 1992, Inf. Comput..

[70]  Mario Coppo,et al.  Principal type-schemes and lambda-calculus semantics , 1980 .

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

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

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

[74]  Benjamin C. Pierce,et al.  Object-oriented programming without recursive types , 1993, POPL '93.

[75]  Kim B. Bruce Safe type checking in a statically-typed object-oriented programming language , 1993, POPL '93.

[76]  William R. Cook,et al.  Interfaces for strongly-typed object-oriented programming , 1989, OOPSLA '89.

[77]  Martin Hofmann,et al.  A unifying type-theoretic framework for objects , 1994, Journal of Functional Programming.

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

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

[80]  John C. Mitchell A type-inference approach to reduction properties and semantics of polymorphic expressions (summary) , 1986, LFP '86.

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

[82]  QingMing Ma,et al.  Parametricity as subtyping , 1992, POPL '92.

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

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

[85]  William C. Frederick,et al.  A Combinatory Logic , 1995 .

[86]  R. Tibshirani,et al.  An introduction to the bootstrap , 1993 .

[87]  Steffen van Bakel,et al.  Principal Type Schemes for the Strict Type Assignment System , 1993, J. Log. Comput..

[88]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.

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

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