| | |
Summary: Deaccumulation Techniques for Improving
Provability #
J˜urgen Giesl a,#,1 Armin K˜uhnemann b Janis Voigtl˜ander b,2
a LuFG Informatik 2, RWTH Aachen, Ahornstr. 55, 52074 Aachen, Germany
b Institut f˜ur Theoretische Informatik, TU Dresden, 01062 Dresden, Germany
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 ac
cumulative functional programs into nonaccumulative ones, which are much better
suited for mechanized verification. The overall goal is to reduce the need for gener
alizing induction hypotheses in (semi)automatic provers. Via the correspondence
between imperative programs and tailrecursive functions, the presented approach
can also help to reduce the need for inventing loop invariants in the verification of
imperative programs.
Key words: tree transducers, induction theorem proving, tail recursion, program
transformation, program verification
1 Introduction
Automatic transformation of programs is a key technology in software engi
|