Skip to main content

Formal Reasoning about Efficient Data Structures: A Case Study in ACL2

  • Conference paper
Logic Based Program Synthesis and Transformation (LOPSTR 2003)

Abstract

We describe in this paper the formal verification, using the ACL2 system, of a syntactic unification algorithm where terms are represented as directed acyclic graphs (dags) and these graphs are stored in a single-threaded object (stobj). The use of stobjs allows destructive operations on data (thus improving the performance of the algorithm), while maintaining the applicative semantics of ACL2. We intend to show how ACL2 provides an environment where execution of algorithms with efficient data structures and formal reasoning about them can be carried out.

This work has been supported by project TIC2000-1368-C03-02 (Ministry of Science and Technology, Spain) and FEDER funds.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Baader, F., Nipkow, T.: Term Rewriting and All That. Cambridge University Press, Cambridge (1998)

    Google Scholar 

  2. Baader, F., Snyder, W.: Unification theory. Elsevier Science Publishers, Handbook of Automated Reasoning (2001)

    Google Scholar 

  3. Bove, A.: Programming in Martin-Lf Type Theory: Unification - A non-trivial Example. Licentiate Thesis, Department of Computer Science, Chalmers University of Technology (1999)

    Google Scholar 

  4. Boyer, R.S., Moore, J.S.: Single-threaded objects in ACL2. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 9–27. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  5. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Dordrecht (2000)

    Google Scholar 

  6. Kaufmann, M., Moore, J.S.: ACL2 Version 2.7 (2002), Homepage http://www.cs.utexas.edu/users/moore/acl2/

  7. Mehta, F., Nipkow, T.: Proving Pointer Programs in Higher-Order Logic. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 121–135. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  8. Paulson, L.: Verifying the unification algorithm in LCF. Science of Computer Programming 5 (1985)

    Google Scholar 

  9. Rouyer, J.: Dveloppement de l’algorithme d’unification dans le calcul des constructions avec types inductifs. Tech. Rep. 1795, INRIA Lorraine (1992) (in french)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Ruiz–Reina, J.L., Alonso, J.A., Hidalgo, M.J., Martín, F.J.: A verified dag unification algorithm in ACL2 (2002) Available at http://www.cs.us.es/~jruiz/unificacion-dag

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ruiz-Reina, J.L., Alonso-Jiménez, J.A., Hidalgo, M.J., Martín-Mateos, F.J. (2004). Formal Reasoning about Efficient Data Structures: A Case Study in ACL2. In: Bruynooghe, M. (eds) Logic Based Program Synthesis and Transformation. LOPSTR 2003. Lecture Notes in Computer Science, vol 3018. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25938-1_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25938-1_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22174-6

  • Online ISBN: 978-3-540-25938-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics