Transformation Techniques for Context-Sensitive Rewrite Systems

Jürgen Giesl and Aart Middeldorp

Journal of Functional Programming 14(4), pp. 379 – 427, 2004.


Context-sensitive rewriting is a computational restriction of term rewriting used to model non-strict (lazy) evaluation in functional programming. The goal of this paper is the study and development of techniques to analyze the termination behavior of context-sensitive rewrite systems. For that purpose, several methods have been proposed in the literature which transform context-sensitive rewrite systems into ordinary rewrite systems such that termination of the transformed ordinary system implies termination of the original context-sensitive system. In this way, the huge variety of existing techniques for termination analysis of ordinary rewriting can be used for context-sensitive rewriting, too.

We analyze the existing transformation techniques for proving termination of context-sensitive rewriting and we suggest two new transformations. Our first method is simple, sound, and more powerful than the previously proposed transformations. However, it is not complete, i.e., there are terminating context-sensitive rewrite systems that are transformed into non-terminating term rewrite systems. The second method that we present in this paper is both sound and complete. All these observations also hold for rewriting modulo associativity and commutativity.


  PDF |    doi:10.1017/S0956796803004945


author = "J{\"u}rgen Giesl and Aart Middeldorp",
title = "Transformation Techniques for Context-Sensitive Rewrite Systems",
journal = "Journal of Functional Programming",
volume = 14,
issue = 4,
pages = "329--427",
year = 2004
Nach oben scrollen