Skip to main content

Automated Synthesis of Induction Axioms for Programs with Second-Order Recursion

  • Conference paper
Automated Reasoning (IJCAR 2010)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 6173))

Included in the following conference series:

Abstract

In order to support the verification of programs, verification tools such as ACL2 or Isabelle try to extract suitable induction axioms from the definitions of terminating, recursively defined procedures. However, these extraction techniques have difficulties with procedures that are defined by second-order recursion: There a first-order procedure f passes itself as an argument to a second-order procedure like \(\mathit{map}\), \(\mathit{every}\), \(\mathit{foldl}\), etc., which leads to indirect recursive calls. For instance, second-order recursion is commonly used in algorithms on data structures such as terms (variadic trees). We present a method to automatically extract induction axioms from such procedures. Furthermore, we describe how the induction axioms can be optimized (i. e., generalized and simplified). An implementation of our methods demonstrates that the approach facilitates straightforward inductive proofs in a verification tool.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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. Aderhold, M.: Verification of Second-Order Functional Programs. Doctoral dissertation, TU Darmstadt (2009)

    Google Scholar 

  2. Aderhold, M.: Automated termination analysis for programs with second-order recursion. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 221–235. Springer, Heidelberg (2010)

    Google Scholar 

  3. Andrews, P.B.: An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof. Kluwer Academic Publishers, Dordrecht (2002)

    Book  Google Scholar 

  4. Barthe, G., Forest, J., Pichardie, D., Rusu, V.: Defining and reasoning about recursive functions: A practical tool for the Coq proof assistant. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 114–129. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  5. Boyer, R.S., Moore, J.S.: A Computational Logic. Academic Press, Inc., London (1979)

    MATH  Google Scholar 

  6. Boyer, R.S., Moore, J.S.: A mechanical proof of the unsolvability of the halting problem. Journal of the ACM 31(3), 441–458 (1984)

    Article  MathSciNet  Google Scholar 

  7. Bundy, A., Dixon, L., Gow, J., Fleuriot, J.: Constructing induction rules for deductive synthesis proofs. In: Proceedings of Constructive Logic for Autom. Softw. Engineering 2005. ENTCS, vol. 153, pp. 3–21. Elsevier, Amsterdam (2006)

    Google Scholar 

  8. Krauss, A.: Automating Recursive Definitions and Termination Proofs in Higher-Order Logic. Doctoral dissertation, TU München, Germany (2009)

    Google Scholar 

  9. Manolios, P., Turon, A.: All-termination(T). In: Kowalewski, S., Philippou, A. (eds.) TACAS-2009. LNCS, vol. 5505, pp. 398–412. Springer, Heidelberg (2009)

    Google Scholar 

  10. Nipkow, T., Paulson, L.C., Wenzel, M.T. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  11. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference. Computer Science Laboratory, SRI International (November 2001)

    Google Scholar 

  12. Slind, K.: Reasoning about Terminating Functional Programs. PhD thesis, TU München, Germany (1999)

    Google Scholar 

  13. Walther, C.: Computing induction axioms. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 381–392. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  14. Walther, C.: Mathematical induction. In: Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2. Oxford University Press, Oxford (1994)

    Google Scholar 

  15. Walther, C., Aderhold, M., Schlosser, A.: The \(\mathcal{L}\) 1.0 Primer. Technical Report VFR 06/01, TU Darmstadt (2006)

    Google Scholar 

  16. Walther, C., Schweitzer, S.: Verification in the classroom. Journal of Automated Reasoning 32(1), 35–73 (2004)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Aderhold, M. (2010). Automated Synthesis of Induction Axioms for Programs with Second-Order Recursion. In: Giesl, J., Hähnle, R. (eds) Automated Reasoning. IJCAR 2010. Lecture Notes in Computer Science(), vol 6173. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14203-1_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14203-1_23

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14202-4

  • Online ISBN: 978-3-642-14203-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics