Advertisement

Subtyping Union Types

  • Jérôme Vouillon
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3210)

Abstract

Subtyping can be fairly complex for union types, due to interactions with other types, such as function types. Furthermore, these interactions turn out to depend on the calculus considered: for instance, a call-by-value calculus and a call-by-name calculus will have different possible subtyping rules. In order to abstract ourselves away from this dependence, we consider a fairly large class of calculi. This allows us to find a subtyping relation which is both robust (it is sound for all calculi) and precise (it is complete with respect to the class of calculi).

Keywords

union types subtyping semantics lambda-calculus 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Damm, F.: Subtyping with union types, intersection types and recursive types II. Research Report 2259, INRIA Rennes (1994)Google Scholar
  2. 2.
    Vouillon, J.: Subtyping union types (extended version). Manuscript (2004), available from http://www.pps.jussieu.fr/~vouillon/publi/#union
  3. 3.
    Vouillon, J., Melliès, P.A.: Semantic types: A fresh look at the ideal model for types. In: Proceedings of the 31th ACM Conference on Principles of Programming Languages, Venezia, Italia, pp. 52–63. ACM Press, New York (2004)Google Scholar
  4. 4.
    Melliès, P.A., Vouillon, J.: Recursive polymorphic types and parametricity in an operational framework. Preprint PPS//04/06//no 30 (2004), available from http://www.pps.jussieu.fr/~vouillon/publi/#semtypes2
  5. 5.
    Girard, J.Y.: Interprétation fonctionelle et élimination des coupures dans l’arithm étique d’ordre supérieur. Th‘ese de doctorat d’État, University of Paris VII (1972)Google Scholar
  6. 6.
    Coq Development Team: The Coq Proof Assistant Reference Manual – Version V7.4 (2003), Available from http://coq.inria.fr/doc/main.html
  7. 7.
    MacQueen, D., Plotkin, G., Sethi, R.: An ideal model for recursive polymorphic types. Information and Control 71, 95–130 (1986)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Girard, J.Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Danos, V., Krivine, J.L.: Disjunctive tautologies and synchronisation schemes. In: Clote, P.G., Schwichtenberg, H. (eds.) CSL 2000. LNCS, vol. 1862, pp. 292–301. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    Krivine, J.L.: Typed lambda-calculus in classical Zermelo-Fraenkel set theory. Archive of Mathematical Logic 40, 189–205 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Pitts, A.M.: Parametric polymorphism and operational equivalence. Mathematical Structures in computer Science 10, 321–359 (2000)zbMATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Frisch, A., Castagna, G., Benzaken, V.: Semantic subtyping. In: 17th IEEE Symposium on Logic in Computer Science, pp. 137–146. IEEE Computer Society Press, Los Alamitos (2002)CrossRefGoogle Scholar
  13. 13.
    Hosoya, H., Vouillon, J., Pierce, B.C.: Regular expression types for XML. In: Proceedings of the International Conference on Functional Programming, ICFP (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Jérôme Vouillon
    • 1
  1. 1.CNRS and Université Paris 7ParisFrance

Personalised recommendations