The main section describes all the main concepts involved in TPbased programming and all the sub-tasks concerning respective implementation in the ISAC prototype: mechanisation of mathematics and domain modeling, implementation of term rewriting
systems for the rewriting-engine, formal (implicit) specification of the problem to be (explicitly) described by the program, implementation of the many components required for Lucas-Interpretation and finally implementation of the program itself.
1) Narrowing, introduced in automated theorem proving [Slagle 1974] is a relation over terms induced by a term rewriting system.
A constructor-based term rewriting system R is a set of rewrite rules, l [right arrow] r, such that l and r have the same sort, l is a pattern, and Var(r) [subset or equal to] Var(l).
In the rest of this paper, we assume that R is a constructor-based term rewriting system.
Since we do not require terminating term rewriting systems, normal forms or values do not exist for each functional expression.
Term graph rewriting is a technique to implement term rewriting by graph rewriting on shared subterms [Sleep et al.
Code selection by regularly controled term rewriting.
On the adequacy of graph rewriting for simulating term rewriting.
Henceforth we focus on graph rewriting with the implicit aim to implement term rewriting (e.
In context-sensitive term rewriting [Lucas 1995] it is indicated for each argument of a function symbol whether or not contraction of redexes inside such an argument is allowed.
Bounded, strongly sequential and forward-branching term rewriting systems.
Towards a self-applicable partial evaluator for term rewriting
Section 2 presents the necessary preliminaries from term rewriting