Results 1  10
of
225
Operational Semantics and Confluence of Constraint Propagation Rules
, 1997
"... . Constraint Handling Rules (CHR) allow one to specify and implement both propagation and simplification for userdefined constraints. Since a propagation rule is applicable again and again, we present in this paper for the first time an operational semantics for CHR that avoids the termination pro ..."
Abstract

Cited by 104 (12 self)
 Add to MetaCart
. Constraint Handling Rules (CHR) allow one to specify and implement both propagation and simplification for userdefined constraints. Since a propagation rule is applicable again and again, we present in this paper for the first time an operational semantics for CHR that avoids the termination problem with propagation rules. In previous work [AFM96], a sufficient and necessary condition for the confluence of terminating simplification rules was given inspired by results about conditional term rewriting systems. Confluence ensures that the solver will always compute the same result for a given set of constraints independent of which rules are applied. The confluence of propagation rules was an open problem. This paper shows that we can also give a sufficient and a necessary condition for confluence of terminating CHR programs with propagation rules based on the more refined operational semantics. 1 Introduction Constraint Logic Programming [vH91, JM94] combines the declarativity of ...
The K.U.Leuven CHR system: implementation and application
 First Workshop on Constraint Handling Rules: Selected Contributions
, 2004
"... We present the K.U.Leuven CHR system: what started out as a validation of a new attributed variables implementation, has become a part of three different Prolog systems with an increasing userbase. ..."
Abstract

Cited by 66 (38 self)
 Add to MetaCart
(Show Context)
We present the K.U.Leuven CHR system: what started out as a validation of a new attributed variables implementation, has become a part of three different Prolog systems with an increasing userbase.
A theory of overloading
 ACM Transactions on Programming Languages and Systems (TOPLAS
, 2002
"... Abstract We introduce a novel approach for debugging illtyped programs in the Hindley/Milner system. We map the typing problem for a program to a system of constraints each attached to program code that generates the constraints. We use reasoning about constraint satisfiability and implication to f ..."
Abstract

Cited by 65 (21 self)
 Add to MetaCart
(Show Context)
Abstract We introduce a novel approach for debugging illtyped programs in the Hindley/Milner system. We map the typing problem for a program to a system of constraints each attached to program code that generates the constraints. We use reasoning about constraint satisfiability and implication to find minimal justifications of type errors, and to explain unexpected types that arise. Through an interactive process akin to declarative debugging, a user can track down exactly where a type error occurs. We are able to capture various extensions of the Hindley/Milner system such as type annotations and Haskellstyle type class overloading. The approach has been implemented as part of the Chameleon system.
ACLP: Abductive Constraint Logic Programming
, 2000
"... This paper presents the framework of Abductive Constraint Logic Programming (ACLP), which integrates Abductive Logic Programming (ALP) and Constraint Logic Programming (CLP). In ACLP, the task of abduction is supported and enhanced by its nontrivial integration with constraint solving. This int ..."
Abstract

Cited by 56 (5 self)
 Add to MetaCart
This paper presents the framework of Abductive Constraint Logic Programming (ACLP), which integrates Abductive Logic Programming (ALP) and Constraint Logic Programming (CLP). In ACLP, the task of abduction is supported and enhanced by its nontrivial integration with constraint solving. This integration of constraint solving into abductive reasoning facilitates a general form of constructive abduction and enables the application of abduction to computationally demanding problems
The Computational Power and Complexity of Constraint Handling Rules
 In Second Workshop on Constraint Handling Rules, at ICLP05
, 2005
"... Constraint Handling Rules (CHR) is a highlevel rulebased programming language which is increasingly used for general purposes. We introduce the CHR machine, a model of computation based on the operational semantics of CHR. Its computational power and time complexity properties are compared to thos ..."
Abstract

Cited by 56 (23 self)
 Add to MetaCart
(Show Context)
Constraint Handling Rules (CHR) is a highlevel rulebased programming language which is increasingly used for general purposes. We introduce the CHR machine, a model of computation based on the operational semantics of CHR. Its computational power and time complexity properties are compared to those of the wellunderstood Turing machine and Random Access Memory machine. This allows us to prove the interesting result that every algorithm can be implemented in CHR with the best known time and space complexity. We also investigate the practical relevance of this result and the constant factors involved. Finally we expand the scope of the discussion to other (declarative) programming languages.
Confluence and Semantics of Constraint Simplification Rules
 CONSTRAINTS JOURNAL
, 1999
"... Constraint Simplification Rules (CSR) is a subset of the Constraint Handling Rules (CHR) language. CHR is a powerful specialpurpose declarative programming language for writing constraint solvers. The CSR subset of CHR forms essentially a committedchoice language consisting of guarded rules with ..."
Abstract

Cited by 40 (15 self)
 Add to MetaCart
Constraint Simplification Rules (CSR) is a subset of the Constraint Handling Rules (CHR) language. CHR is a powerful specialpurpose declarative programming language for writing constraint solvers. The CSR subset of CHR forms essentially a committedchoice language consisting of guarded rules with multiple heads that replace constraints by simpler ones until they are solved. This paper gives declarative and operational semantics as well as soundness and completeness results for CSR programs. In this paper, we introduce a notion of confluence for CSR programs. Confluence is an essential syntactical property of any constraint solver. It ensures that the solver will always compute the same result for a given set of constraints independent of which rules are applied. It also means that it does not matter for the result in which order the constraints arrive at the constraint solver. We give a decidable, sufficient and necessary syntactic condition for confluence of terminating CSR progra...
Automatic Generation of Constraint Propagation Algorithms for Small Finite Domains
 IN 5TH INTERNATIONAL CONFERENCE ON PRINCIPLES AND PRACTICE OF CONSTRAINT PROGRAMMING, CP'99, LNCS 1713
, 1999
"... We study here constraint satisfaction problems that are based on predefined, explicitly given finite constraints. To solve them we propose a notion of rule consistency that can be expressed in terms of rules derived from the explicit representation of the initial constraints. This notion of loca ..."
Abstract

Cited by 35 (5 self)
 Add to MetaCart
We study here constraint satisfaction problems that are based on predefined, explicitly given finite constraints. To solve them we propose a notion of rule consistency that can be expressed in terms of rules derived from the explicit representation of the initial constraints. This notion of local consistency is weaker than arc consistency for constraints of arbitrary arity but coincides with it when all domains are unary or binary. For Boolean constraints rule consistency coincides with the closure under the wellknown propagation rules for Boolean constraints. By generalizing the format of the rules we obtain a characterization of arc consistency in terms of socalled inclusion rules. The advantage of rule consistency and this rule based characterization of the arc consistency is that the algorithms that enforce both notions can be automatically generated, as CHR rules. So these algorithms could be integrated into constraint logic programming systems such as ECLiPSe ...
CHR: A Flexible Query Language
 IN FQAS ’98: PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON FLEXIBLE QUERY ANSWERING SYSTEMS
"... We show how the language CHR, a highlevel logic language for the implementation of constraint solvers, can be slightly extended to become a generalpurpose logic programming language with an expressive power subsuming the expressive power of Horn clause programs with SLD resolution. The extended la ..."
Abstract

Cited by 35 (2 self)
 Add to MetaCart
(Show Context)
We show how the language CHR, a highlevel logic language for the implementation of constraint solvers, can be slightly extended to become a generalpurpose logic programming language with an expressive power subsuming the expressive power of Horn clause programs with SLD resolution. The extended language, called "CHR ", retains however the extra features of CHR, e.g., committed choice and matching, which are important for other purposes, especially for efficiently solving constraints. CHR turns out to be a very flexible query language since it supports several (constraint) logic programming paradigms and allows to mix them in a single program. In particular, it supports topdown query evaluation and also bottomup evaluation as it is frequently used in (disjunctive) deductive databases.
Sound and Decidable Type Inference for Functional Dependencies
, 2004
"... Functional dependencies are a popular and useful extension to Haskell style type classes. In this paper, we give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing userprogrammable type extensions in th ..."
Abstract

Cited by 34 (16 self)
 Add to MetaCart
Functional dependencies are a popular and useful extension to Haskell style type classes. In this paper, we give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing userprogrammable type extensions in the context of Haskell style type classes. Here, we make use of CHRs to provide for the first time a concise result that under some sufficient conditions, functional dependencies allow for sound and decidable type inference. The sucient conditions imposed on functional dependencies can be very limiting. We show how to safely relax these conditions.
A Prolog Constraint Handling Rules Compiler and Runtime System, Special Issue of the
 Journal of Applied Arti Intelligence on Constraint Handling Rules (C. Holzbaur
"... We introduce the most recent and advanced implementation of constraint handling rules (CHR) in a logic programming language. The Prolog implementation consists of a runtime system and a compiler. The runtime system utilizes attributed variables for the realization of the constraint store with eÆcie ..."
Abstract

Cited by 32 (3 self)
 Add to MetaCart
(Show Context)
We introduce the most recent and advanced implementation of constraint handling rules (CHR) in a logic programming language. The Prolog implementation consists of a runtime system and a compiler. The runtime system utilizes attributed variables for the realization of the constraint store with eÆcient retrieval and update mechanisms. Rules describing the interactions between constraints are compiled into Prolog clauses by a compiler, the core of which comprises a small number of compact code generating templates in the form of denite clause grammar rules. 1