We introduce inductive proof automation for Coq that supports reasoning about inductively defined data types and recursively defined functions. This includes support for proofs involving case splits and multiple inductive hypotheses. The automation makes use of the rippling heuristic to guide step case proofs as well as heuristics for generalising goals. We include features for caching lemmas that are found during proof search, where these lemmas can be reused in future proof attempts. We show that the techniques we present provide a high-level of automation for inductive proofs which improves upon what is already available in Coq. We also discuss an algorithm that, by inspecting finished proofs, can identify and then remove irrelevant subformulae from cached lemmas, making the latter more reusable. Finally, we compare our work to related research in the field.
|Title of host publication||Second Coq Workshop|
|Publication status||Published - 1 Jul 2010|