Results 1  10
of
57
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 52 (21 self)
 Add to MetaCart
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.
Optimal UnionFind in Constraint Handling Rules
 UNDER CONSIDERATION FOR PUBLICATION IN THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2005
"... Constraint Handling Rules (CHR) is a committedchoice rulebased language that was originally intended for writing constraint solvers. In this paper we show that it is also possible to write the classic unionfind algorithm and variants in CHR. The programs neither compromise in declarativeness nor ..."
Abstract

Cited by 36 (24 self)
 Add to MetaCart
Constraint Handling Rules (CHR) is a committedchoice rulebased language that was originally intended for writing constraint solvers. In this paper we show that it is also possible to write the classic unionfind algorithm and variants in CHR. The programs neither compromise in declarativeness nor efficiency. We study the time complexity of our programs: they match the almostlinear complexity of the best known imperative implementations. This fact is illustrated with experimental results.
Parallelizing unionfind in Constraint Handling Rules using confluence analysis
 LOGIC PROGRAMMING: 21ST INTERNATIONAL CONFERENCE, ICLP 2005, VOLUME 3668 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2005
"... Constraint Handling Rules is a logical concurrent committedchoice rulebased language. Recently it was shown that the classical unionfind algorithm can be implemented in CHR with optimal time complexity. Here we investigate if a parallel implementation of this algorithm is also possible in CHR. The ..."
Abstract

Cited by 31 (16 self)
 Add to MetaCart
(Show Context)
Constraint Handling Rules is a logical concurrent committedchoice rulebased language. Recently it was shown that the classical unionfind algorithm can be implemented in CHR with optimal time complexity. Here we investigate if a parallel implementation of this algorithm is also possible in CHR. The problem is hard for several reasons: Up to now, no parallel computation model for CHR was defined. Tarjan’s optimal unionfind is known to be hard to parallelize. The parallel code should be as close as possible to the sequential one. It turns out that confluence analysis of the sequential implementation gives almost all the information needed to parallelize the unionfind algorithm under a rather general parallel computation model for CHR.
Frühwirth: A LinearLogic Semantics For Constraint Handling Rules
 Proceedings of CP 2005
, 2005
"... Abstract. We motivate and develop a linear logic declarative semantics for CHR ∨ , an extension of the CHR programming language that integrates concurrent committed choice with backtrack search and a predefined underlying constraint handler. We show that our semantics maps each of these aspects of t ..."
Abstract

Cited by 28 (12 self)
 Add to MetaCart
(Show Context)
Abstract. We motivate and develop a linear logic declarative semantics for CHR ∨ , an extension of the CHR programming language that integrates concurrent committed choice with backtrack search and a predefined underlying constraint handler. We show that our semantics maps each of these aspects of the language to a distinct aspect of linear logic. We show how we can use this semantics to reason about derivations in CHR ∨ and we present strong theorems concerning its soundness and completeness. 1
Abstract Interpretation for Constraint Handling Rules
 In Proceedings of the 7th Intl. Conference on Principles and Practice of Declarative Programming (PPDP’05
, 2005
"... Program analysis is essential for the optimized compilation of Constraint Handling Rules (CHRs) as well as the inference of behavioral properties such as confluence and termination. Up to now all program analyses for CHRs have been developed in an ad hoc fashion. In this work we bring the general pr ..."
Abstract

Cited by 27 (17 self)
 Add to MetaCart
(Show Context)
Program analysis is essential for the optimized compilation of Constraint Handling Rules (CHRs) as well as the inference of behavioral properties such as confluence and termination. Up to now all program analyses for CHRs have been developed in an ad hoc fashion. In this work we bring the general program analysis methodology of abstract interpretation to CHRs: we formulate an abstract interpretation framework over the callbased operational semantics of CHRs. The abstract interpretation framework is nonobvious since it needs to handle the highly nondeterministic execution of CHRs. The use of the framework is illustrated with two instantiations: the CHRspecific late storage analysis and the more generally known groundness analysis. In addition, we discuss optimizations based on these analyses and present experimental results. Categories and Subject Descriptors D.3.2 [Programming Languages]: Language Classifications—Constraint and logic languages; F.3.2 [Logics and
ACD term rewriting
 IN: PROCEEDINGS OF ICLP
, 2006
"... In this paper we introduce Associative Commutative Distributive Term Rewriting (ACDTR), a rewriting language for rewriting logical formulae. ACDTR extends AC term rewriting by adding distribution of conjunction over other operators. Conjunction is vital for expressive term rewriting systems since i ..."
Abstract

Cited by 17 (9 self)
 Add to MetaCart
(Show Context)
In this paper we introduce Associative Commutative Distributive Term Rewriting (ACDTR), a rewriting language for rewriting logical formulae. ACDTR extends AC term rewriting by adding distribution of conjunction over other operators. Conjunction is vital for expressive term rewriting systems since it allows us to require that multiple conditions hold for a term rewriting rule to be used. ACDTR uses the notion of a “conjunctive context”, which is the conjunction of constraints that must hold in the context of a term, to enable the programmer to write very expressive and targeted rewriting rules. ACDTR can be seen as a general logic programming language that extends Constraint Handling Rules and AC term rewriting. In this paper we define the semantics of ACDTR and describe our prototype implementation.
As time goes by: Constraint handling rules  A survey of CHR research between 1998 and 2007
, 2009
"... Constraint Handling Rules (CHR) is a highlevel programming language based on multiheaded multiset rewrite rules. Originally designed for writing userdefined constraint solvers, it is now recognized as an elegant general purpose language. CHRrelated research has surged during the decade following ..."
Abstract

Cited by 16 (11 self)
 Add to MetaCart
Constraint Handling Rules (CHR) is a highlevel programming language based on multiheaded multiset rewrite rules. Originally designed for writing userdefined constraint solvers, it is now recognized as an elegant general purpose language. CHRrelated research has surged during the decade following the previous survey by Frühwirth (1998). Covering more than 180 publications, this new survey provides an overview of recent results in a wide range of research areas, from semantics and analysis to systems, extensions and applications.
Compiling Constraint Handling Rules for Efficient Tabled Evaluation
 In 9th International Symposium on Practical Aspects of Declarative Languages (PADL
, 2007
"... Abstract. Tabled resolution, which alleviates some of Prolog’s termination problems, makes it possible to create practical applications from highlevel declarative specifications. Constraint Handling Rules (CHR) is an elegant framework for implementing constraint solvers from highlevel specificatio ..."
Abstract

Cited by 15 (3 self)
 Add to MetaCart
(Show Context)
Abstract. Tabled resolution, which alleviates some of Prolog’s termination problems, makes it possible to create practical applications from highlevel declarative specifications. Constraint Handling Rules (CHR) is an elegant framework for implementing constraint solvers from highlevel specifications, and is available in many Prolog systems. However, applications combining the power of these two declarative paradigms have been impractical since traditional CHR implementations interact poorly with tabling. In this paper we present a new (setbased) semantics for CHR which enables efficient integration with tabling. The new semantics coincides with the traditional (multisetbased) semantics for a large class of CHR programs. We describe CHRd, an implementation based on the new semantics. CHRd uses a distributed constraint store that can be directly represented in tables. Although motivated by tabling, CHRd works well also on nontabled platforms. We present experimental results which show that, relative to traditional implementations, CHRd performs significantly better on tabled programs, and yet shows comparable results on nontabled benchmarks. 1
Equivalence of CHR States Revisited
 SIXTH INTERNATIONAL WORKSHOP ON CONSTRAINT HANDLING RULES (CHR). (2009) 34–48
"... While it is generally agreedupon that certain classes of CHR states should be considered equivalent, no standard definition of equivalence has ever been established. Furthermore, the compliance of equivalence with rule application is generally assumed, but has never been proven. We systematically ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
(Show Context)
While it is generally agreedupon that certain classes of CHR states should be considered equivalent, no standard definition of equivalence has ever been established. Furthermore, the compliance of equivalence with rule application is generally assumed, but has never been proven. We systematically develop an axiomatic notion of state equivalence based on rule applicability and the declarative semantics. We supply the missing proof for its compliance with rule application and provide a proof technique to determine equivalence of given states. The compliance property leads to a simplified formulation of the operational semantics. Furthermore, it justifies a novel view based on equivalence classes of states which provides a powerful proof technique.
Analysing the CHR implementation of unionfind
"... www.informatik.uniulm.de/pm/mitarbeiter/fruehwirth/ Abstract. CHR (Constraint Handling Rules) is a committedchoice rulebased language that was originally intended for writing constraint solvers. Over time, CHR is used more and more as a generalpurpose programming language. In companion paper [12] ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
(Show Context)
www.informatik.uniulm.de/pm/mitarbeiter/fruehwirth/ Abstract. CHR (Constraint Handling Rules) is a committedchoice rulebased language that was originally intended for writing constraint solvers. Over time, CHR is used more and more as a generalpurpose programming language. In companion paper [12] we show that it is possible to write the classic unionfind algorithm and variants in CHR with bestknown time complexity, which is believed impossible in Prolog. In this paper, using CHR analysis techniques, we study logical correctness and confluence of these programs. We observe the essential destructive update of the algorithm which makes it nonlogical. 1