(Nominal) Unification by Recursive Descent with Triangular Substitutions

  • Ramana Kumar
  • Michael Norrish
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6172)


Using HOL4, we mechanise termination and correctness for two unification algorithms, written in a recursive descent style. One computes unifiers for first order terms, the other for nominal terms (terms including α-equivalent binding structure). Both algorithms work with triangular substitutions in accumulator-passing style: taking a substitution as input, and returning an extension of that substitution on success.


Recursive Call Nominal Term Logic Programming Language Termination Argument Recursive Descent 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Martelli, A., Montanari, U.: An efficient unification algorithm. ACM Trans. Program. Lang. Syst. 4(2), 258–282 (1982)zbMATHCrossRefGoogle Scholar
  2. 2.
    Paterson, M., Wegman, M.N.: Linear unification. J. Comput. Syst. Sci. 16(2), 158–167 (1978)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Calvès, C., Fernández, M.: A polynomial nominal unification algorithm. Theor. Comput. Sci. 403(2-3), 285–306 (2008)zbMATHCrossRefGoogle Scholar
  4. 4.
    Levy, J., Villaret, M.: Nominal unification from a higher-order perspective. In: Voronkov, A. (ed.) RTA 2008. LNCS, vol. 5117, pp. 246–260. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Hoder, K., Voronkov, A.: Comparing unification algorithms in first-order theorem proving. In: Mertsching, B., Hund, M., Aziz, M.Z. (eds.) KI 2009. LNCS, vol. 5803, pp. 435–443. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Baader, F., Snyder, W.: Unification theory. In: Robinson, J.A., Voronkov, A. (eds.) Handbook of Automated Reasoning, pp. 445–532. Elsevier and MIT Press (2001)Google Scholar
  7. 7.
    Friedman, D.P., Byrd, W.E., Kiselyov, O.: The Reasoned Schemer. The MIT Press, Cambridge (2005)Google Scholar
  8. 8.
    Byrd, W.E.: Relational Programming in miniKanren: Techniques, Applications, and Implementations. PhD thesis, Indiana University (2009)Google Scholar
  9. 9.
    Urban, C., Pitts, A.M., Gabbay, M.: Nominal unification. Theor. Comput. Sci. 323(1-3), 473–497 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Cheney, J., Urban, C.: alpha-Prolog: A logic programming language with names, binding and α-equivalence. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 269–283. Springer, Heidelberg (2004)Google Scholar
  11. 11.
    Byrd, W.E., Friedman, D.P.: alphaKanren: A fresh name in nominal logic programming languages. Scheme and Functional Programming (2007)Google Scholar
  12. 12.
    Paulson, L.C.: Verifying the unification algorithm in LCF. Sci. Comput. Program. 5(2), 143–169 (1985)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    McBride, C.: First-order unification by structural recursion. J. Funct. Program. 13(6), 1061–1075 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Ruiz-Reina, J.L., Martín-Mateos, F.J., Alonso, J.A., Hidalgo, M.J.: Formal correctness of a quadratic unification algorithm. J. Autom. Reasoning 37(1-2), 67–92 (2006)zbMATHCrossRefGoogle Scholar
  15. 15.
    Urban, C.: Nominal unification (2004),
  16. 16.
    Calvès, C., Fernández, M.: Implementing nominal unification. Electr. Notes Theor. Comput. Sci. 176(1), 25–37 (2007)CrossRefGoogle Scholar
  17. 17.
    Conchon, S., Filliâtre, J.C.: A persistent union-find data structure. In: Russo, C.V., Dreyer, D. (eds.) ML, pp. 37–46. ACM, New York (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Ramana Kumar
    • 1
  • Michael Norrish
    • 1
    • 2
  1. 1.The Australian National University 
  2. 2.Canberra Research Lab., NICTA 

Personalised recommendations