Results 1  10
of
21
What is Failure? An Approach to Constructive Negation
, 1994
"... A standard approach to negation in logic programming is negation as failure. Its major drawback is that it cannot produce answer substitutions to negated queries. Approaches to overcoming this limitation are termed constructive negation. This work proposes an approach based on construction of failed ..."
Abstract

Cited by 53 (4 self)
 Add to MetaCart
A standard approach to negation in logic programming is negation as failure. Its major drawback is that it cannot produce answer substitutions to negated queries. Approaches to overcoming this limitation are termed constructive negation. This work proposes an approach based on construction of failed trees for some instances of a negated query. For this purpose a generalization of the standard notion of a failed tree is needed. We show that a straightforward generalization leads to unsoundness and present a correct one. The method is applicable to arbitrary normal programs. If finitely failed trees are concerned then its semantics is given by Clark completion in 3valued logic (and our approach is a proper extension of SLDNFresolution). If infinite failed trees are allowed then we obtain a method for the wellfounded semantics. In both cases soundness and completeness are proved.
Practical ModelBased Static Analysis for Definite Logic Programs
, 1995
"... The declarative semantics of definite logic programs is the basis of an elegant and practical framework for their static analysis. We define a core semantics parameterised by a preinterpretation of the language underlying the program. The concrete semantics is given by an extended Herbrand interpret ..."
Abstract

Cited by 28 (13 self)
 Add to MetaCart
The declarative semantics of definite logic programs is the basis of an elegant and practical framework for their static analysis. We define a core semantics parameterised by a preinterpretation of the language underlying the program. The concrete semantics is given by an extended Herbrand interpretation, capturing the correct answers of a program. The semantics is computed as the least fixed point of an immediate consequences operator. An abstract semantics is specified simply by giving, for each constant and function in the program, a denotation in an abstract domain of interpretation. No abstract operations such as abstract unification need to be defined. The directness and simplicity of this approach is then illustrated by specifying and implementing a number of abstract interpretations. These include various mode analyses, analyses on the structure of lists and the length of lists, and simple and polymorphic types. The implementations used for the experiments are based on abstract...
On Constructive Negation in Logic Programming
 In North American Conference on Logic Programming
, 1995
"... this paper we significantly extend Chan's approach and provide it with a more thorough theoretical foundation. ..."
Abstract

Cited by 24 (3 self)
 Add to MetaCart
this paper we significantly extend Chan's approach and provide it with a more thorough theoretical foundation.
Constrained Partial Deduction and the Preservation of Characteristic Trees
 NEW GENERATION COMPUTING
, 1997
"... Partial deduction strategies for logic programs often use an abstraction operator to guarantee the finiteness of the set of goals for which partial deductions are produced. Finding an abstraction operator which guarantees finiteness and does not lose relevant information is a difficult problem. I ..."
Abstract

Cited by 21 (16 self)
 Add to MetaCart
Partial deduction strategies for logic programs often use an abstraction operator to guarantee the finiteness of the set of goals for which partial deductions are produced. Finding an abstraction operator which guarantees finiteness and does not lose relevant information is a difficult problem. In earlier work Gallagher and Bruynooghe proposed to base the abstraction operator on characteristic paths and trees, which capture the structure of the generated incomplete SLDNFtree for a given goal. In this paper we exhibit the advantages of characteristic trees over purely syntactical measures: if characteristic trees can be preserved upon generalisation, then we obtain an almost perfect abstraction operator, providing just enough polyvariance to avoid any loss of local specialisation. Unfortunately, the abstraction operators proposed in earlier work do not always preserve the characteristic trees upon generalisation. We show that this can lead to important specialisation losses as well as to nontermination of the partial deduction algorithm. Furthermore, this problem cannot be adequately solved in the ordinary partial deduction setting. We therefore extend the expressivity and precision of the Lloyd and Shepherdson partial deduction framework by integrating constraints. We provide formal correctness results for the so obtained generic framework of constrained partial deduction. Within this new framework we are, among others, able to overcome the above mentioned problems by introducing an alternative abstraction operator, based on so called pruning constraints. We thus present a terminating partial deduction strategy which, for purely determinate unfolding rules, induces no loss of local specialisation due to the abstraction while ensuring correctness o...
Creating Specialised Integrity Checks Through Partial Evaluation Of MetaInterpreters
, 1994
"... ..."
Compilative Constructive Negation in Constraint Logic Programs
 Proc. Trees in Algebra and Programming  CAAP'94, 19th International Colloquium
, 1994
"... . In this paper we define a new compilative version of constructive negation (intensional negation) in CLP and we prove its (nonground) correctness and completeness wrt the 3valued completion. We show that intensional negation is essentially equivalent to constructive negation and that it is indeed ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
. In this paper we define a new compilative version of constructive negation (intensional negation) in CLP and we prove its (nonground) correctness and completeness wrt the 3valued completion. We show that intensional negation is essentially equivalent to constructive negation and that it is indeed more efficient, as one would expect from the fact that it is a compilative technique, with the transformation and the associated normalization process being performed once and for all on the source program. We define several formal nonground semantics, based either on the derivation rule or on the least fixpoint of an immediate consequence operator. All these semantics are proved to correctly model the observable behavior, from the viewpoint of answer constraints. We give some equivalence theorems and we show that all our denotations are the nonground representation of a single partial interpretation, which is \Phi P " !, where \Phi P is the Fitting's operator [12]. 1 Introduction The m...
The Defining Power of Stratified and Hierarchical Logic Programs
"... We investigate the defining power of stratified and hierarchical logic programs. As an example for the treatment of negative information in the context of these structured programs we also introduce a stratified and hierarchical closedworld assumption. Our analysis tries to relate the defining powe ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
We investigate the defining power of stratified and hierarchical logic programs. As an example for the treatment of negative information in the context of these structured programs we also introduce a stratified and hierarchical closedworld assumption. Our analysis tries to relate the defining power of stratified and hierarchical programs (with and without an appropriate closedworld assumption) very precisely to notions and hierarchies in classical definability theory. Stratified and hierarchical logic programs are two wellknown and typical candidates of what one may more generally denote as structured programs. In both cases we have to deal with normal logic programs which satisfy certain syntactic conditions with respect to the occurrence of negative literals. Recently they have gained a lot of importance in connection with the search for nice declarative semantics for logic programs and the treatment of negative information in logic programming (e.g., Lloyd [10]). Stratified programs were introduced into logic programming by Apt, Blair, and Walker [2] and van Gelder [17] not long ago. In mathematical logic, however, theories of this kind have been studied for more than 20 years under the general theme of iterated inductive definability. Indeed, stratified programs can be understood as systems for (finitely) iterated inductive definitions where the definition clauses are of very low logical complexity. The notion of hierarchical program (e.g., Clark [6], Shepherdson [15]), on the other hand, is motivated by database theory and tries to reflect the idea of iterated explicit definability by simple principles. From a conceptual point of view we are interested in the relationship between logic programming, inductive definability and equational definability. By making u...
Simultaneous Replacement in Normal Programs
, 1993
"... The simultaneous replacement transformation operation, is here defined and studied wrt normal programs. We give applicability conditions able to ensure the correctness of the operation wrt the set of logical consequences of the completed database. We consider separately the cases in which the underl ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
The simultaneous replacement transformation operation, is here defined and studied wrt normal programs. We give applicability conditions able to ensure the correctness of the operation wrt the set of logical consequences of the completed database. We consider separately the cases in which the underlying language is infinite and finite; in this latter case we also distinguish according to the kind of domain closure axioms adopted. As corollaries we obtain results for Fitting's and Kunen's semantics. We also show how simultaneous replacement can mimic other transformation operations such as thinning, fattening and folding, thus producing applicability conditions for them too.
A CLP View of Logic Programming
 In Proc. Conf. on Algebraic and Logic Programming
, 1992
"... . We address the problem of determining those constraint domains A for which the traditional logic programming semantics and the constraint logic programming semantics CLP (A) coincide. This reduces to a study of nonstandard models of Clark's axioms and the notion of solution compactness introd ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
. We address the problem of determining those constraint domains A for which the traditional logic programming semantics and the constraint logic programming semantics CLP (A) coincide. This reduces to a study of nonstandard models of Clark's axioms and the notion of solution compactness introduced in the CLP scheme. The results of this study include the proof of the existence of a free product in the class of algebras defined by Clark's axioms, a characterization of when Clark's axioms form a model complete theory, and a limited characterization of those models of Clark's axioms which form solution compact constraint domains. 1 Introduction Appropriate semantics for definite logic programs are now largely agreed upon [17]. They involve a completed program, SLDresolution, a onestep consequence function, a least Herbrand model and numerous relationships between them: soundness and completeness of SLDrefutations, soundness and completeness of the negationasfailure rule, .....
Compiling Intensional Sets in CLP
 Logic Programming : Proceedings of the 11 th International Conference on Logic Programming
, 1994
"... Constructive negation has been proved to be a valid alternative to negation as failure, especially when negation is required to have, in a sense, an ‘active’ role. In this paper we analyze an extension of the original constructive negation in order to gracefully integrate with the management of set ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
Constructive negation has been proved to be a valid alternative to negation as failure, especially when negation is required to have, in a sense, an ‘active’ role. In this paper we analyze an extension of the original constructive negation in order to gracefully integrate with the management of setconstraints in the context of a Constraint Logic Programming Language dealing with finite sets. We show that the marriage between CLP with sets and constructive negation gives us the possibility of representing a general class of intensionally defined sets without any further extension to the operational semantics of the language. The presence of intensional sets allows a definite increase in the expressive power and abstraction level offered by the host logic language. 1