Results 11  20
of
22
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.
Synthesis of a Family of Recursive Sorting Procedures
 Proc. 1991 Int. Logic Programming Symposium
, 1991
"... In an earlier paper, we described a method for synthesising recursive logic procedures from their firstorder logic specifications. The method is practical because it is strictly topdown and has been implemented as part of a userguided synthesis system in Prolog. We have used the system to synthes ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
In an earlier paper, we described a method for synthesising recursive logic procedures from their firstorder logic specifications. The method is practical because it is strictly topdown and has been implemented as part of a userguided synthesis system in Prolog. We have used the system to synthesise procedures for a wide variety of algorithms, including a large family of recursive sorting procedures. In this paper we describe the synthesis of this family of procedures. 1 Introduction Although much theoretical work has been done in logic program derivation, most notably by Clark, Hansson, Hogger, and Tarnlund [3, 4, 7, 9], there has been relatively little work in mechanising logic program synthesis. The recent work of Sato and Tamaki [15, 14] is one of the few examples. Independently, we worked on designing and implementing a practical system for mechanised program synthesis. The result is a method for topdown synthesis of recursive logic procedures from their specifications in fir...
An Incompleteness Result for Deductive Synthesis of Logic Programs
 Proc. 10 th Int. Conf. on Logic Programming
, 1993
"... We formalise the derivation of logic programs from their specifications by deductive synthesis, and introduce the notion of uniform equivalence between logical systems. This enables us to present an incompleteness result for deductive synthesis of logic programs from firstorder logic specifications ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
We formalise the derivation of logic programs from their specifications by deductive synthesis, and introduce the notion of uniform equivalence between logical systems. This enables us to present an incompleteness result for deductive synthesis of logic programs from firstorder logic specifications. 1 Introduction Logic program synthesis was studied by some researchers in the early days of logic programming. Most notable among these are Clark, Hansson, Hogger, and Tarnlund. Automated (or semiautomated) synthesis, however, has only received serious attention much more recently. A preliminary survey, in the form of a catalogue, of logic program synthesis methods can be found in [8]. The goal of logic program synthesis is to systematically derive logic programs from their specifications. For example, in the proofsasprograms approach, the specification takes the form of a theorem (or more accurately a conjecture) stating the existence of the required output for any legitimate input; a...
Forms of Logic Specifications: A Preliminary Study
 Proc. LOPSTR'96, pages 295312, LNCS 1207
, 1997
"... . There is no universal agreement on exactly what form a specification should take, what part it should play in synthesis, and what its precise relationship with the specified program should be. In logic programming, the role of specification is all the more unclear since logic programs are often us ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
. There is no universal agreement on exactly what form a specification should take, what part it should play in synthesis, and what its precise relationship with the specified program should be. In logic programming, the role of specification is all the more unclear since logic programs are often used as executable specifications. In this paper we take the view that specifications should be set in the context of the problem domain, which we call a framework . We conduct a preliminary study of two useful forms of logic specifications: ifandonlyif and partial specifications. First we set up a threetier formalism for synthesis, the toptier being a framework. Then within this formalism we define these two forms of specifications, and discuss their roles in synthesis. 1 Introduction The purpose of program synthesis is to derive programs that are correct wrt to their (formal or informal) specifications. There is no universal agreement, however, on exactly what form a specification sho...
Mixing List Recursion and Arithmetic
 Proc. 7th IEEE Symp. on Logic in Computer Science
, 1991
"... We consider in this paper a special class of predicates. Every class predicate, say p, has one argument denoted Y of type list. All the other arguments are integers and form a vector denoted X. The predicates are primitive recursively defined over the structure of Y, and the auxiliary predicates are ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We consider in this paper a special class of predicates. Every class predicate, say p, has one argument denoted Y of type list. All the other arguments are integers and form a vector denoted X. The predicates are primitive recursively defined over the structure of Y, and the auxiliary predicates are arithmetic relations over the integer arguments. When two atoms of this class, say p 1 (Y, X 1 ) and p 2 (Y, X 2 ), share the same list argument Y, it induces an implicit relation between the integers of X 1 and X 2 . We describe a method for generating under certain conditions an arithmetic expression that characterizes this relation. The method is useful for proving or synthesizing inductive assertions about programs with arrays. 1 Introduction When proving assertions about programs with arrays, one often meets boundary conditions which can be encoded under the following form (~) p 1 (Y, X 1 ):::p n (Y, Xn ) ) a(X 1 [ :::[ Xn ) where Y is a list variable, X 1 ,...,X n are vectors of natu...
Synthesis of Composition and Discrimination Operators for DivideandConquer Logic Programs
, 1993
"... ..."
Program Derivation = Rules + Strategies
 Computational Logic: Logic Programming and Beyond (Essays in honour of Bob Kowalski, Part I), Lecture Notes in Computer Science 2407
, 2001
"... In a seminal paper [38] Prof. Robert Kowalski advocated the paradigm Algorithm = Logic + Control which was intended to characterize program executions. Here we want to illustrate the corresponding paradigm Program Derivation = Rules + Strategies which is intended to characterize program derivations, ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
In a seminal paper [38] Prof. Robert Kowalski advocated the paradigm Algorithm = Logic + Control which was intended to characterize program executions. Here we want to illustrate the corresponding paradigm Program Derivation = Rules + Strategies which is intended to characterize program derivations, rather than executions. During program execution, the Logic component guarantees that the computed results are correct, that is, they are true facts in the intended model of the given program, while the Control component ensures that those facts are derived in an efficient way. Likewise, during program derivation, the Rules component guarantees that the derived programs are correct and the Strategies component ensures that the derived programs are efficient.
Hoare Logic, Executable Specifications, and Logic Programs
, 1992
"... this paper, I present a new method that is based on nonexecutable logic specifications derived from Hoare correctness formulae for logic programs. Logic specifications specify the same programs, they are equivalent to correctness formulae. 2 ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
this paper, I present a new method that is based on nonexecutable logic specifications derived from Hoare correctness formulae for logic programs. Logic specifications specify the same programs, they are equivalent to correctness formulae. 2
Logic Program Synthesis via Proof Planning using Clam
, 1999
"... Logic Programs are computer programs whose syntax is logic. An example of such a language is Prolog. This Msc dissertation describes a system that automatically synthesizes logic programs from their specications. This is done within a framework of theorem proving using the Clam proof planner develop ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Logic Programs are computer programs whose syntax is logic. An example of such a language is Prolog. This Msc dissertation describes a system that automatically synthesizes logic programs from their specications. This is done within a framework of theorem proving using the Clam proof planner developed in the Department of AI, Edinburgh. The developed system is partly a reimplementation of work done by Ina Kraan in her PhD awarded by the Department. However, this project extends her work greatly through its use of the higher order programming language Prolog. The system is extended to cope with synthesizing of higher order programs and programs that depend on certain assumptions about the objects they are manipulating (parameterized proofs). Acknowledgements I would rst of all like to thank my supervisors, Dr Alan Smaill and Dr Julian Richardson, for their patient and careful guidance during the course of the research reported here. Also, I thank the EPSRC who provided nancial ...
Automatic Derivation of Logic Programs by Transformation
 Course notes for ESSLLI
, 2000
"... We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To il ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To illustrate the power of the program transformation approach we also give some examples of program development. Finally, we show how to use program transformations for proving properties of predicates and synthesizing programs from logical specifications.