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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aderhold, M.: Verification of Second-Order Functional Programs. Doctoral dissertation, TU Darmstadt (2009)
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)
Andrews, P.B.: An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof. Kluwer Academic Publishers, Dordrecht (2002)
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)
Boyer, R.S., Moore, J.S.: A Computational Logic. Academic Press, Inc., London (1979)
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)
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)
Krauss, A.: Automating Recursive Definitions and Termination Proofs in Higher-Order Logic. Doctoral dissertation, TU München, Germany (2009)
Manolios, P., Turon, A.: All-termination(T). In: Kowalewski, S., Philippou, A. (eds.) TACAS-2009. LNCS, vol. 5505, pp. 398–412. Springer, Heidelberg (2009)
Nipkow, T., Paulson, L.C., Wenzel, M.T. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference. Computer Science Laboratory, SRI International (November 2001)
Slind, K.: Reasoning about Terminating Functional Programs. PhD thesis, TU München, Germany (1999)
Walther, C.: Computing induction axioms. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 381–392. Springer, Heidelberg (1992)
Walther, C.: Mathematical induction. In: Handbook of Logic in Artificial Intelligence and Logic Programming, vol. 2. Oxford University Press, Oxford (1994)
Walther, C., Aderhold, M., Schlosser, A.: The \(\mathcal{L}\) 1.0 Primer. Technical Report VFR 06/01, TU Darmstadt (2006)
Walther, C., Schweitzer, S.: Verification in the classroom. Journal of Automated Reasoning 32(1), 35–73 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)