Given an alphabet of letters and symbols (perhaps ‘typed’, so that certain symbols are declared to be ‘symbols for functions’, etc., e.g. ‘$+$’ is a symbol for a binary operation), then one can form strings of letters to give words or more generally (well formed) formulae involving symbols of all types.
In a rewriting system, one specifies a set of rules that describe valid replacements of subformulae by other ones. On some formulae of a rewriting system, the rewriting rules may produce conflicts, when two or more rules can be applied.
One type of example of a rewriting system is given by a group presentation, $(X,R)$, where $X$ is a set of generators for a group $G$ and $R$ is a subset of pairs of elements in the free group on $X$. As a definite example, take
$X = \{a,b\}$
$R = \{(a a a,1),(b b,1),(a b a b,1)\}$
(and the group being presented is the symmetric group, $S_3$ on three symbols). We think of $(a a a,1)$ as a ‘rewrite rule’: ”replace $a a a$ by 1”, often written $a a a \rightsquigarrow 1$ (or just $a a a \to 1$).
Working with the presentation, we can then start generating words in the generators, for instance $a a a b a b$ and then see how that word can be ‘rewritten’ using the rewrite rules to $b a b$ using the first rule and to $a a$ using the last. There is thus a potential conflict between these rewritten forms of the word.
It is usual to choose a ‘normal form?’ for each word. In the example, in the symmetric group and the above presentation the elements of the group are often listed as $1, a, a^2, b, a b, a^2 b$. These might be our choice of normal forms for the elements. In other words any element has a unique representative in the form $a^i b^j$, and we choose to label them that way. With the two uses of the rules applied to $a a a b a b$, the first did not gave a normal form, the second did.
In order to transform a rewriting system into a computation algorithm, one needs to apply the rules in a deterministic way, using a reduction strategy. We also need to know that there is a unique normal form that can be found for each word and that the ‘algorithm’ will terminate, that is it really is an algorithm!.
We therefore will need to discuss confluence, termination? and reduction strategies?.
A classical foundational paper is
A key lemma is given in the beautiful paper:
For good references on word rewriting see
and on term rewriting
Franz Baader, Tobias Nipkow, Term rewriting and all that, Cambridge University Press, 1998.
Terese, Term rewriting systems, Cambridge Tracts in Theoretical Computer Science, vol. 55, Cambridge University Press, 2003.
For the higher dimensional forms of rewriting, one source is in the work of Guiraud and Malbos:
This also includes emerging homotopical theory of computation based on polygraphs (introduced by Albert Burroni) and polygraphic resolutions (introduced by François Métayer):
Again within the context of higher dimensional forms of rewriting, Tibor Beke has given a categorification of certain rewriting procedures of Knuth. This is of relevance here as it contains a strong result on coherence theory:
There is a preprint by Samuel Mimram