Path ordering (term rewriting)
In theoretical computer science, in particular in term rewriting, a path ordering is a well-founded strict total order on the set of all terms such that
where is a user-given total precedence order on the set of all function symbols.
Intuitively, a term f is bigger than any term g built from terms si smaller than f using a
lower-precedence root symbol g.
In particular, by structural induction, a term f is bigger than any term containing only symbols smaller than f.
A path ordering is often used as reduction ordering in term rewriting, in particular in the Knuth–Bendix completion algorithm.
As an example, a term rewriting system for "multiplying out" mathematical expressions could contain a rule x* → + . In order to prove termination, a reduction ordering must be found with respect to which the term x* is greater than the term +. This is not trivial, since the former term contains both fewer function symbols and fewer variables than the latter. However, setting the precedence .>, a path ordering can be used, since both x* > x*''y and x''* > x*''z is easy to achieve.
There may also be systems for certain general recursive functions, for example a system for the Ackermann function may contain the rule A → A, where b''+ denotes the successor of b.
Given two terms s and t, with a root symbol f and g, respectively, to decide their relation their root symbols are compared first.
- If f <. g, then s can dominate t only if one of ss subterms does.
- If f'' .> g, then s dominates t if s dominates each of ts subterms.
- If f'' = g, then the immediate subterms of s and t need to be compared recursively. Depending on the particular method, different variations of path orderings exist.
- the multiset path ordering, originally called recursive path ordering
- the lexicographic path ordering
- a combination of mpo and lpo, called recursive path ordering by Dershowitz, Jouannaud
Formal definitions
The multiset path ordering can be defined as follows:where
- denotes the reflexive closure of the mpo, denotes the multiset of s’s subterms, similar for t, and
- denotes the multiset extension of, defined by >> if can be obtained from
- * by deleting at least one element, or
- * by replacing an element by a multiset of strictly smaller elements.
- If is transitive, then so is O.
- If is irreflexive, then so is O.
- If s > t, then f ''O f''.O is continuous on relations, i.e. if R0, R1, R2, R3,... is an infinite sequence of relations, then O = ∪ O.
Another order functional is the lexicographic extension, leading to the lexicographic path ordering.