
<ConsistencyModule:> #=(?ExprX, ?ExprY, ?Bool)

   Reified ExprX is equal to ExprY.

Arguments
   ExprX               Integer arithmetic expression
   ExprY               Integer arithmetic expression
   Bool                Reified truth value of the constraint

Type
   library(gfd)

Description

   This predicate is a reified constraint: it succeeds if and only if the
   truth value of its associated constraint (the constraint with arity one
   less and the same arguments except for B) is equal to B, where the value
   0 means false and 1 true.  This constraint can be used both to test the
   validity of the associated constraint (entailment test) and to impose
   this constraint or its negation.  For the former, B will be instantiated
   as soon as either the associated constraint or its negation is subsumed
   by the current state of its domain variables.  For the latter, when B is
   instantiated, then depending on its value, either the associated
   constraint or its negation will be imposed on its arguments.

   ConsistencyModule is the optional module specification to give the 
   consistency level for the propagation for this constraint: gfd_bc
   for bounds consistency, and gfd_gac for domain (generalised arc) 
   consistency. Note that some operators (integer division, modulus)
   only support bounds consistency and will be propagated with bounds
   consistency even when posted with gfd_gac.

   This constraint is implemented using Gecode's MiniModel's rel() for
   both integer and boolean expressions, with sub-expressions/constraints
   not supported by MiniModel factored out and posted as auxiliary 
   constraints.



Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

See Also
   #< / 3, #=< / 3, #>= / 3, #> / 3, #\= / 3, #= / 2, suspend : #= / 3, ic : #= / 3, fd : #= / 3
