Results 1 
9 of
9
Constraint Handling Rules
 Constraint Programming: Basics and Trends, LNCS 910
, 1995
"... . We are investigating the use of a class of logical formulas to define constraint theories and implement constraint solvers at the same time. The representation of constraint evaluation in a declarative formalism greatly facilitates the prototyping, extension, specialization and combination of cons ..."
Abstract

Cited by 190 (30 self)
 Add to MetaCart
. We are investigating the use of a class of logical formulas to define constraint theories and implement constraint solvers at the same time. The representation of constraint evaluation in a declarative formalism greatly facilitates the prototyping, extension, specialization and combination of constraint solvers. In our approach, constraint evaluation is specified using multiheaded guarded clauses called constraint handling rules (CHRs). CHRs define determinate conditional rewrite systems that express how conjunctions of constraints propagate and simplify. In this paper we concentrate on CHRs as an extension for constraint logic programming languages. Into such languages, the CHRs can be tightly integrated. They can make use of any hardwired solvers already built into the host language. Program clauses can be used to specify the nondeterministic behavior of constraints, i.e. to introduce search by constraints. In this way our approach merges the advantages of constraints (eager simp...
On Partial Validation of Logic Programs
 proc of the 6th Conf. on Algebraic Methodology and Software Technology, Sydney (Australia), volume 1349 of LNCS
, 1997
"... . In this paper, we propose a method allowing us to compare the result of an execution of a logic program and a specification of the intended semantics. This approach is particularly interesting when the set of answers cannot be computed in finite time with usual prolog interpreters. We compute, usi ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
. In this paper, we propose a method allowing us to compare the result of an execution of a logic program and a specification of the intended semantics. This approach is particularly interesting when the set of answers cannot be computed in finite time with usual prolog interpreters. We compute, using a special operational mechanism, a finite set of rewrite rules synthesizing the whole set of answers w.r.t. a goal. Then, we use some tree tuple grammar based techniques to express the languages of the computed answers. An algorithm allows us to compare this language with the intended semantics language which is extracted from a user's specification. This method can be considered as a partial validation mechanism for logic programs. 1 Introduction Validation, partial validation and verification constitute central issues for full logic programming environment building [5]. By partial validation we mean here the comparison between the operational semantics of the program for a given goal, ...
Semantic Unification for Convergent Systems
, 1994
"... Equation solving is the process of finding a substitution of terms for variables that makes two terms equal in a given theory, while semantic unification is the process that generates a basis set of such unifying substitutions. A simpler variant of the problem is semantic matching, where the substit ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Equation solving is the process of finding a substitution of terms for variables that makes two terms equal in a given theory, while semantic unification is the process that generates a basis set of such unifying substitutions. A simpler variant of the problem is semantic matching, where the substitution is made in only one of the terms. Semantic unification and matching constitute an important component of theorem proving and programming language interpreters. In this thesis we formulate a unification procedure based on a system of transformation rules that looks at goals in a lazy, topdown fashion, and prove its soundness and completeness for equational theories described by convergent rewrite systems (finite sets of equations that compute unique output values when applied from lefttoright to input values). We consider different variants of the system of transformation rules. We describe syntactic restrictions on the equations under which simpler sets of transformation rules are sufficient for generating a complete set of semantic matchings. We show that our firstorder unification procedure, with slight modifications, can be used to solve the satis ability problem in combinatory logic together with a convergent set of algebraic axioms, resulting in a complete higherorder unifi cation procedure for the given algebra. We also provide transformation rules to handle sit
A Rewrite Approach for Constraint Logic Programming
 In Proceedings of International Symposium LATIN'95, number 911 in LNCS
, 1995
"... . Constraint Logic Programming (CLP ) is an extension of Logic Programming aimed at replacing the unification mechanism used in Prolog, by a more general operation called constraint satisfaction. This yields a more efficient evaluation process due to the use of appropriate algorithms designed specif ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
. Constraint Logic Programming (CLP ) is an extension of Logic Programming aimed at replacing the unification mechanism used in Prolog, by a more general operation called constraint satisfaction. This yields a more efficient evaluation process due to the use of appropriate algorithms designed specifically for a given constraint domain. On the other hand, it is known that pure logic programs can be represented as rewrite rules, and executed using a version of KnuthBendix completion procedure, called linear completion. Taking advantage of the simplification techniques available with rewriting, linear completion acts as a loopavoiding mechanism, pruning unnecessary computations when possible. A very powerful feature must also be emphasized : for a given query, linear completion may halt with a finite set of simple formulae representing the whole set of answers while the corresponding logic program loops, producing an infinite set of distinct answers : linear completion is a kind of progr...
Answer Synthesis for CLP Programs with Negation
 Journal of the Interest Group in Pure and Applied Logic
, 1997
"... Rewrite techniques can be used to execute logic programs in order to avoid some drawbacks of classical Prolog resolution. By transforming clauses into logical equivalences considered as rewrite rules, logic programs are represented as rewrite programs whose operational mechanism, inspired from the K ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Rewrite techniques can be used to execute logic programs in order to avoid some drawbacks of classical Prolog resolution. By transforming clauses into logical equivalences considered as rewrite rules, logic programs are represented as rewrite programs whose operational mechanism, inspired from the KnuthBendix completion, allows one to prune some unnecessary computations and offers a synthesis ability which enables to represent infinite sets of answers as finite sets of formulas. We propose here a full extension of this approach to Constraint Logic Programming (CLP ) with negation. Issued from rewrite techniques, a very powerful simplification rule is defined, available in a more general context than strict instantiation. Thanks to this rule, solutions are obtained as a set of constraint rewrite rules with more expressive power than simple constraints used in a classical CLP framework. Thus, our mechanism, integrating both non symbolic constraints and negation, keeps the loop avoiding ...
LOGIC PROGRAMMING cum APPLICATIVE PROGRAMMING* ABSTRACT
"... Conditional (directed) equations provid' ~ a paradigm of computation that combines the cl(',, ~ svntax and semantics of both PROLOGlike logic p'rogra~ming and (firstorder) LIsPlike applicative (functional) programming in a uniform manner. For applicative programming, equations are ..."
Abstract
 Add to MetaCart
Conditional (directed) equations provid' ~ a paradigm of computation that combines the cl(',, ~ svntax and semantics of both PROLOGlike logic p'rogra~ming and (firstorder) LIsPlike applicative (functional) programming in a uniform manner. For applicative programming, equations are used as conditional rewrite rules; for logic programming, the same equations are employed for "conditional narrowing". Increased expressive power is obtainable by combining both paradigms in one program. 1.
On Rewrite Programs: Semantics and Relationship with Prolog ∗
"... Rewrite programs are logic programs represented as rewrite rules, whose execution mechanism usually employs some version of KnuthBendix type completion. Rewrite programs allow one to express mutually exclusively defined predicates as well as those which are not. In this paper we demonstrate that re ..."
Abstract
 Add to MetaCart
Rewrite programs are logic programs represented as rewrite rules, whose execution mechanism usually employs some version of KnuthBendix type completion. Rewrite programs allow one to express mutually exclusively defined predicates as well as those which are not. In this paper we demonstrate that rewrite programs, although denotationally equivalent to Prolog on the ground level, may produce fewer answers in general. Consequently, a rewrite program may halt with finitely many answers while the corresponding Prolog program goes into an infinite loop. In order to explain these observations, we present a precise operational semantics for rewrite programs, define their denotational (fixpoint) semantics, prove the equivalence of operational, model theoretic and denotational semantics, and clarify the relationship between rewrite programs and Prolog. Comparisons between the pruning effects of simplification and those of subsumption based loop checking mechanisms for Prolog are also included. Running title: On Rewrite Programs
Answer Synthesis as a Formalism for Validation
"... In this paper, we propose a method allowing us to compare a specification of the intended semantics of a given logic program with the operational one. We compute, using a version of Knuth Bendix completion procedure, a finite set of rewrite rules synthesizing the answers w.r.t. a goal and we comp ..."
Abstract
 Add to MetaCart
In this paper, we propose a method allowing us to compare a specification of the intended semantics of a given logic program with the operational one. We compute, using a version of Knuth Bendix completion procedure, a finite set of rewrite rules synthesizing the answers w.r.t. a goal and we compare this set of equations with the given specification, supposed to be described also as a set of equations. This method could be seen as a way to partially validate logic programs. Keywords : Logic Programming  Validation  Linear Completion. 1 Introduction Validation and partial validation constitute central issues in a full logic programming environment. By the word "validation", we mean here the comparison between a specification of a "user's intended semantics" and the operational semantics of the program i.e. the answers really computed by an execution mechanism. Of course, in order to realize such a comparison, we need to get in a finite time the full set of answers. Unfortunate...