A rewriting calculus for cyclic higher-order term graphs
Résumé
Introduced at the end of the nineties, the Rewriting Calculus (rho-calculus, for short) fully integrates term-rewriting and lambda-calculus. The rewrite rules, acting as elaborated abstractions, their application and the obtained structured results are first class objects of the calculus. The evaluation mechanism, generalising beta-reduction, strongly relies on term matching in various theories. In this paper we propose an extension of the rho-calculus, called Rg, handling structures with cycles and sharing rather than simple terms. This is obtained by using unification constraints in addition to the standard rho-calculus matching constraints, which leads to a term-graph representation in an equational style. As for the classical rho-calculus , the transformations are performed by explicit application of rewrite rules as first class entities. The possibility of expressing sharing and cycles allows one to represent and compute over regular infinite entities. We show that the (linear) Rg is confluent. The proof of this result is quite elaborated, due to the non-termination of the system and to the fact that Rg-terms are considered modulo an equational theory. We also show that the Rg is expressive enough to simulate first-order (equational) term-graph rewriting and lambda-calculus with explicit recursion (modelled using a letrec like construct.