The aim of our work is to investigate how a relatively small
set of clauses can be transformed into a running program
capable of solving a number of problems. The problems are
chosen from the domain of simple arithmetic, algebra and
letter series completion. We describe how the problems are
solved, how errors are detected and corrected by modification
of the existing clauses.
Various techniques useful in the process of error detection
and correction are described in detail. Two types of errors
are dealt with: selection errors arising due to incorrect
selection of clauses, and instantiation errors arising when
the partial results (subgoals) are not specific enough.