Next: CLPFD Annotations, Previous: CLPFD Glossary, Up: lib-clpfd [Contents][Index]
Certain properties of propagators are desirable:
A correct propagator never removes a domain value for which a satisfying assignment exists. This property is mandatory.
A checking propagator accepts all ground assignments that satisfy it and rejects all ground assignments that violate it. This property is also mandatory.
A contracting propagator never adds any value to any domain. This property is also mandatory. In fact, it holds by construction.
A propagator P is monotone if, for all domain stores S and T, if S is an extension of T, then P(S) is an extension of P(T). This property is not mandatory but helps understanding and debugging.
A propagator P is idempotent if, for all domain stores S, P(S) equals P(P(S)).