Logic Program Synthesis from Incomplete Specifications

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 on a sample problem.

[1]  Yves Deville,et al.  Towards Stepwise, Schema-guided Synthesis of Logic Programms , 1991, LOPSTR.

[2]  Jerome A. Feldman Automatic programming. , 1972 .

[3]  Luc De Raedt,et al.  Belief Updating from Integrity Constraints and Queries , 1992, Artif. Intell..

[4]  Alan W. Biermann,et al.  A Production Rule Mechanism for Generating LISP Code , 1979, IEEE Transactions on Systems, Man, and Cybernetics.

[5]  Michael J. Maher,et al.  Unification Revisited , 1988, Foundations of Deductive Databases and Logic Programming..

[6]  Patricia C. Goldberg,et al.  Automatic Programming , 1974, Programming Methodology.

[7]  Kung-Kiu Lau,et al.  Top-down Synthesis of Recursive Logic Procedures from First-order Logic Specifications , 1990, ICLP.

[8]  S T Gegg-Harrison Basic Prolog Schemata , 1989 .

[9]  Alan Bundy,et al.  The Synthesis of Logic Programs from Inductive Proofs , 1990 .

[10]  Johann Eder,et al.  Logic and Databases , 1992, Advanced Topics in Artificial Intelligence.

[11]  Phillip D. Summers,et al.  A Methodology for LISP Program Construction from Examples , 1977, J. ACM.

[12]  Christopher J. Hogger,et al.  Derivation of Logic Programs , 1981, JACM.

[13]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[14]  Douglas R. Smith,et al.  Top-Down Synthesis of Divide-and-Conquer Algorithms , 1985, Artif. Intell..

[15]  Alan W. Biermann,et al.  Induction of schemata for program synthesis , 1990 .

[16]  Simin Nadjm-Tehrani,et al.  Algorithmic Debugging with Assertions , 1989, META.

[17]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[18]  E. Mark Gold,et al.  Language Identification in the Limit , 1967, Inf. Control..

[19]  John McCarthy,et al.  Mathematical Theory of Computation , 1991 .

[20]  Yves Deville,et al.  Synthesis of Composition and Discrimination Operators for Divide-and-Conquer Logic Programs , 1991, ICLP Workshop on Construction of Logic Programs.

[21]  Cliff B. Jones,et al.  Formal development of programs , 1973 .

[22]  Hirohisa Seki,et al.  Verification of Prolog Programs Using an Extension of Execution , 1986, ICLP.

[23]  Laurent Fribourg,et al.  Extracting Logic Programs from Proofs that Use Extended Prolog Execution and Induction , 1990, ICLP.

[24]  Geraint A. Wiggins Synthesis and Transformation of Logic Programs in the Whelk Proof Development System , 1992, JICSLP.