Logic Program Transformation through Generalization Schemata
Both generalization techniques are very suitable for mechanical transformation: all operators of the generalized programs are operators of the initial programs. Given a divide-and-conquer program, a mere inspection of the properties of its solving, processing, and composition operators thus allows the detection of which kinds of generalization are possible, and to which optimizations they would lead. The eureka discoveries are compiled away, and the transformations can be completely automated.