Rewrite order


In theoretical computer science, in particular in automated reasoning about formal equations, reduction orderings are used to prevent endless loops. Rewrite orders, and, in turn, rewrite relations, are generalizations of this concept that have turned out to be useful in theoretical investigations.

Motivation

Intuitively, a reduction order R relates two formal expressions s and t if t is properly "simpler" than s in some sense.
For example, simplification of terms may be a part of a computer algebra program, and may be using the rule set. In order to prove impossibility of endless loops when simplifying a term, the reduction order defined by "sRt if expression t is properly shorter than expression s" can be used; applying any rule from the set will always properly shorten the term.
In contrast, to establish termination of "distributing-out" using the rule x* → x*y+x*z, a more elaborate reduction order will be needed, since this rule may blow up the term size due to duplication of x. The theory of rewrite orders aims at helping to provide an appropriate order in such cases.

Formal definitions

Formally,
a binary relation on the set of terms is called a rewrite relation if it is closed under contextual embedding and under instantiation; formally: if lr implies uterm #Operations with terms|pup for all terms l, r, u, each path p of u, and each substitution σ. If is also irreflexive and transitive, then it is called a rewrite ordering, or rewrite preorder. If the latter is moreover well-founded, it is called a reduction ordering, or a reduction preorder.
Given a binary relation R, its rewrite closure is the smallest rewrite relation containing R. A transitive and reflexive rewrite relation that contains the subterm ordering is called a simplification ordering.
rewrite
relation
rewrite
order
reduction
order
simplification
order
closed under context
x R y implies uterm #Operations with terms|p R up
closed under instantiation
x R y implies xσ R yσ
contains subterm relation
y subterm of x implies x R y
reflexive
always x R x
irreflexive
never x R x
transitive
x R y and y R z implies x R z
well-founded
no infinite chain x1 R x2 R x3 R...

Properties