Term rewriting systems are reduction systems in which rewrite rules apply to terms. Terms are built up from variables and constants using function symbols (or operations). Rules of term rewriting systems have the form , where both and are terms, is not a variable, and every variable from occurs in as well.
A reduction step for term is defined as follows. If is a unifier for and , then is reduced to . If is a unifier for and where is a subterm of , then is reduced to a term obtained from by replacing with .