Abstract
We present a case study using ACL2 to verify a nontrivial algorithm that uses efficient data structures. The algorithm receives as input two first-order terms, and it returns a most general unifier of these terms if they are unifiable, failure otherwise. The verified implementation stores terms as directed acyclic graphs by means of a pointer structure. Its time complexity is \(O(n^2)\) and its space complexity \(O(n)\), and it can be executed in ACL2 at a speed comparable to a similar C implementation. We report the main issues encountered to achieve this formally verified implementation.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge, UK (1998)
Baader, F., Snyder, W.: Unification theory. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, vol. 1, pp. 445–532. Elsevier, Amsterdam (2001)
Corbin, J., Bidoit, M.: A rehabilitation of Robinson’s Unification Algorithm. Inf. Process. 83, 909–914 (1983) North-Holland
Greve, D., Wilding, M.: High-speed, analyzable simulators. Computer-Aided Reasoning: ACL2 Case Studies, chapter 8. Kluwer, Norwell, MA (2000)
Kaufmann, M., Manolios, P., Moore, J S.: Computer-Aided Reasoning: An Approach. Kluwer, Norwell, MA (2000)
Kaufmann, M., Moore, J S.: ACL2 home page, 2005. URL: http://www.cs.utexas.edu/users/moore/acl2
Moore, J S.: An exercise in graph theory. Computer-Aided Reasoning: ACL2 Case Studies, chapter 5. Kluwer, Norwell, MA (2000)
Ruiz-Reina, J.L., Alonso, J.A., Hidalgo, M.J., Martín, F.J.: Formal proofs about rewriting using ACL2. Ann. Math. Artif. Intell. 36, 239–262 (2002), Kluwer
Ruiz-Reina, J.L., Alonso, J.A., Hidalgo, M.J., Martín, F.J.: A theory about first-order terms in ACL2. In: Third ACL2 Workshop, Grenoble, 2002. URL: http://www.cs.utexas.edu/users/moore/acl2/workshops.html
Ruiz-Reina, J.L., Alonso, J.A., Hidalgo, M.J., Martín, F.J.: A formally verified quadratic unification algorithm. In: Fourth ACL2 Workshop, Austin, 2004. URL: http://www.cs.utexas.edu/users/moore/acl2/workshops.html
Ruiz-Reina, J.L., Alonso, J.A., Hidalgo, M.J., Martín, F.J.: A verified quadratic dag unification algorithm in ACL2, 2005. URL: http://www.cs.us.es/~jruiz/q-dag-unification
Steele, Jr., G.L.: Common Lisp The Language, 2nd edn. Digital, Bedford, MA (1990)
Author information
Authors and Affiliations
Corresponding author
Additional information
This work has been supported by project TIN2004-03884 (Ministerio de Educación y Ciencia, Spain) and FEDER funds.
Rights and permissions
About this article
Cite this article
Ruiz-Reina, JL., Martín-Mateos, FJ., Alonso, JA. et al. Formal Correctness of a Quadratic Unification Algorithm. J Autom Reasoning 37, 67–92 (2006). https://doi.org/10.1007/s10817-006-9030-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-006-9030-5