Prolog program synthesis can be made more efficient by using schemata which capture similarities in previously-seen programs. Such schemata narrow the search involved in the synthesis of a new program. We define a generalization operator for forming schemata from programs and a downward refinement operator for constructing programs from schemata. These operators define schema-hierarchy graphs which can be used to aid in the synthesis of new programs. Algorithms are presented for efficiently obtaining least generalizations of schemata, for adding new schemata to a schema-hierarchy graph, and for using schemata to construct new programs. © 1998 Elsevier Science B.V.
Tinkham, N. L. (1998). Schema induction for logic program synthesis. Artificial Intelligence, 98(1–2), 1–47. https://doi.org/10.1016/s0004-3702(97)00055-6