Deaccumulation techniques for improving provability

Authors: J. Giesl, A. Kühnemann, and J. Voigtländer
Published: Journal of Logic and Algebraic Programming, volume 71(2), pages 79-113, Elsevier, 2007.
DOI: 10.1016/j.jlap.2006.11.001
BibTeX: GKV07.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.pdf
Rights: Copyright held by Elsevier. The definitive version of this work is available from