The simplest constraint agent is one which adds a primitive
constraint to the constraint store and then exits.
The most fundamental example is assigning a value to a variable,
X=3. This agent adds X=3 to the constraint store and
The next two examples are disequality constraints, which will be
illustrated in the next section.
The first disequality constraint is invoked by the
agent does not do anything until both X and Y have a fixed
value. Only when the primitive constraints in the store entail
and for some unique values and ,
does the agent wake up. Then its behaviour is to check that
is different from . In case they are the same, an inconsistency
has been detected.
If the constraint store holds finite domain constraints, then the more
powerful constraint agent invoked by the syntax
X ## Y can be used.
This agent wakes up as soon as either X or Y has a fixed value.
It then removes this value from the finite domain of the other
variable and exits.