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,
eg. X=3
. This agent adds X=3 to the constraint store and
exits.
The next two examples are disequality constraints, which will be
illustrated in the next section.
The first disequality constraint is invoked by the
syntax X~=Y
. This
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.