We define a rewrite strategy for a class of non-confluent constructor-based term graph rewriting systems and discuss its correctness. Our strategy and its extension to narrowing are intended for the implementation of modern functional logic programming languages. Our strategy avoids the construction of large contexts of redexes with distinct replacements, an expensive and frequently wasteful operation executed by competitive complete techniques. Key words: non-determinism, functional logic programming
Sergio Antoy, Daniel W. Brown, Su-Hui Chiang