On Confluence of Constraint Handling Rules
ABSTRACT . We introduce the notion of confluence for Constraint Handling Rules (CHR), a powerful language for writing constraint solvers. With CHR one simplifies and solves constraints by applying rules. Confluence guarantees that a CHR program will always compute the same result for a given set of constraints independent of which rules are applied. We give a decidable, sufficient and necessary syntactic condition for confluence. Confluence turns out to be an essential syntactical property of CHR programs for two reasons. First, confluence implies correctness (as will be shown in this paper). In a correct CHR program, application of CHR rules preserves logical equivalence of the simplified constraints. Secondly, even when the program is already correct, confluence is highly desirable. Otherwise, given some constraints, one computation may detect their inconsistency while another one may just simplify them into a still complex constraint. As a side-effect, the paper also gives soundness and com...
- SourceAvailable from: psu.edu[show abstract] [hide abstract]
ABSTRACT: Machine This section discusses some major issues in the design of an abstract machine for the execution of CLP programs. The primary focus here will be on the design of the instruction set, with emphasis on the interaction between their use and information obtained from a potential program analyzer. Some elements of the runtime structure will also be mentioned. In general, the essential features of the parts of an abstract machine dealing with constraints will differ greatly over CLP languages using different constraint domains. This is exemplified in the literature on CLP(R) , CHIP , and CLP(FD) . The following presentation, though based on one work , contains material that is relevant to abstract machines for many CLP languages. We begin by arguing that an abstract machine is the right approach in the first place. Abstract machines have been used for implementing programming languages for many reasons. Portability is one: only an implementation of the abstract mac...10/1994;
- [show abstract] [hide abstract]
ABSTRACT: We investigate the subset of concurrent constraint programs (ccp) which are confluent in the sense that different process schedulings lead to the same possible outcomes. Confluence is an important and desirable property as it allows the program to be understood by considering any desired scheduling rule, rather than having to consider all possible schedulings. The subset of confluent programs is less expressive than full ccp. For example it cannot express fair merge although it can express demonic merge. We give a simple closure based denotational semantics for confluent ccp. We also study admissible programs which is a subset of confluent ccp closed under composition. We consider then applications of our results to give a framework for the efficient yet accurate analysis of full ccp. The basic idea is to approximate an arbitrary ccp program by an admissible program which is then analyzed.01/2006: pages 531-545;
Conference Proceeding: Concurrent Constraint Programming.01/1990