Results 1  10
of
19
System Description: Proof Planning in HigherOrder Logic with
 15th International Conference on Automated Deduction, volume 1421 of Lecture Notes in Artificial Intelligence
, 1998
"... Introduction Proof planning [4] is an approach to theorem proving which encodes heuristics for constructing mathematical proofs in a metatheory of methods. The Clam system, developed at Edinburgh [3], has been used for several years to develop proof planning, in particular proof plans for induction ..."
Abstract

Cited by 58 (8 self)
 Add to MetaCart
Introduction Proof planning [4] is an approach to theorem proving which encodes heuristics for constructing mathematical proofs in a metatheory of methods. The Clam system, developed at Edinburgh [3], has been used for several years to develop proof planning, in particular proof plans for induction. It has become clear that many of the theoremproving tasks that we would like to perform are naturally higherorder. For example, an important technique called middleout reasoning [6] uses metavariables to stand for some unknown objects in a proof, to be instantiated as the proof proceeds. Domains such as the synthesis and verification of software and hardware systems, and techniques such as proof critics [7], benefit greatly from such middleout reasoning. Since in these domains the metavariables often become instantiated with terms of function type, reasoning with them is naturally higherorder, and higherorder unification is a
Constructing induction rules for deductive synthesis proofs
 LFCS University of Edinburgh
, 2005
"... We describe novel computational techniques for constructing induction rules for deductive synthesis proofs. Deductive synthesis holds out the promise of automated construction of correct computer programs from specifications of their desired behaviour. Synthesis of programs with iteration or recursi ..."
Abstract

Cited by 15 (7 self)
 Add to MetaCart
We describe novel computational techniques for constructing induction rules for deductive synthesis proofs. Deductive synthesis holds out the promise of automated construction of correct computer programs from specifications of their desired behaviour. Synthesis of programs with iteration or recursion requires inductive proof, but standard techniques for the construction of appropriate induction rules are restricted to recycling the recursive structure of the specifications. What is needed is induction rule construction techniques that can introduce novel recursive structures. We show that a combination of rippling and the use of metavariables as a leastcommitment device can provide such novelty. Key words: deductive synthesis, proof planning, induction, theorem proving, middleout reasoning. 1
A Proof Planning Framework for Isabelle
, 2005
"... Proof planning is a paradigm for the automation of proof that focuses on encoding intelligence to guide the proof process. The idea is to capture common patterns of reasoning which can be used to derive abstract descriptions of proofs known as proof plans. These can then be executed to provide fully ..."
Abstract

Cited by 14 (10 self)
 Add to MetaCart
Proof planning is a paradigm for the automation of proof that focuses on encoding intelligence to guide the proof process. The idea is to capture common patterns of reasoning which can be used to derive abstract descriptions of proofs known as proof plans. These can then be executed to provide fully formal proofs. This thesis concerns the development and analysis of a novel approach to proof planning that focuses on an explicit representation of choices during search. We embody our approach as a proof planner for the generic proof assistant Isabelle and use the Isar language, which is humanreadable and machinecheckable, to represent proof plans. Within this framework we develop an inductive theorem prover as a case study of our approach to proof planning. Our prover uses the difference reduction heuristic known as rippling to automate the step cases of the inductive proofs. The development of a flexible approach to rippling that supports its various modifications and extensions is the second major focus of this thesis. Here, our inductive theorem prover provides a context in which to evaluate rippling experimentally. This work results in an efficient and powerful inductive theorem prover for Isabelle as well as proposals for further improving the efficiency of rippling. We also draw observations in order
Proofdirected debugging and repair
 Seventh Symposium on Trends in Functional Programming
, 2006
"... We describe a project to refine the idea of proofdirected debugging. The intention is to clarify the mechanisms by which failed verification attempts can be used to isolate errors in code, in particular by exploiting the ways in which the branching structure of a proof can match the the structure o ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
We describe a project to refine the idea of proofdirected debugging. The intention is to clarify the mechanisms by which failed verification attempts can be used to isolate errors in code, in particular by exploiting the ways in which the branching structure of a proof can match the the structure of the functional program being verified. Our intention is to supply tools to support this process. We then further discuss how the proof planning paradigm might be used to supply additional automated support for this and, in particular ways in which the automation of proofdirected debugging with proof planning would allows code patches to by synthesised at the same time that a bug is located and diagnosed. 1
Generic System Support for Deductive Program Development
 In Tools and Algorithms for the Construction and Analysis of Systems (TACAS96), volume 1055 of LNCS
"... We report on a case study in using logical frameworks to support the formalization of programming calculi and their application to deductionbased program synthesis. Within a conservative extension of higherorder logic implemented in the Isabelle system, we derived rules for program development tha ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
We report on a case study in using logical frameworks to support the formalization of programming calculi and their application to deductionbased program synthesis. Within a conservative extension of higherorder logic implemented in the Isabelle system, we derived rules for program development that can simulate those of the deductive tableau proposed by Manna and Waldinger. We have used the resulting theory to synthesize a library of verified programs, focusing on sorting algorithms. Our experience suggests that the methodology we propose is well suited both to implement and use programming calculi, extend them, partially automate them, and even formally reason about their correctness. 1 Introduction Over the last few decades, a variety of methodologies for deductive software synthesis, transformation, and refinement from specification have been suggested, e.g., [4, 5, 8, 9, 12]. Our research investigates general frameworks that support such program development formalisms. That is, ...
Synthesis of programs in computational logic
 PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC
, 2004
"... Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the synthesis of programs in computational logic. In this paper we analyze and compare three stateoftheart methods for synthesizing recursive programs in computational logic. The three approaches are constructive/deductive synthesis, schemaguided synthesis, and inductive synthesis. Our comparison is carried out in a systematic way where, for each approach, we describe the key ideas and synthesize a common running example. In doing so, we explore the synergies between the approaches, which we believe are necessary in order to achieve progress over the next decade in this field.
Managing Structural Information by HigherOrder Colored Unification
 JOURNAL OF AUTOMATED REASONING
, 1999
"... Coloring terms (rippling) is a technique developed for inductive theorem proving which uses syntactic dierences of terms to guide the proof search. Annotations (colors) to symbol occurrences in terms are used to maintain this information. This technique has several advantages, e.g. it is highly go ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Coloring terms (rippling) is a technique developed for inductive theorem proving which uses syntactic dierences of terms to guide the proof search. Annotations (colors) to symbol occurrences in terms are used to maintain this information. This technique has several advantages, e.g. it is highly goal oriented and involves little search. In this paper we give a general formalization of coloring terms in a higherorder setting. We introduce a simplytyped calculus with color annotations and present appropriate algorithms for the general, pre and pattern unification problems. Our work is a formal basis to the implementation of rippling in a higherorder setting which is required e.g. in case of middleout reasoning. Another application is in the construction of natural language semantics, where the color annotations rule out linguistically invalid readings that are possible using standard higherorder unification.
Algorithm Synthesis by Lazy Thinking: Using Problem Schemes
 In [66
, 2004
"... Recently, as part of a general formal (i.e. logic based) methodology for mathematical knowledge management we also introduced a method for the automated synthesis of correct algorithms, which we called the lazy thinking method. For a given concrete problem specification (in predicate logic), the ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Recently, as part of a general formal (i.e. logic based) methodology for mathematical knowledge management we also introduced a method for the automated synthesis of correct algorithms, which we called the lazy thinking method. For a given concrete problem specification (in predicate logic), the method tries out various algorithm schemes and derives specifications for the subalgorithms in the algorithm scheme.
Planning and patching proof
 ARTIFICIAL INTELLIGENCE AND SYMBOLIC COMPUTATION
, 2004
"... We describe proof planning: a technique for both describing the hierarchical structure of proofs and then using this structure to guide proof attempts. When such a proof attempt fails, these failures can be analyzed and a patch formulated and applied. We also describe rippling: a powerful proof met ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We describe proof planning: a technique for both describing the hierarchical structure of proofs and then using this structure to guide proof attempts. When such a proof attempt fails, these failures can be analyzed and a patch formulated and applied. We also describe rippling: a powerful proof method used in proof planning. We pose and answer a number of common questions about proof planning and rippling.