Results 1  10
of
11
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 95 (33 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...
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.
Beyond TamakiSato Style Unfold/Fold Transformations for Normal Logic Programs
 IN ASIAN, LNCS 1742
, 1999
"... Unfold/fold transformation systems for logic programs have been extensively investigated. Existing unfold/fold transformation systems for normal logic programs allow only TamakiSato style folding using clauses from a previous program in the transformation sequence: i.e., they fold using a singl ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
Unfold/fold transformation systems for logic programs have been extensively investigated. Existing unfold/fold transformation systems for normal logic programs allow only TamakiSato style folding using clauses from a previous program in the transformation sequence: i.e., they fold using a single, nonrecursive clause. In this paper we present a transformation system that permits folding in the presence of recursion, disjunction, as well as negation. We show that the transformations are correct with respect to various semantics of negation including the wellfounded model and stable model semantics.
R.: A coinduction rule for entailment of recursively defined properties
 In Stuckey, P.J., ed.: 14th CP. Volume 5202 of LNCS
, 2008
"... Abstract. Recursively defined properties are ubiquitous. We present a proof method for establishing entailment G  = H of such properties G and H over a set of common variables. The main contribution is a particular proof rule based intuitively upon the concept of coinduction. This rule allows the i ..."
Abstract

Cited by 8 (7 self)
 Add to MetaCart
Abstract. Recursively defined properties are ubiquitous. We present a proof method for establishing entailment G  = H of such properties G and H over a set of common variables. The main contribution is a particular proof rule based intuitively upon the concept of coinduction. This rule allows the inductive step of assuming that an entailment holds during the proof the entailment. In general, the proof method is based on an unfolding (and no folding) algorithm that reduces recursive definitions to a point where only constraint solving is necessary. The constraintbased proof obligation is then discharged with available solvers. The algorithm executes the proof by a searchbased method which automatically discovers the opportunity of applying induction instead of the user having to specify some induction schema, and which does not require any base case. 1
The Complexity Of Querying Indefinite Information: Defined Relations, Recursion And Linear Order
, 1992
"... OF THE DISSERTATION The Complexity of Querying Indefinite Information: Defined Relations, Recursion and Linear Order by Ronald van der Meyden, Ph.D. Dissertation Director: L.T. McCarty This dissertation studies the computational complexity of answering queries in logical databases containing indefin ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
OF THE DISSERTATION The Complexity of Querying Indefinite Information: Defined Relations, Recursion and Linear Order by Ronald van der Meyden, Ph.D. Dissertation Director: L.T. McCarty This dissertation studies the computational complexity of answering queries in logical databases containing indefinite information arising from two sources: facts stated in terms of defined relations, and incomplete information about linearly ordered domains. First, we consider databases consisting of (1) a DATALOG program and (2) a description of the world in terms of the predicates defined by the program as well as the basic predicates. The query processing problem in such databases is related to issues in database theory, including view updates and DATALOG optimization, and also to the Artificial Intelligence problems of reasoning in circumscribed theories and sceptical abductive reasoning. If the program is nonrecursive, the meaning of the database can be represented by Clark's Predicate Completion,...
Proofs by program transformations
 proceedings of Logicbased Program Synthesis and Transformation (LOPSTR
, 1999
"... ..."
Circumscribing Embedded Implications (Without Stratifications)
 Journal of Logic Programming
, 1992
"... This paper is a study of circumscription, not in classical logic, as usual, but in intuitionistic logic. We first review the intuitionistic circumscription of Horn clause logic programs, which was discussed in previous work, and we then consider the larger class of embedded implications . The ordina ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
This paper is a study of circumscription, not in classical logic, as usual, but in intuitionistic logic. We first review the intuitionistic circumscription of Horn clause logic programs, which was discussed in previous work, and we then consider the larger class of embedded implications . The ordinary circumscription axiom turns out to be inappropriate for this class of rules, and we analyze two alternatives: (1) prioritized circumscription, which works for stratified embedded implications; and (2) partial circumscription, which is independent of the stratification. We then show that these two approaches coincide by identifying a single structure that serves as the final Kripke model for both circumscription axioms. This means that prioritized circumscription and partial circumscription entail exactly the same set of implicational queries. Several applications of these ideas are described, including: (1) an interpretation of negationasfailure; (2) a formalization of indefinite reasoni...
CLP(χ) for Automatically Proving Program Properties
, 1994
"... this paper was presented at the workshop "Frontiers of Combining Systems", Munich, March 1996 ..."
Abstract
 Add to MetaCart
this paper was presented at the workshop "Frontiers of Combining Systems", Munich, March 1996
Explicit Modelling for Reasoning about Data Structures
"... We present a proof system for reasoning about data structures. The specification language models memory explicitly as an array, and models pointers and data elements uniformly as integers, used here as an abstraction of a machine word. There are three distinguishing features: the use of recursive de ..."
Abstract
 Add to MetaCart
We present a proof system for reasoning about data structures. The specification language models memory explicitly as an array, and models pointers and data elements uniformly as integers, used here as an abstraction of a machine word. There are three distinguishing features: the use of recursive definitions, the use of set variables representing explicit footprints in order to implement the concept of separation, and finally, the language can express the strongest postcondition of a loopfree program. This provides a basis for implementing a FloydHoarestyle program verifier which generates verification conditions for an external theorem prover. We then present a prover in the form of inference rules that are systematically applied. We argue that a large class of verification conditions can thus be automatically proven. The prover comprises two main parts in order to reason about the interplay between recursive definitions, arrays, sets and integers. In the first, recursive definitions are disposed by means of an unfolding process terminated by a concept of induction. Second, the remaining nonrecursive formulas are reduced into purely integer formulas, which we can finally dispense with using a standard system. 1.
Explicit Data Structures and Automatic Induction Proofs
, 2009
"... We first present a specification language for modelling memory explicitly as an array, and models pointers and data elements uniformly as integers, used here as an abstraction of a machine word. There are three distinguishing features: the use of recursive definitions, the use of set variables repre ..."
Abstract
 Add to MetaCart
We first present a specification language for modelling memory explicitly as an array, and models pointers and data elements uniformly as integers, used here as an abstraction of a machine word. There are three distinguishing features: the use of recursive definitions, the use of set variables representing explicit footprints in order to implement the concept of separation, and finally, the language can express the strongest postcondition of a loopfree program. This provides a basis for implementing a FloydHoarestyle program verifier which generates verification conditions for an external theorem prover. We then present a prover in the form of inference rules that are systematically applied. We argue that a large class of verification conditions can thus be automatically proven. The main novelty is the ability to employ induction hypotheses that are automatically generated in order to reason about the interplay between recursive definitions, arrays, sets and integers. Finally, recursive definitions are reduced into purely integer formulas, which we can finally dispense with using a standard system.