Results 1  10
of
13
Logic Program Synthesis
, 1993
"... This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely n ..."
Abstract

Cited by 38 (10 self)
 Add to MetaCart
This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely nice and uniform framework for program synthesis since the specification, the synthesis process and the resulting program can all be expressed in logic. Three main approaches to logic program synthesis by formal methods are described: constructive synthesis, deductive synthesis and inductive synthesis. Related issues such as correctness and verification as well as synthesis by informal methods are briefly presented. Our presentation is made coherent by employing a unified framework of terminology and notation, and by using the same running example for all the approaches covered. This paper thus intends to provide an assessment of existing work and a framework for future research in logic program synthesis.
MiddleOut Reasoning for Logic Program Synthesis
 IN 10TH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING (ICLP93
, 1993
"... We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a byproduct of the planning of a verification proof. The approach is a twolevel one: At the object level, we prove program verification conjectures in a sorted, firstorder theory. The c ..."
Abstract

Cited by 31 (8 self)
 Add to MetaCart
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a byproduct of the planning of a verification proof. The approach is a twolevel one: At the object level, we prove program verification conjectures in a sorted, firstorder theory. The conjectures are of the form 8args \Gamma\Gamma\Gamma\Gamma! : prog(args \Gamma\Gamma\Gamma\Gamma! ) $ spec(args \Gamma\Gamma\Gamma\Gamma! ). At the metalevel, we plan the objectlevel verification with an unspecified program definition. The definition is represented with a (secondorder) metalevel variable, which becomes instantiated in the course of the planning.
MiddleOut Reasoning for Synthesis and Induction
, 1995
"... We develop two applications of middleout reasoning in inductive proofs: Logic program synthesis and the selection of induction schemes. Middleout reasoning as part of proof planning was first suggested by Bundy et al [Bundy et al 90a]. Middleout reasoning uses variables to represent unknown te ..."
Abstract

Cited by 26 (11 self)
 Add to MetaCart
We develop two applications of middleout reasoning in inductive proofs: Logic program synthesis and the selection of induction schemes. Middleout reasoning as part of proof planning was first suggested by Bundy et al [Bundy et al 90a]. Middleout reasoning uses variables to represent unknown terms and formulae. Unification instantiates the variables in the subsequent planning, while proof planning provides the necessary search control. Middleout reasoning is used for synthesis by planning the verification of an unknown logic program: The program body is represented with a metavariable. The planning results both in an instantiation of the program body and a plan for the verification of that program. If the plan executes successfully, the synthesized program is partially correct and complete. Middleout reasoning is also used to select induction schemes. Finding an appropriate induction scheme during synthesis is difficult, because the recursion of the program, which is un...
Automatic Synthesis of Recursive Programs: The ProofPlanning Paradigm
, 1997
"... We describe a proof plan that characterises a family of proofs corresponding to the synthesis of recursive functional programs. This plan provides a significant degree of automation in the construction of recursive programs from specifications, together with correctness proofs. This plan makes use o ..."
Abstract

Cited by 21 (2 self)
 Add to MetaCart
We describe a proof plan that characterises a family of proofs corresponding to the synthesis of recursive functional programs. This plan provides a significant degree of automation in the construction of recursive programs from specifications, together with correctness proofs. This plan makes use of metavariables to allow successive refinement of the identity of unknowns, and so allows the program and the proof to be developed hand in hand. We illustrate the plan with parts of a substantial example  the synthesis of a unification algorithm.
On the Use of Inductive Reasoning in Program Synthesis: Prejudice and Prospects
 IN L. FRIBOURG AND F. TURINI (EDS), JOINT PROC. OF META'94 AND LOPSTR'94
, 1994
"... In this position paper, we give a critical analysis of the deductive and inductive approaches to program synthesis, and of the current research in these fields. From the shortcomings of these approaches and works, we identify future research directions for these fields, as well as a need for coopera ..."
Abstract

Cited by 13 (6 self)
 Add to MetaCart
In this position paper, we give a critical analysis of the deductive and inductive approaches to program synthesis, and of the current research in these fields. From the shortcomings of these approaches and works, we identify future research directions for these fields, as well as a need for cooperation and crossfertilization between them.
Logic Frameworks for Logic Programs
, 1994
"... . We show how logical frameworks can provide a basis for logic program synthesis. With them, we may use firstorder logic as a foundation to formalize and derive rules that constitute program development calculi. Derived rules may be in turn applied to synthesize logic programs using higherorder re ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
. We show how logical frameworks can provide a basis for logic program synthesis. With them, we may use firstorder logic as a foundation to formalize and derive rules that constitute program development calculi. Derived rules may be in turn applied to synthesize logic programs using higherorder resolution during proof that programs meet their specifications. We illustrate this using Paulson's Isabelle system to derive and use a simple synthesis calculus based on equivalence preserving transformations. 1 Introduction Background In 1969 Dana Scott developed his Logic for Computable Functions and with it a model of functional program computation. Motivated by this model, Robin Milner developed the theorem prover LCF whose logic PP used Scott's theory to reason about program correctness. The LCF project [13] established a paradigm of formalizing a programming logic on a machine and using it to formalize different theories of functional programs (e.g., strict and lazy evaluation) and the...
Synthesis of programs in computational logic
 PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC
, 2004
"... Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the synthesis of programs in computational logic. In this paper we analyze and compare three stateoftheart methods for synthesizing recursive programs in computational logic. The three approaches are constructive/deductive synthesis, schemaguided synthesis, and inductive synthesis. Our comparison is carried out in a systematic way where, for each approach, we describe the key ideas and synthesize a common running example. In doing so, we explore the synergies between the approaches, which we believe are necessary in order to achieve progress over the next decade in this field.
Automated Verification Of Prolog Programs
, 1994
"... Domains The nature of the information useful for the various applications of logic and Prolog program analyses is nowadays well identified. Nevertheless, no previous framework was able to incorporate all kinds of information in a single analysis. Although some authors prefer to decompose a complex ..."
Abstract

Cited by 7 (7 self)
 Add to MetaCart
Domains The nature of the information useful for the various applications of logic and Prolog program analyses is nowadays well identified. Nevertheless, no previous framework was able to incorporate all kinds of information in a single analysis. Although some authors prefer to decompose a complex analysis into a series of simpler and independent ones [3], we follow the spirit of [16] where the benefits of combining domains are properly discussed. Let us summarize the information the most relevant for logic programs that is integrated in our analyser. 3 ffl Determinacy and cardinality information models the number of solutions to a procedure and is useful for optimizations, like dead code elimination, and automatic complexity analysis [29]. ffl Mode information describes the instantiation level of program variables at some program point. Groundness ("is a variable bound to a ground term?") and freeness ("is a variable either uninstantiated or an alias of other variables ?") are the...
Guiding Synthesis Proofs
, 1993
"... In this paper, we present a basic set of methods to guide a proof in the Whelk logic program synthesis system. Starting from the methods used in the Oyster/CL A M system, designed for a functional context, we developed some proof "critics" to solve the cases in which those methods are blocked in a ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
In this paper, we present a basic set of methods to guide a proof in the Whelk logic program synthesis system. Starting from the methods used in the Oyster/CL A M system, designed for a functional context, we developed some proof "critics" to solve the cases in which those methods are blocked in a relational context. The application of those methods and proof critics is illustrated by an example, the delete predicate synthesis. 1 Introduction In this paper, we present a basic set of methods to guide a proof in the Whelk logic program synthesis system. Those methods have been elaborated to free the user from most of its routine work, letting him concentrate on the important design decisions in a synthesis process. Whelk is based on the constructive synthesis approach, it synthesizes logic programs from proofs: a conjecture (called a synthesis conjecture) is interactively proven in a constructive way, and Whelk automatically generates the corresponding program. One drawback of this ...
IsaWhelk: Whelk Interpreted in Isabelle
, 1994
"... The Whelk logic has been proposed as a foundation for logic program synthesis. Here, I interpret the rules of Whelk as rules of firstorder logic and derive them in Isabelle. Theoretically, this provides a means to understand the metatheory behind Whelk, and its correctness. The interpretation sugg ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
The Whelk logic has been proposed as a foundation for logic program synthesis. Here, I interpret the rules of Whelk as rules of firstorder logic and derive them in Isabelle. Theoretically, this provides a means to understand the metatheory behind Whelk, and its correctness. The interpretation suggests simplifications, corrections, and extensions. Practically, it provides a way to construct logic programs from proofs of their correctness by applying the formalized proof rules using higherorder resolution. 1 Introduction Background I have used Isabelle, a logical framework supporting proof construction by higherorder resolution, as a tool to reconstruct, simplify, implement, and use a proposed logic. The logic is Whelk, developed by Geraint Wiggins in [20], which represents an adaptation of the proofsasprograms idea to logic program synthesis; the logic has been implemented and is in use at Edinburgh and other Universities. The Isabelle theory, which I call IsaWhelk, has function...