## Intersection Types and Bounded Polymorphism (1996)

Citations: | 37 - 0 self |

### BibTeX

@MISC{Pierce96intersectiontypes,

author = {Benjamin C. Pierce},

title = {Intersection Types and Bounded Polymorphism},

year = {1996}

}

### Years of Citing Articles

### OpenURL

### Abstract

this paper (Compagnoni, Intersection Types and Bounded Polymorphism 3 1994; Compagnoni, 1995) has been used in a type-theoretic model of object-oriented multiple inheritance (Compagnoni & Pierce, 1996). Related calculi combining restricted forms of intersection types with higher-order polymorphism and dependent types have been studied by Pfenning (Pfenning, 1993). Following a more detailed discussion of the pure systems of intersections and bounded quantification (Section 2), we describe, in Section 3, a typed -calculus called F ("Fmeet ") integrating the features of both. Section 4 gives some examples illustrating this system's expressive power. Section 5 presents the main results of the paper: a prooftheoretic analysis of F 's subtyping and typechecking relations leading to algorithms for checking subtyping and for synthesizing minimal types for terms. Section 6 discusses semantic aspects of the calculus, obtaining a simple soundness proof for the typing rules by interpreting types as partial equivalence relations; however, another proof-theoretic result, the nonexistence of least upper bounds for arbitrary pairs of types, implies that typed models may be more difficult to construct. Section 7 offers concluding remarks. 2. Background

### Citations

868 |
A Formulation of the Simple Theory of Types
- Church
- 1941
(Show Context)
Citation Context ...he form \Gamma ` e 2 �� ("under assumptions \Gamma, expression e has type �� "). The rules for variables, abstractions, and applications are exactly the same as in the ordinary simpl=-=y typed -calculus [13]. In addition, the r-=-ule of subsumption states that whenever a term e has a type oe and oe is a subtype of another type �� , the type of e may be promoted to �� : \Gamma ` e 2 �� 1 \Gamma ` �� 1s�� 2 \... |

788 | On understanding types, data abstraction and polymorphism
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...re also used in Forsythe to give an elegant treatment of mutable reference cells by combining the more primitive concepts of "sources for values" and "destinations for values." Bou=-=nded quantification [11, 3, 15, 10]-=-, on the other hand, integrates parametric polymorphism [18, 30] with subtyping by allowing a quantified type to give an upper bound for its parameter; for example, an inhabitant of 8ff Student: List(... |

505 | A semantics of multiple inheritance
- Cardelli
- 1988
(Show Context)
Citation Context ...e secondorders-calculus with bounded quantification (called F ) can both be presented as extensions of the simply typed -calculus enriched with a subtyping relation ( ), a system proposed by Cardelli =-=[6] as a &quo-=-t;core calculus of subtyping" in a foundational framework for object-oriented programming languages. The types ofsconsist of a set of primitive types (ranged over by the metavariable ae) closed u... |

372 |
Towards a theory of type structure
- Reynolds
- 1974
(Show Context)
Citation Context ...nce cells by combining the more primitive concepts of "sources for values" and "destinations for values." Bounded quantification [11, 3, 15, 10], on the other hand, integrates para=-=metric polymorphism [18, 30]-=- with subtyping by allowing a quantified type to give an upper bound for its parameter; for example, an inhabitant of 8ff Student: List(ff)!List(ff) takes as its first parameter an arbitrary subtype o... |

315 | Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem
- Bruijn
- 1972
(Show Context)
Citation Context ...tements that differ only in the names of bound variables are considered identical. (That is., we think of variables not as names but as pointers into the surrounding context, as suggested by deBruijn =-=[16].) Examples are-=- set in a typewriter font; -calculus notation is transliterated as follows: ? is written as T,sas ",sas "", 8 as All, andsas !. Lines of input to the typechecker are prefixed with ? and... |

293 |
Interprétation fonctionelle et élimination des coupures dans l’arithmetique d’ordre supérieur
- Girard
- 1972
(Show Context)
Citation Context ...nce cells by combining the more primitive concepts of "sources for values" and "destinations for values." Bounded quantification [11, 3, 15, 10], on the other hand, integrates para=-=metric polymorphism [18, 30]-=- with subtyping by allowing a quantified type to give an upper bound for its parameter; for example, an inhabitant of 8ff Student: List(ff)!List(ff) takes as its first parameter an arbitrary subtype o... |

273 | Semantics of Programming Languages: Structures and Techniques - Gunter - 1992 |

251 | Inheritance is not subtyping - Cook, Hill, et al. - 1990 |

227 | Data types as lattices - Scott - 1976 |

220 |
A filter lambda model and the completeness of type assignment
- Barendregt, Coppo, et al.
- 1983
(Show Context)
Citation Context ...e extensions, illustrate its properties, and develop proof-theoretic results leading to algorithms for subtyping and typechecking. 1 Introduction Among the intriguing properties of intersection types =-=[2, 12, 14, 29, 33]-=- is their ability to carry detailed information about the way a function behaves when used in different contexts. For example, the function + can be given the type Int!Int!IntsReal!Real!Real, capturin... |

189 | On Understanding Types - Cardelli, Wegner - 1985 |

182 | Refinement types for ML - Freeman, Pfenning - 1991 |

173 | Introduction to Combinators and Calculus - Hindley, Seldin - 1986 |

164 | Simple type-theoretic foundations for object-oriented programming - Pierce, Turner - 1994 |

149 | Operations on records - Cardelli, Mitchell - 1994 |

141 | Typeful Programming
- Cardelli
(Show Context)
Citation Context ...ulus. This calculus, called Fs("F-meet"), provides a formal basis for new programming languages combining the benefits of existing languages based on intersection types [31] or bounded quant=-=ification [8, 24, 4]-=- alone: a simple, semantically clean mechanism for overloading functions, the possibility of code optimization during typechecking, Forsythe's treatment of references, and all the well-known benefits ... |

141 | PolyTOIL: a type-safe polymorphic object-oriented language - Bruce, Schuett, et al. - 1995 |

123 | Inheritance as implicit coercion
- Breazu-Tannen, Coquand, et al.
- 1991
(Show Context)
Citation Context ...re also used in Forsythe to give an elegant treatment of mutable reference cells by combining the more primitive concepts of "sources for values" and "destinations for values." Bou=-=nded quantification [11, 3, 15, 10]-=-, on the other hand, integrates parametric polymorphism [18, 30] with subtyping by allowing a quantified type to give an upper bound for its parameter; for example, an inhabitant of 8ff Student: List(... |

121 | A paradigmatic object-oriented programming language: design, static typing and semantics - Bruce - 1994 |

115 | An Extension of System F with Subtyping
- Cardelli, Martini, et al.
- 1994
(Show Context)
Citation Context ...re also used in Forsythe to give an elegant treatment of mutable reference cells by combining the more primitive concepts of "sources for values" and "destinations for values." Bou=-=nded quantification [11, 3, 15, 10]-=-, on the other hand, integrates parametric polymorphism [18, 30] with subtyping by allowing a quantified type to give an upper bound for its parameter; for example, an inhabitant of 8ff Student: List(... |

111 | Design of the programming language Forsythe
- Reynolds
- 1996
(Show Context)
Citation Context ...pes might even provide two different object-code sequences for the different versions of +, one using a floating point addition instruction and one using integer addition. Reynolds' Forsythe language =-=[31]-=- illustrates this coherent overloading in the context of a practical type system organized around a notion of subtyping. Intersection types are also used in Forsythe to give an elegant treatment of mu... |

105 | Complete restrictions of the intersection type discipline - Bakel - 1992 |

102 | Bounded quantification is undecidable
- Pierce
- 1994
(Show Context)
Citation Context ...n; or : Bool-?Bool-?Bool /" False-?(False-?False/"True-?True) /" True-?Bool-?True 5 Subtyping Algorithm Next we give a semi-decision procedure for the Fssubtype relation. This relation =-=is undecidable [27, 25]-=-, so a semi-decision procedure is the best we can hope for; however, the same algorithm forms a decision procedure for a large fragment of Fs, believed to contain all but some extremely pathological t... |

89 |
Towards a typed foundation for method specialisation and inheritance
- Mitchell
- 1990
(Show Context)
Citation Context ... also been used by Ma [22] as the basis for a syntactical analysis of parametricity in System F. Recent accounts of object-oriented inheritance using higher-order extensions of bounded quantification =-=[4, 9, 23, 28]-=- suggest that a higher-order generalization of Fswould be an appropriate setting for a type theoretic account of multiple inheritance. The following section establishes some notational conventions and... |

87 |
A modest model of records, inheritance and bounded quantification
- Bruce, Longo
- 1990
(Show Context)
Citation Context ...erties of allbasis and arrowbasis for the application cases. 7 Semantics A straightforward untyped semantics can be given for Fsby extending Bruce and Longo's partial equivalence relation model for F =-=[5]-=-. Thestype constructor is interpreted as intersection of PERs, and the bounded quantifier is interpreted as an infinite intersection. More refined models have been given for intersections (c.f. [31]) ... |

68 | Programming with Intersection Types and Bounded Polymorphism
- Pierce
- 1991
(Show Context)
Citation Context ...tch their proofs of soundness and completeness. Section 7 discusses semantic issues, and Section 8 offers directions for future research. A more detailed presentation of these results can be found in =-=[25]. 2 -=-Background The metavariables ff and fi range over type variables; oe, �� , `, OE, and / range over types; e and f range over terms; and x and y range over term variables. A finite sequence with el... |

68 | F-bounded quantification for object-oriented programming - Canning, Cook, et al. - 1989 |

64 | A semantic basis for Quest - Cardelli, Longo - 1991 |

63 | Intersection and union types: syntax and semantics - Barbanera, Dezani-Ciancaglini, et al. - 1995 |

62 | PER models of subtyping, recursive types and higher-order polymorphism - Bruce, Mitchell - 1992 |

61 | Coherence of subsumption, minimum typing and the type checking - Curien, Ghelli - 1992 |

59 | Principal type schemes for an extended type theory - Rocca, Venneri - 1984 |

58 | An extension of Standard ML modules with subtyping and inheritance
- Mitchell, Meldal, et al.
- 1991
(Show Context)
Citation Context ...ulus. This calculus, called Fs("F-meet"), provides a formal basis for new programming languages combining the benefits of existing languages based on intersection types [31] or bounded quant=-=ification [8, 24, 4]-=- alone: a simple, semantically clean mechanism for overloading functions, the possibility of code optimization during typechecking, Forsythe's treatment of references, and all the well-known benefits ... |

57 | Extended type structures and filter lambda models - Coppo, Dezani-Ciancaglini, et al. - 1984 |

54 | Functional characters of solvable terms. Zeitschrift für Mathematische Logik und Grundlagen der Mathematik - Coppo, Dezani-Ciancaglini, et al. - 1981 |

52 | Programming with intersection types, union types, and polymorphism
- Pierce
- 1991
(Show Context)
Citation Context ...not express the idea that every element of Bool is an element of either True or False. This shortcoming, while not serious in practice, has motivated the investigation of a dual notion of union types =-=[1, 20, 26].) The ref-=-inement in the types of true, false, and if can now be exploited in typing new functions: ? or = ? "x:True,False,Bool. "y:True,False,Bool. ? for R in True,False,Bool. ? if [R] x true y; or :... |

49 |
Two extensions of Curry’s type inference system
- Cardone, Coppo
(Show Context)
Citation Context ...e extensions, illustrate its properties, and develop proof-theoretic results leading to algorithms for subtyping and typechecking. 1 Introduction Among the intriguing properties of intersection types =-=[2, 12, 14, 29, 33]-=- is their ability to carry detailed information about the way a function behaves when used in different contexts. For example, the function + can be given the type Int!Int!IntsReal!Real!Real, capturin... |

45 | A type-inference approach to reduction properties and semantics of polymorphic expressions - Mitchell - 1986 |

40 | Decidability of higher-order subtyping with intersection types - Compagnoni - 1994 |

39 | An extension of the basic functionality theory for the - calculus - Coppo, Dezani-Ciancaglini - 1980 |

39 | Proof Theoretic Studies about a Minimal Type System Integrating Inclusion and Parametric Polymorphism - Ghelli - 1990 |

38 | A unifying type-theoretic framework for objects - Hofmann, Pierce - 1995 |

36 | Object-oriented programming without recursive types
- Pierce, Turner
- 1993
(Show Context)
Citation Context ... also been used by Ma [22] as the basis for a syntactical analysis of parametricity in System F. Recent accounts of object-oriented inheritance using higher-order extensions of bounded quantification =-=[4, 9, 23, 28]-=- suggest that a higher-order generalization of Fswould be an appropriate setting for a type theoretic account of multiple inheritance. The following section establishes some notational conventions and... |

35 |
A type assignment for the strongly normalizable terms
- Pottinger
- 1980
(Show Context)
Citation Context ...e extensions, illustrate its properties, and develop proof-theoretic results leading to algorithms for subtyping and typechecking. 1 Introduction Among the intriguing properties of intersection types =-=[2, 12, 14, 29, 33]-=- is their ability to carry detailed information about the way a function behaves when used in different contexts. For example, the function + can be given the type Int!Int!IntsReal!Real!Real, capturin... |

35 | Relational semantics for recursive types and bounded quantification - Cardone - 1989 |

34 |
A Static Type System for Message Passing
- Ghelli
- 1991
(Show Context)
Citation Context ...a semi-decision procedure is the best we can hope for; however, the same algorithm forms a decision procedure for a large fragment of Fs, believed to contain all but some extremely pathological terms =-=[17]-=-. The algorithm presented here generalizes both Reynolds' decision procedure for the subtype relation of Forsythe [personal communication, 1988] and the standard subtyping algorithm for F [3, 15]. Bec... |

32 |
Safe type checking in a statically typed object-oriented programming language
- Bruce
- 1993
(Show Context)
Citation Context ...ulus. This calculus, called Fs("F-meet"), provides a formal basis for new programming languages combining the benefits of existing languages based on intersection types [31] or bounded quant=-=ification [8, 24, 4]-=- alone: a simple, semantically clean mechanism for overloading functions, the possibility of code optimization during typechecking, Forsythe's treatment of references, and all the well-known benefits ... |

32 | The semantics of second-order lambda calculus - Bruce, Meyer, et al. - 1990 |

31 | Principal type scheme and unification for intersection type discipline - Rocca - 1988 |

26 | Type Theories, Normal Forms and D1-Lambda-Models. Information and Computation 72 - COPPO, DEZANI-CIANCAGLINI, et al. - 1987 |