Automatic code generators often contain pattern matchers that are based on
tree grammars. In this work we generalise this approach by developing patte
rn matchers that are based on mon powerful term rewrite systems, A pattern
matcher based on a term rewrite system computes all the sequences of rewrit
e rules that will reduce a given expression tree to a given goal, While the
number of sequences of rewrite rules that are generated is typically enorm
ous, the vast majority of sequences are in fact redundant. This redundancy
is caused by the fact that many rewrite sequences are permutations of each
other. A theory and a series of algorithms are systematically developed tha
t identify and remove two types of redundant rewrite sequences. These algor
ithms terminate if rewrite sequences do not diverge. (C) 2000 Elsevier Scie
nce B.V, All rights reserved.