Results 1 
7 of
7
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 187 (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 nding a substitution of terms for variables that makes two terms equal in a given theory, while semantic uni cation is the process that generates a basis set of such unifying substitutions. A simpler variant of the problem is semantic matching, where the substituti ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Equation solving is the process of nding a substitution of terms for variables that makes two terms equal in a given theory, while semantic uni cation 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 uni cation and matching constitute an important component of theorem proving and programming language interpreters. In this thesis we formulate a uni cation 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 ( nite sets of equations that compute unique output values when applied from lefttoright to input values). We consider di erent variants of the system of transformation rules. We describe syntactic restrictions on the equations under which simpler sets of transformation rules are su cient for generating a complete set of semantic matchings. We show that our rstorder uni cation procedure, with slight modi cations, 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 uni 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 used as conditi ..."
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.