Abstract
The Knuth–Bendix ordering (KBO) is one of the term orderings in widespread use. We present a new algorithm to compute KBO, which is (to our knowledge) the first asymptotically optimal one. Starting with an ‘obviously correct’ version, we use program transformation to stepwise develop an efficient version, making clear the essential ideas, while retaining correctness. By theoretical analysis we show that the worst-case behavior is thereby changed from quadratic to linear. Measurements show the practical improvements of the different variants.
Similar content being viewed by others
References
Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. Journal of the ACM 24(1), 44–67 (1977)
Buch, A., Hillenbrand, T.: \(\textsc{Waldmeister}\): Development of a High Performance Completion-Based Theorem Prover. SEKI-Report 96-01, Universität Kaiserslautern (1996)
Dershowitz, N., Plaisted, D.A.: Rewriting. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, vol. I, ch. 9. Elsevier (2001)
Knuth, D.E., Bendix, P.B.: Simple word problems in universal algebras. In: Leech, J. (ed.) Computational Algebra, pp. 263–297. Pergamon (1970)
Löchner, B., Hillenbrand, T.: A phytography of \(\textsc{Wald\-mei\-ster}\). AI Commun. 15(2–3), 127–133 (2002). See http://www.waldmeister.org
Löchner, B.: Things to know when implementing LPO. Int. J. Artif. Intell. Tools 15(1), 53–79 (2006). A preliminary version appeared. In: Sutcliffe, G., Schulz, S., Tammet, T. (eds.) Proc. 1st Workshop on Empirically Successful First Order Reasoning (ESFOR '04) (2004)
Nieuwenhuis, R., Hillenbrand, T., Riazanov, A., Voronkov, A.: On the evaluation of indexing techniques for theorem proving. In: Goré, R., Leitsch, A., Nipkow, T. (eds.) Proc. 1st International Joint Conference on Automated Reasoning, Lecture Notes in Comput. Sci. 2083, pp. 257–271. Springer, Berlin Heidelberg New York (2001)
Pettorossi, A., Proietti, M.: Rules and strategies for program transformation. In: Möller, B., Partsch, H., Schuman, S. (eds.) Formal Program Development, vol. 755 of Lecture Notes in Comput. Sci., pp. 263–304. Springer, Berlin Heidelberg New York (1993)
Riazanov, A., Voronkov, A.: The design and implementation of \(\textsc{Vampire}\). AI Commun. 15, 91–110 (2002). See http://www.vampire.fm
Riazanov, A., Voronkov, A.: Efficient checking of term ordering constraints. In: Basin, D., Rusinowitch, M. (eds.) Proc. 2nd International Joint Conference on Automated Reasoning, LNCS 3097, pp. 60–74. Springer, Berlin Heidelberg New York (2004)
Schulz, S.: E – A brainiac theorem prover. AI Commun. 15, 111–126 (2002). See http://www.eprover.org
Sutcliffe, G., Suttner, C.B.: The TPTP problem library: CNF release v1.2.1. J. Autom. Reason. 21(2), 177–203 (1998). See http://www.tptp.org
Steinbach, J.: Termination of Rewriting. Ph.D. thesis, Universität Kaiserslautern, 1994. See http://www-madlener.informatik.uni-kl.de/seki/1994/Steinbach.PhDThesis.ps.Z
Wadler, P.: Comprehending monads. Math. Struct. Comput. Sci. 2, 461–493 (1992)
Weidenbach, C.: Combining superposition, sorts and splitting. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, vol. II, ch. 27. Elsevier (2001)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Löchner, B. Things to Know when Implementing KBO. J Autom Reasoning 36, 289–310 (2006). https://doi.org/10.1007/s10817-006-9031-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-006-9031-4