Section: Research Program
Rewriting calculus
The huge diversity of the rewriting concept is obvious and when one wants to focus on the underlying notions, it becomes quickly clear that several technical points should be settled. For example, what kind of objects are rewritten? Terms, graphs, strings, sets, multisets, others? Once we have established this, what is a rewrite rule? What is a left-hand side, a right-hand side, a condition, a context? And then, what is the effect of a rule application? This leads immediately to defining more technical concepts like variables in bound or free situations, substitutions and substitution application, matching, replacement; all notions being specific to the kind of objects that have to be rewritten. Once this is solved one has to understand the meaning of the application of a set of rules on (classes of) objects. And last but not least, depending on the intended use of rewriting, one would like to define an induced relation, or a logic, or a calculus.
In this very general picture, we have introduced a calculus whose main
design concept is to make all the basic ingredients of rewriting
explicit objects, in particular the notions of rule
application and result. We concentrate on
term rewriting, we introduce a very general notion of rewrite
rule and we make the rule application and result explicit
concepts. These are the basic ingredients of the rewriting-
or
The
The study of the rewriting calculus turns out to be extremely successful in terms of fundamental results and of applications [22] . Different instances of this calculus together with their corresponding type systems have been proposed and studied. The expressive power of this calculus was illustrated by comparing it with similar formalisms and in particular by giving a typed encoding of standard strategies used in first-order rewriting and classical rewrite based languages like ELAN and Tom.