Results 1  10
of
23
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.
Experiments with Proof Plans for Induction
 Journal of Automated Reasoning
, 1992
"... The technique of proof plans, is explained. This technique is used to guide automatic inference in order to avoid a combinatorial explosion. Empirical research is described to test this technique in the domain of theorem proving by mathematical induction. Heuristics, adapted from the work of Boye ..."
Abstract

Cited by 94 (32 self)
 Add to MetaCart
The technique of proof plans, is explained. This technique is used to guide automatic inference in order to avoid a combinatorial explosion. Empirical research is described to test this technique in the domain of theorem proving by mathematical induction. Heuristics, adapted from the work of Boyer and Moore, have been implemented as Prolog programs, called tactics, and used to guide an inductive proof checker, Oyster. These tactics have been partially specified in a metalogic, and the plan formation program, clam, has been used to reason with these specifications and form plans. These plans are then executed by running their associated tactics and, hence, performing an Oyster proof. Results are presented of the use of this technique on a number of standard theorems from the literature. Searching in the planning space is shown to be considerably cheaper than searching directly in Oyster's search space. The success rate on the standard theorems is high. Keywords Theorem prov...
The Semantics of Reflected Proof
 IN PROC. OF FIFTH SYMP. ON LOGIC IN COMP. SCI
, 1990
"... We begin to lay the foundations for reasoning about proofs whose steps include both invocations of programs to build subproofs (tactics) and references to representations of proofs themselves (reflected proofs). The main result is the definition of a single type of proof which can mention itself, ..."
Abstract

Cited by 88 (11 self)
 Add to MetaCart
We begin to lay the foundations for reasoning about proofs whose steps include both invocations of programs to build subproofs (tactics) and references to representations of proofs themselves (reflected proofs). The main result is the definition of a single type of proof which can mention itself, using a new technique which finds a fixed point of a mapping between metalanguage and object language. This single type contrasts with hierarchies of types used in other approaches to accomplish the same classification. We show that these proofs are valid, and that every proof can be reduced to a proof involving only primitive inference rules. We also show how to extend the results to proofs from which programs (such as tactics) can be derived, and to proofs that can refer to a library of definitions and previously proven theorems. We believe that the mechanism of reflection is fundamental in building proof development systems, and we illustrate its power with applications to automating reasoning and describing modes of computation.
A Science of Reasoning
, 1991
"... This paper addresses the question of how we can understand reasoning in general and mathematical proofs in particular. It argues the need for a highlevel understanding of proofs to complement the lowlevel understanding provided by Logic. It proposes a role for computation in providing this high ..."
Abstract

Cited by 74 (19 self)
 Add to MetaCart
This paper addresses the question of how we can understand reasoning in general and mathematical proofs in particular. It argues the need for a highlevel understanding of proofs to complement the lowlevel understanding provided by Logic. It proposes a role for computation in providing this highlevel understanding, namely by the association of proof plans with proofs. Proof plans are defined and examples are given for two families of proofs. Criteria are given for assessing the association of a proof plan with a proof. 1 Motivation: the understanding of mathematical proofs The understanding of reasoning has interested researchers since, at least, Aristotle. Logic has been proposed by Aristotle, Boole, Frege and others as a way of formalising arguments and understanding their structure. There have also been psychological studies of how people and animals actually do reason. The work on Logic has been especially influential in the automation of reasoning. For instance, resolution...
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...
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...
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.