Comparing Unification Algorithms in First-Order Theorem Proving

  • Kryštof Hoder
  • Andrei Voronkov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5803)


Unification is one of the key procedures in first-order theorem provers. Most first-order theorem provers use the Robinson unification algorithm. Although its complexity is in the worst case exponential, the algorithm is easy to implement and examples on which it may show exponential behaviour are believed to be atypical. More sophisticated algorithms, such as the Martelli and Montanari algorithm, offer polynomial complexity but are harder to implement.

Very little is known about the practical perfomance of unification algorithms in theorem provers: previous case studies have been conducted on small numbers of artificially chosen problem and compared term-to-term unification while the best theorem provers perform set-of-terms-to-term unification using term indexing.

To evaluate the performance of unification in the context of term indexing, we made large-scale experiments over the TPTP library containing thousands of problems using the COMPIT methodology. Our results confirm that the Robinson algorithm is the most efficient one in practice. They also reveal main sources of inefficiency in other algorithms. We present these results and discuss various modification of unification algorithms.


Hash Function Theorem Prover Function Symbol Unification Algorithm Term Indexing 
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.
    Albert, L., Casas, R., Fages, F., Torrecillas, A., Zimmermann, P.: Average case analysis of unification algorithms. In: Jantzen, M., Choffrut, C. (eds.) STACS 1991. LNCS, vol. 480, pp. 196–213. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  2. 2.
    Avenhaus, J., Denzinger, J., Fuchs, M.: Discount: A system for distributed equational deduction. In: Hsiang, J. (ed.) RTA 1995. LNCS, vol. 914, pp. 397–402. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  3. 3.
    Corbin, J., Bidoit, M.: A rehabilitation of Robinson’s unification algorithm. In: IFIP Congress, pp. 909–914 (1983)Google Scholar
  4. 4.
    Escalada-Imaz, G., Ghallab, M.: A practically efficient and almost linear unification algorithm. Artif. Intell. 36(2), 249–263 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Guibas, L.J., Szemerédi, E.: The analysis of double hashing. J. Comput. Syst. Sci. 16(2), 226–274 (1978)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Hillenbrand, T., Buch, A., Vogt, R., Löchner, B.: Waldmeister: High-performance equational deduction. Journal of Automated Reasoning 18(2), 265–270 (1997)CrossRefGoogle Scholar
  7. 7.
    Kahn, A.B.: Topological sorting of large networks. Commun. ACM 5(11), 558–562 (1962)CrossRefzbMATHGoogle Scholar
  8. 8.
    Martelli, A., Montanari, U.: An efficient unification algorithm. ACM Trans. Program. Lang. Syst. 4(2), 258–282 (1982)CrossRefzbMATHGoogle Scholar
  9. 9.
    Nieuwenhuis, R., Hillenbrand, T., Riazanov, A., Voronkov, A.: On the evaluation of indexing techniques for theorem proving. In: Goré, R.P., Leitsch, A., Nipkow, T. (eds.) IJCAR 2001. LNCS (LNAI), vol. 2083, pp. 257–271. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  10. 10.
    Paterson, M.S., Wegman, M.N.: Linear unification. In: STOC 1976, pp. 181–186. ACM, New York (1976)Google Scholar
  11. 11.
    Ramakrishnan, I.V., Sekar, R.C., Voronkov, A.: Term indexing. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, pp. 1853–1964 (2001)Google Scholar
  12. 12.
    Riazanov, A., Voronkov, A.: The design and implementation of Vampire. AI Commun. 15(2,3), 91–110 (2002)zbMATHGoogle Scholar
  13. 13.
    Robinson, J.A.: A machine-oriented logic based on the resolution principle. J. ACM 12(1), 23–41 (1965)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Ruzicka, P., Prívara, I.: An almost linear robinson unification algorithm. In: Koubek, V., Janiga, L., Chytil, M.P. (eds.) MFCS 1988. LNCS, vol. 324, pp. 501–511. Springer, Heidelberg (1988)CrossRefGoogle Scholar
  15. 15.
    Schulz, S.: E — a brainiac theorem prover 15(2-3), 111–126 (2002)Google Scholar
  16. 16.
    Tarjan, R.E.: Efficiency of a good but not linear set union algorithm. J. ACM 22(2), 215–225 (1975)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Kryštof Hoder
    • 1
  • Andrei Voronkov
    • 1
  1. 1.University of ManchesterManchesterUK

Personalised recommendations