Abstract
Abstract
This paper is an informal introduction to the theory of types which use a connective “∧” for the intersection of two types and a constant “ω” for a universal type, besides the usual connective “→” for function-types. This theory was first devised in about 1977 by Coppo, Dezani and Sallé in the context ofλ-calculus and its main development has been by Coppo and Dezani and their collaborators in Turin. With suitable axioms and rules to assign types toλ-calculus terms, they obtained a system in which (i) the set of types given to a term does not change underλ-conversion, (ii) some interesting sets of terms, for example the solvable terms and the terms with normal form, can be characterised exactly by the types of their members, and (iii) the type-apparatus is not so complex as polymorphic systems with quantifier-containing types and therefore probably not so expensive to implement mechanically as these systems.
There are in fact several variant systems with different detailed properties. This paper defines and motivates the simplest one from which the others are derived, and describes its most basic properties. No proofs are given but the motivation is shown by examples. A comprehensive bibliography is included.
- [AlB91] Alessi, F. and Barbanera, F.: Strong Conjunction and intersection Types. In:Mathematical Foundations of Computer Science 1991, A. Tarlecki (ed.),Lecture Notes in Computer Science 520, Springer-Verlag, pp. 64–73 (1991).Google Scholar
- [Bak92] van Bakel, S: Complete Restrictions of the Intersection Type Discipline,Theoretical Computer Science (to appear).Google Scholar
- [BaD91] Barbanera, F. and Dezani, M.: Intersection and Union Types. In:Theoretical Aspects of Computer Software, International Conference TACS '91,Sendai, Japan, September 1991,Proceedings, T. Ito and A. R. Meyer (eds.),Lecture Notes in Computer Science 526, Springer-Verlag, pp. 651–674 (1991).Google Scholar
- [Bar89] Barbanera, F.: Combining Term Rewriting and Type Assignment Systems,Proc. Third Italian Conf. on Theoretical Computer Science, Mantova 1989, A. Bertoniet al. (eds) World Scientific Press, pp. 71–84 (1989). (To appear inFoundations of Computer Science).Google Scholar
- [BCD83] A Filter Lambda Model and the Completeness of Type AssignmentJournal of Symbolic Logic198348931940Google ScholarCross Ref
- [BoR89] Bosio, E. and Ronchi della Rocca, S.: Type Synthesis for Intersection Type Discipline. In:Proc. Third Italian Conference on Theoretical Computer Science Mantova 1989, A. Bertoniet al. (eds.), World Scientific Press, pp. 109–122, (1989).Google Scholar
- [Chu40] A Formalisation of the Simple Theory of TypesJournal of Symbolic Logic194055668Google ScholarCross Ref
- [Cop80] Coppo, M.: An Extended Polymorphic Type System for Applicative Languages. In: Mathematical Foundations of Computer Science 1980, Proceedings of the 9th Symposium, Held in Rydzyna, Poland, P. Dembinski (ed.),Lecture Notes in Computer Science 88, Springer-Verlag, pp. 194–204 (1980).Google Scholar
- [CoD78] A New Type-Assignment for Lambda TermsArchiv für Math. Logik197819139156Google ScholarCross Ref
- [CoD80] An Extension of the Basic Functionality Theory for theλ-CalculusNotre Dame Journal of Formal Logic198021685693Google ScholarCross Ref
- [CDH83] Coppo, M., Dezani, M., Honsell, F. and Longo, G.: Extended Type Structures and Filter Lambda Models. In:Logic Colloquium '82, G. Lolliet al., (eds), North-Holland, pp. 241–262 (1983).Google Scholar
- [CDS79] Coppo, M., Dezani, M. and Sallé, P.: Functional Characterization of Some Semantic Equalities Insideλ-Calculus. In: Automata, Languages and programming, Sixth Colloquium, Graz, July 1979, H. A. Maurer (ed.),Lecture Notes in Computer Science 71, Springer-Verlag, pp. 133–146 (1979).Google Scholar
- [CDV80] Coppo, M., Dezani, M. and Venneri, B. Principal Type Schemes and λ-Calculus Semantics. In:To H. B. Curry, J. R. Hindley and J. P. Seldin (eds), Academic Press, pp. 535–560 (1980).Google Scholar
- [CDV81] Functional Characters of Solvable TermsZeit. Math. Logik1981274558Google ScholarCross Ref
- [CDZ87] Type-Theories, Normal Forms, and D∞-Lambda ModelsInformation and Computation19877285116Google ScholarDigital Library
- [Cur69] Modified Basic Functionality in Combinatory LogicDialectica1969238392Google ScholarCross Ref
- [DeH92] Dezani, M. and Hindley, J. R.: Intersection Types for Combinatory Logic,Theoretical Computer Science (to appear).Google Scholar
- [DeM84] Dezani, M. and Margaria, I.: F-Semantics for Intersection Type Discipline. In: Semantics of Data Types, International Symposium, Sophia-Antipolis, France, June 1984, Proceedings, G. Kahn, D. MacQueen and G. Plotkin (eds.),Lecture Notes in Computer Science, 173, Springer-Verlag, 279–300 (1984).Google Scholar
- [DeM86] A Characterization of F-complete Type AssignmentsTheoretical Computer Science198645121157Google Scholar
- [Hay91] Hayashi, S.: Singleton, union and intersection types for program extraction. In: Theoretical Aspects of Computer Software, international Conference TACS '91, Sendai, Japan, September 1991, Proceedings, T. Ito and A. R. Meyer (eds.),Lecture Notes in Computer Science 526, Springer-Verlag, pp. 701–730 (1991).Google Scholar
- [Hin82] Hindley, J. R.: The Simple Semantics for Coppo-Dezani-Sallé Types. In: International Symposium on programming, 5th Colloquium, Turin, April 1982, M. Dezani and U. Montanari (eds.),Lecture Notes in Computer Science 137, Springer-Verlag, 212–226 (1982).Google Scholar
- [HiS86] Hindley, J. R. and Seldin, J. P.:Introduction to Combinators and λ-Calculus, Cambridge University Press, 1986.Google Scholar
- [HoR91] Honsell, F. and Ronchi della Rocca, S.: Reasoning About Interpretation in Qualitative Lambda Models. In:IFIP TC2 Working Conf. on Programming Concepts and Methods 1990, North-Holland, pp. 492–508, (1991).Google Scholar
- [Lop85a] Lopez-Escobar, E. K. G.: Proof Functional Connectives. In:Lecture Notes in Mathematics. 1130, Springer-Verlag, 208–221 (1985).Google Scholar
- [Lop85b] On Intuitionistic Sentential ConnectivesRev. Colombiana de Math.198519117130Google Scholar
- [MaZ91] Margaria, I., Zacchi, M.: Principal Typing in a Polymorphic-intersection Type Discipline. MS, Dipartimento di Informatica, Corso Svizzera 185, Turin, Italy (1991).Google Scholar
- [Min89] The Completeness of Provable RealizabilityNotre Dame Journal of Formal Logic198930420441Google ScholarCross Ref
- [Pie91] Programming with intersection types, union types and polymorphismTechnical Report CMU-CS-91-1061991Pittsburgh, USASchool of Computer Science, Carnegie Mellon UniversityGoogle Scholar
- [Pot80] Pottinger, G.: A Type Assignment for the Strongly Normalizable λ-Terms. In:To H. B. Curry, J. R. Hindley and J. P. Seldin (eds), Academic Press, pp. 561–577, (1980).Google Scholar
- [Rey88] Preliminary Design of the Programming Language ForsytheReport CMU-CS-88-1591988Pittsburgh, USAComputer Science Department, Carnegie-Mellon UniversityGoogle Scholar
- [Rey89] Reynolds, J. C.: Syntactic Control of Interference, Part 2. In: Automata, Languages and Programming, 16th International Colloquium, Stresa, Italy, July 1989, Proceedings, G. Ausiello, M. Dezani and S. Ronchi della Rocca (eds.),Lecture Notes in Computer Science 372, Springer-Verlag, pp. 704–722 (1989).Google Scholar
- [Rey91] Reynolds, J. C.: The Coherence of Languages with Intersection Types. In: Theoretical Aspects of Computer Software, International Conference TACS '91, Sendai, Japan, September 1991, Proceedings, T. Ito and A. R. Meyer (eds.),Lecture Notes in Computer Science 526, Springer-Verlag, pp. 675–700 (1991).Google Scholar
- [Ron82] Characterization Theorems for a Filter Lambda ModelInformation and Control198254201216Google Scholar
- [RoV84] Principal Type-Schemes for an Extended Type TheoryTheoretical Computer Science198428151169Google ScholarCross Ref
- [Sal78] Sallé, P.: Une Extension de la Théorie des Types. In: Automata, Languages and Programming, Fifth Colloquium, Udine, July 1978, G. Ausiello and C. Böhm (eds.),Lecture Notes in Computer Science 62, Springer-Verlag, pp. 398–410 (1978).Google Scholar
Index Terms
- Types with intersection: An introduction
Recommendations
Gradual typing with union and intersection types
We propose a type system for functional languages with gradual types and set-theoretic type connectives and prove its soundness. In particular, we show how to lift the definition of the domain and result type of an application from non-gradual types to ...
Disjoint intersection types
ICFP 2016: Proceedings of the 21st ACM SIGPLAN International Conference on Functional ProgrammingDunfield showed that a simply typed core calculus with intersection types and a merge operator is able to capture various programming language features. While his calculus is type-safe, it is not coherent: different derivations for the same expression ...
Disjoint intersection types
ICFP '16Dunfield showed that a simply typed core calculus with intersection types and a merge operator is able to capture various programming language features. While his calculus is type-safe, it is not coherent: different derivations for the same expression ...
Comments