Confluence
Most applications of CHRs require that the rewriting process be confluent; otherwise the results of searching for a satisfying assignment will be nondeterministic and unpredictable. Establishing confluence is usually done by way of the following three properties
- A CHR program is locally confluent if all its critical pairs are joinable
- A CHR program is called terminating if there are no infinite computations.
- A terminating CHR program is confluent if all its critical pairs are joinable.
Read more about this topic: Constraint Handling Rules