Results 1 - 10
of
22
Specifications Are (Preferably) Executable
, 1992
"... ion of the Specification Borrowing a saying of Einstein's, I maintain that specifications should be as abstract as possible, but not more abstract. I see three limitations to the degree of abstraction. First, a specification as an adequate formalization of the requirements cannot be more abstract t ..."
Abstract
-
Cited by 55 (0 self)
- Add to MetaCart
ion of the Specification Borrowing a saying of Einstein's, I maintain that specifications should be as abstract as possible, but not more abstract. I see three limitations to the degree of abstraction. First, a specification as an adequate formalization of the requirements cannot be more abstract than the requirements themselves. If a specific algorithm is required, this algorithm must be specified. This argument applies as well to non-functional requirements constraining possible implementations. Some constraints can appear as comments in specifications, e.g. the requirement that a specific language should be used for the implementation. Other constraints, however, must be concretely specified, e.g. the requirement that the future software system has to adhere to the data structures of a given interface. The second limitation to abstraction arises when we make formal specifications executable. Even if the degree of abstraction of the data structures and the algorithms stays the same,...
Logic Program Synthesis from Incomplete Specifications
- JOURNAL OF SYMBOLIC COMPUTATION: SPECIAL ISSUE ON AUTOMATIC PROGRAMMING
, 1993
"... ..."
Conjunctive Partial Deduction: Foundations, Control, Algorithms, and Experiments
- J. LOGIC PROGRAMMING
, 1999
"... ..."
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 35 (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.
Applying Techniques to Skeletons
- Constructing Logic Programs
, 1993
"... This paper concerns our research on developing a theory and methodology appropriate for systematically building complicated Prolog programs. Programs are constructed procedurally from standard components. We identify skeletons, basic Prolog programs with a well-understood control flow, and technique ..."
Abstract
-
Cited by 34 (7 self)
- Add to MetaCart
This paper concerns our research on developing a theory and methodology appropriate for systematically building complicated Prolog programs. Programs are constructed procedurally from standard components. We identify skeletons, basic Prolog programs with a well-understood control flow, and techniques, standard Prolog programming practices, as basic components. Applying a technique to a skeleton creates an extension of the skeleton. Complicated programs are built by choosing a skeleton and repeatedly applying techniques. Separate extensions of the same skeleton can be composed into a single program, simplifying the process of program development. We describe our application of skeletons and techniques within the framework of Shapiro's Model Inference System. 1.1 INTRODUCTION
Implementing the Meta-Theory of Deductive Systems
- Proceedings of the 11th International Conference on Automated Deduction
, 1992
"... . We exhibit a methodology for formulating and verifying metatheorems about deductive systems in the Elf language, an implementation of the LF Logical Framework with an operational semantics in the spirit of logic programming. It is based on the mechanical verification of properties of transformatio ..."
Abstract
-
Cited by 32 (9 self)
- Add to MetaCart
. We exhibit a methodology for formulating and verifying metatheorems about deductive systems in the Elf language, an implementation of the LF Logical Framework with an operational semantics in the spirit of logic programming. It is based on the mechanical verification of properties of transformations between deductions, which relies on type reconstruction and schema-checking. The latter is justified by induction principles for closed LF objects, which can be constructed over a given signature. We illustrate our technique through several examples, the most extensive of which is an interpretation of classical logic in minimal logic through a continuation-passing-style transformation on proofs. 1 Introduction Formal deductive systems have become an important tool in computer science. They are used to specify logics, type systems, operational semantics and other aspects of languages. The role of such specifications is three-fold. Firstly, inference rules serve as a high-level notation w...
Middle-Out 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 by-product of the planning of a verification proof. The approach is a two-level one: At the object level, we prove program verification conjectures in a sorted, first-order theory. The c ..."
Abstract
-
Cited by 32 (8 self)
- Add to MetaCart
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a by-product of the planning of a verification proof. The approach is a two-level one: At the object level, we prove program verification conjectures in a sorted, first-order 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 meta-level, we plan the object-level verification with an unspecified program definition. The definition is represented with a (second-order) meta-level variable, which becomes instantiated in the course of the planning.
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 27 (9 self)
- Add to MetaCart
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...
Middle-Out Reasoning for Synthesis and Induction
, 1995
"... We develop two applications of middle-out reasoning in inductive proofs: Logic program synthesis and the selection of induction schemes. Middle-out reasoning as part of proof planning was first suggested by Bundy et al [Bundy et al 90a]. Middle-out reasoning uses variables to represent unknown te ..."
Abstract
-
Cited by 24 (11 self)
- Add to MetaCart
We develop two applications of middle-out reasoning in inductive proofs: Logic program synthesis and the selection of induction schemes. Middle-out reasoning as part of proof planning was first suggested by Bundy et al [Bundy et al 90a]. Middle-out 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. Middle-out reasoning is used for synthesis by planning the verification of an unknown logic program: The program body is represented with a meta-variable. 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. Middle-out 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 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 cross-fertilization between them.

