We develop a framework for stepwise synthesis of logic programs from incomplete specifications. After the definition of logic formalisms for specifications and programs, logic program correctness and comparison criteria are proposed. Then we define criteria for upward and downward progression, in order to state strategies for incremental and non-incremental stepwise synthesis. It is shown how these strategies can be applied in practice. Finally, we instantiate the framework on a particular synthesis mechanism that we have developed. Our synthesis system, called SYNAPSe, is non-incremental, both deductive and inductive, and guided by a divide-and-conquer schema. We describe the objectives and methods of the crucial steps, and illustrate them...