Nominal Unification

  • Christian Urban
  • Andrew Pitts
  • Murdoch Gabbay
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2803)


We present a generalisation of first-order unification to the practically important case of equations between terms involving binding operations. A substitution of terms for variables solves such an equation if it makes the equated terms α-equivalent, i.e. equal up to renaming bound names. For the applications we have in mind, we must consider the simple, textual form of substitution in which names occurring in terms may be captured within the scope of binders upon substitution. We are able to take a ‘nominal’ approach to binding in which bound entities are explicitly named (rather than using nameless, de Bruijn-style representations) and yet get a version of this form of substitution that respects α-equivalence and possesses good algorithmic properties. We achieve this by adapting an existing idea and introducing a key new idea. The existing idea is terms involving explicit substitutions of names for names, except that here we only use explicit permutations (bijective substitutions). The key new idea is that the unification algorithm should solve not only equational problems, but also problems about the freshness of names for terms. There is a simple generalisation of the classical first-order unification algorithm to this setting which retains the latter’s pleasant properties: unification problems involving α-equivalence and freshness are decidable; and solvable problems possess most general solutions.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1998)Google Scholar
  2. 2.
    Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam (1984)MATHGoogle Scholar
  3. 3.
    Caires, L., Cardelli, L.: A spatial logic for concurrency II. In: Brim, L., Jančar, P., Křetínský, M., Kucera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 209–225. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  4. 4.
    Cardelli, L., Gardner, P., Ghelli, G.: Manipulating trees with hidden labels. In: Gordon, A.D. (ed.) FOSSACS 2003. LNCS, vol. 2620, pp. 216–232. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  5. 5.
    Cheney, J., Urban, C.: αProlog, a fresh approach to logic programming modulo α-equivalence. In: Proc. of UNIF 2003, number DSIC-II/12/03 in Departamento de Sistemas Informáticos y Computación Technical Report Series. Universidad Politécnica de Valencia (2003)Google Scholar
  6. 6.
    Dowek, G.: Higher-order unification and matching. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, ch. 16, pp. 1009–1062. Elsevier, Amsterdam (2001)CrossRefGoogle Scholar
  7. 7.
    Dowek, G., Hardin, T., Kirchner, C.: Higher-order unification via explicit substitutions. In: 10th Symposium of LICS, pp. 366–374. IEEE Computer Society Press, Los Alamitos (1995)Google Scholar
  8. 8.
    Dowek, G., Hardin, T., Kirchner, C., Pfenning, F.: Higher-order unification via explicit substitutions: the case of higher-order patterns. In: Proc. of JICSLP, pp. 259–273 (1996)Google Scholar
  9. 9.
    Fiore, M.P., Plotkin, G.D., Turi, D.: Abstract syntax and variable binding. In: 14th Symposium of LICS, pp. 193–202. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  10. 10.
    Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax involving binders. In: 14th Symposium of LICS, pp. 214–224. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  11. 11.
    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
  12. 12.
    Gunter, C.A.: Semantics of Programming Languages: Structures and Techniques. In: Foundations of Computing, MIT Press, Cambridge (1992)Google Scholar
  13. 13.
    Hamana, M.: A logic programming language based on binding algebras. In: Kobayashi, N., Pierce, B.C. (eds.) TACS 2001. LNCS, vol. 2215, pp. 243–262. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  14. 14.
    Hamana, M.: Simple β 0-unification for terms with context holes. In: Proc. of UNIF 2002 (2002) (unpublished proceedings)Google Scholar
  15. 15.
    Hashimoto, M., Ohori, A.: A typed context calculus. TCS 266, 249–271 (2001)MATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Honsell, F., Miculan, M., Scagnetto, I.: An axiomatic approach to metareasoning on nominal algebras in HOAS. In: Orejas, F., Spirakis, P.G., van Leeuwen, J. (eds.) ICALP 2001. LNCS, vol. 2076, pp. 963–978. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Klop, J.W.: Term rewriting systems. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, vol. 2, pp. 1–116. OUP (1992)Google Scholar
  18. 18.
    Martelli, A., Montanari, U.: An efficient unification algorithm. ACM Trans. Programming Languages and Systems 4(2), 258–282 (1982)MATHCrossRefGoogle Scholar
  19. 19.
    Michaylov, S., Pfenning, F.: An empirical study of the runtime behaviour of higher-order logic programs. In: Proc. Workshop on the λProlog Programming Language, pp. 257–271 (1992); CIS Technical Report MS-CIS-92-86Google Scholar
  20. 20.
    Miller, D.: A logic programming language with lambda-abstraction, function variables, and simple unification. Journal of Logic and Computation 1, 497–536 (1991)MATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes (parts I and II). Information and Computation 100, 1–77 (1992)MATHCrossRefMathSciNetGoogle Scholar
  22. 22.
    Pfenning, F., Elliott, C.: Higher-order abstract syntax. In: Proc. ACM-SIGPLAN Conference on Programming Language Design and Implementation, pp. 199–208. ACM Press, New York (1988)Google Scholar
  23. 23.
    Pitts, A.M.: Nominal logic: A first order theory of names and binding. In: Kobayashi, N., Pierce, B.C. (eds.) TACS 2001. LNCS, vol. 2215, pp. 219–242. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  24. 24.
    Pitts, A.M., Gabbay, M.J.: A metalanguage for programming with bound names modulo renaming. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 230–255. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  25. 25.
    Plotkin, G.D.: An illative theory of relations. In: Situation Theory and its Applications. CSLI Lecure Notes, vol. 22, pp. 133–146. Stanford University, Stanford (1990)Google Scholar
  26. 26.
    Sato, M., Sakurai, T., Kameyama, Y.: A simply typed context calculus with first-class environments. Journal of Functional and Logic Programming 2002(4) (2002)Google Scholar
  27. 27.
    Shinwell, M.R., Pitts, A.M., Gabbay, M.J.: FreshML: Programming with binders made simple. In: Proc. of ICFP 2003, ACM Press, New York (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Christian Urban
    • 1
  • Andrew Pitts
    • 1
  • Murdoch Gabbay
    • 1
  1. 1.University of CambridgeCambridgeUK

Personalised recommendations