Deaccumulation Techniques for Improving Provability

Authors: J. Giesl, A. Kühnemann, and J. Voigtländer
Published: Technical Report TUD-FI05-14, Technische Universität Dresden, December 2005.
BibTeX: GKV05.bib
Abstract: Several induction theorem provers were developed to verify functional programs mechanically. Unfortunately, automatic verification often fails for functions with accumulating arguments. Using concepts from the theory of tree transducers and extending on earlier work, the paper develops automatic transformations from accumulative functional programs into non-accumulative ones, which are much better suited for mechanized verification. The overall goal is to reduce the need for generalizing induction hypotheses in (semi-)automatic provers. Via the correspondence between imperative programs and tail-recursive functions, the presented approach can also help to reduce the need for inventing loop invariants in the verification of imperative programs.
Download: DeaccumulationTechniquesForImprovingProvability_TR.pdf

A slightly revised version of this work appeared in Journal of Logic and Algebraic Programming, see here.