A Mechanical Proof of the Unsolvability of the Halting Problem
Journal of the ACM (JACM)
Handbook of logic in artificial intelligence and logic programming
Introduction to Mathematical Logic and Type Theory: To Truth through Proof
Introduction to Mathematical Logic and Type Theory: To Truth through Proof
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
Journal of Automated Reasoning
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Constructing Induction Rules for Deductive Synthesis Proofs
Electronic Notes in Theoretical Computer Science (ENTCS)
Defining and reasoning about recursive functions: a practical tool for the coq proof assistant
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Automated termination analysis for programs with second-order recursion
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Second-order programs with preconditions
Verification, induction termination analysis
Second-order programs with preconditions
Verification, induction termination analysis
Hi-index | 0.00 |
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.