Automated synthesis of induction axioms for programs with second-order recursion

  • Authors:
  • Markus Aderhold

  • Affiliations:
  • Technische Universität Darmstadt, Germany

  • Venue:
  • IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

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.