Overlap (term rewriting)

From Wikipedia, the free encyclopedia

Overlap, as a property of the reduction rules in term rewriting system, describes a situation where a number of different reduction rules specify potentially contradictory ways of reducing a reducible expression (or redex) within a term. More precisely, if a number of different reduction rules share function symbols on the left hand side, overlap can occur. Often we do not consider trivial overlap with a redex and itself.

For example, consider the term rewriting system defined by the reduction rules

\rho_1\ :\ f(g(x), y) \rightarrow y
\rho_2\ :\ g(x) \rightarrow f(x, x)

The term f(g(x), y) can be reduced via ρ1 to yield y, but it can also be reduced via ρ2 to yield f(f(x, x), y). Note how the redex g(x) is contained in the redex f(g(x), y). The result of reducing different redexes is described in a critical pair -- the critical pair arising out of this term rewriting system is (f(f(x, x), y), f(g(x), y)).

Overlap may occur with less than two reduction rules. Consider the term rewriting system defined by the reduction rule

\rho_1\ :\ g(g(x)) \rightarrow x

The term g(g(g(x))) has overlapping redexes, which can be either applied to the innermost occurrence or to the outermost occurrence of the g(g(x)) term.