Results 1  10
of
38
Guarded Horn Clauses
, 1986
"... This thesis introduces the programming language Guarded Horn Clauses which is abbreviated to GHC. Guarded Horn Clauses was born from the examination of existing logic programming languages and logic programming in general, with special attention paid to parallelism. The main feature of ..."
Abstract

Cited by 123 (6 self)
 Add to MetaCart
This thesis introduces the programming language Guarded Horn Clauses which is abbreviated to GHC. Guarded Horn Clauses was born from the examination of existing logic programming languages and logic programming in general, with special attention paid to parallelism. The main feature of
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 42 (11 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.
Transformation of Logic Programs
 Handbook of Logic in Artificial Intelligence and Logic Programming
, 1998
"... Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, i ..."
Abstract

Cited by 40 (4 self)
 Add to MetaCart
Program transformation is a methodology for deriving correct and efficient programs from specifications. In this chapter, we will look at the so called 'rules + strategies' approach, and we will report on the main techniques which have been introduced in the literature for that approach, in the case of logic programs. We will also present some examples of program transformation, and we hope that through those examples the reader may acquire some familiarity with the techniques we will describe.
Synthesis And Transformation Of Logic Programs Using Unfold/Fold Proofs
 Journal of Logic Programming
, 1999
"... We present a method for proving properties of definite logic programs. This method is called unfold/fold proof method because it is based on the unfold/fold transformation rules... ..."
Abstract

Cited by 34 (13 self)
 Add to MetaCart
(Show Context)
We present a method for proving properties of definite logic programs. This method is called unfold/fold proof method because it is based on the unfold/fold transformation rules...
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 27 (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...
On Specification Frameworks and Deductive Synthesis of Logic Programs
, 1994
"... this paper, we take a closer look at such frameworks. We shall explain what they are, and how they can be used to specify properties such as correctness and modularity (and hence reusability). Moreover, we shall show that there is a close twoway relationship between specification frameworks and ded ..."
Abstract

Cited by 25 (17 self)
 Add to MetaCart
this paper, we take a closer look at such frameworks. We shall explain what they are, and how they can be used to specify properties such as correctness and modularity (and hence reusability). Moreover, we shall show that there is a close twoway relationship between specification frameworks and deductive synthesis. In particular, a deductive synthesis process can provide a useful feedback mechanism which can not only check for desirable properties in the specification framework, but also improve the framework (with regard to such properties) using the result of the synthesis. In our approach to modularity, we borrow many of the basic ideas developed in the algebraic approach (e.g. [6, 7, 14]). We shall briefly contrast the two approaches in Section 2.3. 2 Specification Frameworks and Specifications
Declarative programming in Prolog
 Logic Programming, Proc. ILPS'93
, 1993
"... We try to assess to what extent declarative programming can be realized in Prolog and which aspects of correctness of Prolog programs can be dealt with by means of declarative interpretation. More specifically, we discuss termination of Prolog programs, partial correctness, absence of errors and the ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
(Show Context)
We try to assess to what extent declarative programming can be realized in Prolog and which aspects of correctness of Prolog programs can be dealt with by means of declarative interpretation. More specifically, we discuss termination of Prolog programs, partial correctness, absence of errors and the safe use of negation.
Proving existential termination of normal logic programs
 Proc. of the 5th AMAST, LNCS 1101
, 1996
"... Abstract. The most important open problem in the study of termination for logic programs is that of existential termination. Inthispaperwepresentapow erful transformational methodology that provides necessary (and, under some conditions, su cient) criteria for existential termination. The followed a ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
(Show Context)
Abstract. The most important open problem in the study of termination for logic programs is that of existential termination. Inthispaperwepresentapow erful transformational methodology that provides necessary (and, under some conditions, su cient) criteria for existential termination. The followed approach is to develop a suitable transformation from logic programs to Term Rewriting Systems (TRSs), such that proving termination of the obtained TRS implies existential termination of the original logic program. Thus, all the extensive amountofwork on termination for TRSs can be automatically used in the logic programming setting. Moreover, the approach isalsoabletocopewiththe dual notion of universal termination: in fact, a whole spectrum of termination properties, said ktermination,isinvestigated, of which universal and existential termination are the extremes. Also, a satisfactory treatment to the problem of termination for logic programming with negation is achieved. This way we provide a unique, uniform approachcovering all these di erent notions of termination. 1
The Halting Problem for Deductive Synthesis of Logic Programs
 Proc. 11 th Int. Conf. on Logic Programming
, 1994
"... Deductive synthesis methods derive programs in an incremental manner, and therefore pose a halting problem  when can synthesis stop with a correct program? We give a characterisation of this problem and state a halting principle as a solution. Another characteristic of deductive synthesis is that ..."
Abstract

Cited by 12 (12 self)
 Add to MetaCart
(Show Context)
Deductive synthesis methods derive programs in an incremental manner, and therefore pose a halting problem  when can synthesis stop with a correct program? We give a characterisation of this problem and state a halting principle as a solution. Another characteristic of deductive synthesis is that it may derive several correct programs, giving rise to another question  which correct programs are desirable? We show that the answer is related to the halting problem, via the notion of steadfast, or reusable, programs as desirable programs. Our work also reveals that Clark's idea of the completion of a program is central to deductive synthesis, since it is the basis of our halting principle and our notion of steadfast programs. 1 Introduction Writing a correct program is a major problem in programming. It is theoretically interesting and practically significant. Incorrect programs may have dire consequences, and are unfortunately related to the software crisis in practice. Methods have...
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...