  Confluence denotes the property of a state transition system that states can
be rewritten in more than one way yielding the same result. Although it is a
desirable property, confluence is often too strict in practical applications
because it also considers states that can never be reached in practice.
Additionally, sometimes states that have the same semantics in the practical
context are considered as different states due to different syntactic
representations. By introducing suitable invariants and equivalence relations
on the states, programs may have the property to be confluent modulo the
equivalence relation w.r.t. the invariant which often is desirable in practice.
  In this paper, a sufficient and necessary criterion for confluence modulo
equivalence w.r.t. an invariant for Constraint Handling Rules (CHR) is
presented. It is the first approach that covers invariant-based confluence
modulo equivalence for the de facto standard semantics of CHR. There is a
trade-off between practical applicability and the simplicity of proving a
confluence property. Therefore, a better manageable subset of equivalence
relations has been identified that allows for the proposed confluence criterion
and and simplifies the confluence proofs by using well established CHR analysis
methods.
