Download PDFOpen PDF in browserOn the Termination of Positive Supercompilation15 pages•Published: July 25, 2013AbstractThe verification of program transformation systems requires that we prove their termination.For positive supercompilation, ensuring termination usually requires the memoisation of expressions which are subsequently used to determine when to perform generalization and folding. However, determining which expressions to memoise can greatly affect the results obtained. Memoising too many expressions requires a lot more expensive checking for the possibility of generalization or folding. More new functions will also be created and generalization will be performed more often, resulting in less improved residual programs. We would therefore like to memoise as few expressions as possible, but this could lead to non-termination. In this paper, we describe a simple pre-processing step which can be applied to programs prior to transformation by positive supercompilation to ensure that in any potentially infinite sequence of transformation steps there must be function unfolding. We prove, for programs that have been pre-processed in this way, that it is only necessary to memoise expressions immediately before function unfolding to ensure termination, and we demonstrate this on a number of tricky examples. Keyphrases: positive supercompilation, program transformation, termination In: Alexei Lisitsa and Andrei Nemytykh (editors). VPT 2013. First International Workshop on Verification and Program Transformation, vol 16, pages 42-56.
|