# Channeling Constraints in Constraint Handling Rules (CHR)

Suppose we have a constraint satisfaction problem that can be defined as its constraints in two different viewpoints $$V_1$$ and $$V_2$$. Moreover, there are two variables $$A$$ and $$B$$ from $$V_1$$ and $$V_2$$ respectively, such that the value $$I$$ for the variable $$A$$ in $$V_1$$ is equivalent to value $$J$$ for the variable $$B$$ in $$V_2$$. Now the question is how we can define the channeling constraint in CHR if we choose $$V_1$$ to solve the problem? Is it enough to write $$P_1(A,I) ==> P_2(B,J)$$? (suppose $$P1$$ and $$P2$$ are two predicates related to their viewpoints).

However, this propagation in the context of CHR does not help to solve the problem more efficient as we have no constraints over the variables of $$V_2$$.

Notice that this question in the matter of programming asked here but not solved yet.

• What is meant by a "viewpoint"? Can you define what that word means in this context? I'm also not familiar with what a channeling constraint is or what CHR is, so maybe I'm not qualified to answer the question; or maybe it would be helpful to provide a self-contained definition of those. I'm not sure what you mean by "enough to write [...]". You can always write anything you want; what do you want to know about that? I don't understand what connection the sentence "However, this propagation.." has to do with the rest of your post. Is it safe to ignore that remark? – D.W. May 18 at 21:45
• Dear @D.W. All of these which you want to describe could be a book in CHR which you can find all these in Constraint Handling Rules (by Cambridge Press) and Handbook of Constraint Programming (by Elsevier). – OmG May 19 at 9:20