Curry-Style Types for Nominal Terms

  • Maribel Fernández
  • Murdoch J. Gabbay
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4502)


We define a rank 1 polymorphic type system for nominal terms, where typing environments type atoms, variables and function symbols. The interaction between type assumptions for atoms and substitution for variables is subtle: substitution does not avoid capture and so can move an atom into multiple different typing contexts. We give typing rules such that principal types exist and are decidable for a fixed typing environment. α-equivalent nominal terms have the same types; a non-trivial result because nominal terms include explicit constructs for renaming atoms. We investigate rule formats to guarantee subject reduction. Our system is in a convenient Curry-style, so the user has no need to explicitly type abstracted atoms.


binding polymorphism type inference rewriting 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baader, F., Snyder, W.: Unification Theory. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, ch. 8, vol. I, pp. 445–532. Elsevier Science, Amsterdam (2001)CrossRefGoogle Scholar
  2. 2.
    van Bakel, S., Fernández, M.: Normalization results for typable rewrite systems. Information and Computation 133(2), 73–116 (1997)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Barbanera, F., Fernández, M.: Intersection type assignment systems with higher-order algebraic rewriting. Theoretical Computer Science 170, 173–207 (1996)MATHMathSciNetGoogle Scholar
  4. 4.
    Barendregt, H.P.: Pairing without conventional constraints. Zeitschrift für mathematischen Logik und Grundlagen der Mathematik 20, 289–306 (1974)MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Barendregt, H.P.: Lambda Calculi With Types. In: Abramsky, S., Gabbay, D., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, Oxford University Press, Oxford (1992)Google Scholar
  6. 6.
    Barendregt, H.P., Coppo, M., Dezani-Ciancaglini, M.: A filter lambda model and the completeness of type assignment. Journal of Symbolic Logic 48(4), 931–940 (1983)MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Berghofer, S., Urban, C.: A Head-to-Head Comparison of de Bruijn Indices and Names. In: LFMTP 2006, pp. 46–59 (2006)Google Scholar
  8. 8.
    Curry, H.B., Feys, R.: Combinatory Logic, vol. 1. North-Holland, Amsterdam (1958)MATHGoogle Scholar
  9. 9.
    Damas, L.M.M., Milner, R.: Principal Type Schemes for Functional programs. In: Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, ACM Press, New York (1982)Google Scholar
  10. 10.
    Fernández, M., Gabbay, M.J., Mackie, I.: Nominal Rewriting Systems. In: PPDP 2004. ACM Symposium on Principles and Practice of Declarative Programming, ACM Press, New York (2004)Google Scholar
  11. 11.
    Fernández, M., Gabbay, M.J.: Nominal Rewriting with Name Generation: Abstraction vs. Locality. In: PPDP 2005. ACM Symposium on Principles and Practice of Declarative Programming, ACM Press, New York (2005)Google Scholar
  12. 12.
    Fernández, M., Gabbay, M.J.: Nominal Rewriting. Information and Computation (to appear), available from
  13. 13.
    Gabbay, M.J., Pitts, A.M.: A New Approach to Abstract Syntax with Variable Binding. Formal Aspects of Computing 13, 341–363 (2002)MATHCrossRefGoogle Scholar
  14. 14.
    Gabbay, M.J.: A Theory of Inductive Definitions with Alpha-Equivalence. PhD Thesis, Cambridge University (2000)Google Scholar
  15. 15.
    Girard, J.-Y.: The System F of Variable Types, Fifteen Years Later, Theoretical Computer Science 45 (1986)Google Scholar
  16. 16.
    Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)MATHGoogle Scholar
  17. 17.
    Khasidashvili, Z.: Expression reduction systems. In: Tbisili. Proceedings of I.Vekua Institute of Applied Mathematics, vol. 36, pp. 200–220 (1990)Google Scholar
  18. 18.
    Klop, J.-W., van Oostrom, V., van Raamsdonk, F.: Combinatory reduction systems, introduction and survey. Theoretical Computer Science 121, 279–308 (1993)MATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Mayr, R., Nipkow, T.: Higher-order rewrite systems and their confluence. Theoretical Computer Science 192, 3–29 (1998)MATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Shinwell, M.R., Pitts, A.M., Gabbay, M.: FreshML: Programming with binders made simple. In: ICFP 2003, pp. 263–274 (2003)Google Scholar
  21. 21.
    Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. Theoretical Computer Science 323, 473–497 (2004)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Maribel Fernández
    • 1
  • Murdoch J. Gabbay
    • 2
  1. 1.King’s College London, Dept. Computer Science, Strand, London WC2R 2LSUK
  2. 2.Heriot-Watt University, Dept. Mathematics and Computer Science, Riccarton, Edinburgh EH14 4ASUK

Personalised recommendations