Results 1  10
of
20
Rippling: A Heuristic for Guiding Inductive Proofs
, 1993
"... We describe rippling: a tactic for the heuristic control of the key part of proofs by mathematical induction. This tactic significantly reduces the search for a proof of a wide variety of inductive theorems. We first present a basic version of rippling, followed by various extensions which are neces ..."
Abstract

Cited by 162 (39 self)
 Add to MetaCart
We describe rippling: a tactic for the heuristic control of the key part of proofs by mathematical induction. This tactic significantly reduces the search for a proof of a wide variety of inductive theorems. We first present a basic version of rippling, followed by various extensions which are necessary to capture larger classes of inductive proofs. Finally, we present a generalised form of rippling which embodies these extensions as special cases. We prove that generalised rippling always terminates, and we discuss the implementation of the tactic and its relation with other inductive proof search heuristics.
The Use of Planning Critics in Mechanizing Inductive Proofs
 International Conference on Logic Programming and Automated Reasoning  LPAR 92, St. Petersburg, Lecture Notes in Artificial Intelligence No. 624
, 1992
"... Proof plans provide a technique for guiding the search for a proof in the context of tactical style reasoning. We propose an extension to this technique in which failure may be exploited in the search for a proof. This extension is based upon the concept of planning critics. In particular we ill ..."
Abstract

Cited by 54 (11 self)
 Add to MetaCart
Proof plans provide a technique for guiding the search for a proof in the context of tactical style reasoning. We propose an extension to this technique in which failure may be exploited in the search for a proof. This extension is based upon the concept of planning critics. In particular we illustrate how proof critics may be used to patch proof plans in the domain of inductive proofs. 1 Introduction Proof plans [Bundy 88] guide the search for a proof in the context of tactical style reasoning [Gordon et al 79]. A proof plan contains a tactic together with a proof rationale. The tactic component specifies the lowlevel structure of a proof in terms of the objectlevel logic inference rules and is used to control the theorem prover. In contrast, the proof rationale, which is expressed in a metalogic, captures the highlevel structure of a proof. Proof plans are constructed from tactic specifications called methods. Using the metalogic, a method expresses the preconditions unde...
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...
Logic Program Synthesis via Proof Planning
 Logic Program Synthesis and Transformation
, 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 24 (6 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. This technique is an application of the CL A M proof planning system [Bundy et al 90c]. CL A M is currently powerful enough to plan verification proofs for given programs. We show that, if CL A M's use of middleout reasoning is extended, it will also be able to synthesize programs. 1 Introduction The aim of t...
Search and Planning under Incomplete Information  A Study using Bridge Card Play
, 1996
"... This thesis investigates problemsolving in domains featuring incomplete information and multiple agents with opposing goals. In particular, we describe Finesse  a system that forms plans for the problem of declarer play in the game of Bridge. We begin by examining the problem of search. We form ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
This thesis investigates problemsolving in domains featuring incomplete information and multiple agents with opposing goals. In particular, we describe Finesse  a system that forms plans for the problem of declarer play in the game of Bridge. We begin by examining the problem of search. We formalise a best defence model of incomplete information games in which equilibrium point strategies can be identified, and identify two specific problems that can affect algorithms in such domains. In Bridge, we show that the best defence model corresponds to the typical model analysed in expert texts, and examine search algorithms which overcome the problems we have identified. Next, we look at how planning algorithms can be made to cope with the difficulties of such domains. This calls for the development of new techniques for representing uncertainty and actions with disjunctive effects, for coping with an opposition, and for reasoning about compound actions. We tackle these problems with a...
An Adaptation of ProofPlanning to Declarer Play in Bridge
 IN BRIDGE. RESEARCH PAPER 575, DEPT. OF AI
, 1992
"... We present Finesse, a system that forms plans for declarer play in the game of Bridge. Finesse generalises the technique of proofplanning, developed at Edinburgh University in the context of mathematical theoremproving, to deal with the disjunctive choice encountered when planning under uncerta ..."
Abstract

Cited by 17 (11 self)
 Add to MetaCart
We present Finesse, a system that forms plans for declarer play in the game of Bridge. Finesse generalises the technique of proofplanning, developed at Edinburgh University in the context of mathematical theoremproving, to deal with the disjunctive choice encountered when planning under uncertainty, and the contextdependency of actions produced by the presence of an opposition. In its domain of planning for individual suits, it correctly identified the proper lines of play found in many examples from the Bridge literature, supporting its decisions with probabilistic and qualitative information. Cases were even discovered in which Finesse revealed errors in the analyses presented by recognised authorities.
Invariant Patterns for Program Reasoning
"... We address the problem of integrating standard techniques for automatic invariant generation within the context of program reasoning. We propose the use of invariant patterns which enable us to associate common patterns of program code and specifications with invariant schemas. This allows crucial d ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We address the problem of integrating standard techniques for automatic invariant generation within the context of program reasoning. We propose the use of invariant patterns which enable us to associate common patterns of program code and specifications with invariant schemas. This allows crucial decisions relating to the development of invariants to be delayed until a proof is attempted. Moreover, it allows patterns within the program to be exploited in patching failed proof attempts.
Logic Program Synthesis in a HigherOrder Setting
, 2000
"... . We describe a system for the synthesis of logic programs from specications based on higherorder logical descriptions of appropriate renement operations. The system has been implemented within the proof planning system Clam. The generality of the approach is such that its extension to allow sy ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. We describe a system for the synthesis of logic programs from specications based on higherorder logical descriptions of appropriate renement operations. The system has been implemented within the proof planning system Clam. The generality of the approach is such that its extension to allow synthesis of higherorder logic programs was straightforward. Some illustrative examples are given. The approach is extensible to further classes of synthesis. 1 Introduction Earlier work on the synthesis of logic programs has taken the approach of constructing a program in the course of proving equivalence to a specication, which is written in a richer logic than the resulting program. Typically, quantiers and thus binding of variables are present in the speci cation, and have to be manipulated correctly. We extend earlier work using as far as possible a declarative reading in a higherorder logic. The higherorder proof planning framework which we employ provides a more expressiv...