
<ConsistencyModule:> mem(+Vars,?Member)

   Constrains Member to be the a member element in Vars.

Arguments
   Vars                Collection (a la collection_to_list/2) of (domain) variables or integers (NOT arbitrary expressions)
   Member              Member element of Vars (domain variable or integer, array notation accepted)

Type
   library(gfd)

Description

   Constrains Member to be a one of the elements in Vars.

   Note that this constraint has the same declarative semantics as the
   standard member/2 predicate, but the order of the arguments are
   reversed to allow the constraint to be used in constraint
   expressions.
 
   You may find it more convenient to embed mem(Vars) in a
   constraint expression.

   This constraint is implemented by Gecode's member() constraint.

   ConsistencyModule is the optional module specification to give the 
   consistency level for the propagation for this constraint: 
       gfd_gac for domain (generalised arc) consistency.



Examples
   [eclipse 7]: A :: 1..10, B :: 2..20, mem([A,B], M).

A = A{[1 .. 10]}
B = B{[2 .. 20]}
M = M{[1 .. 20]}


[eclipse 8]: A :: 1..10, B :: 2..20, mem([A,B], M), M #< 5.

A = A{[1 .. 10]}
B = B{[2 .. 20]}
M = M{[1 .. 4]}


[eclipse 9]: A :: 1..10, B :: 2..20, mem([A,B], M), M #< 2.

A = A{[1 .. 10]}
B = B{[2 .. 20]}
M = 1

[eclipse 10]: mem([4,5,5,4,1,5], C).

C = C{[1, 4, 5]}




See Also
   mem / 3, eclipse_6 : collection_to_list / 2, lists : collection_to_list / 2
