
<ConsistencyModule:> count_matches(+Values, ?Vars, +Rel, ?N)

   The number of the elements in Vars that
 match its corresponding value in Values, Matches, satisfies the
 relation Matches Rel N.

Arguments
   +Values             A collection of M integer values
   ?Vars               A collection of M (domain) variables or integers
   +Rel                One of the atom: #>, #>=, #<, #=<, #=, #\=
   ?N                  An integer or (domain) variable (array notation accepted)

Type
   library(gfd)

Description
   Values and Vars are collections of the same size, and the
   number of elements in Vars taking on the value given by its corresponding 
   element in Values, Matches, is constrained by the relation:

           Rel N

   Rel can be one of #>, #>=, #<, #=<, #=, #\= (or equivalently,
   >, >=, <, =<, =, \=).

   This constraint can be embedded in a constraint expression in its
   functional form (without the last argument).

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

   This constraint is implemented by gecode's count() constraint 
   (variant with an IntArgs for Values). 



Examples
   [eclipse 5]: count_matches([1,2,3,4], [A,B,C,D], (#=), N).

A = A{[-1000000 .. 1000000]}
B = B{[-1000000 .. 1000000]}
C = C{[-1000000 .. 1000000]}
D = D{[-1000000 .. 1000000]}
N = N{[0 .. 4]}

[eclipse 6]: L = [A,B,C,D], L :: 4..10, count_matches([1,2,3,4], L, (#=), N).

L = [A{[4 .. 10]}, B{[4 .. 10]}, C{[4 .. 10]}, D{[4 .. 10]}]
A = A{[4 .. 10]}
B = B{[4 .. 10]}
C = C{[4 .. 10]}
D = D{[4 .. 10]}
N = N{[0, 1]}

[eclipse 15]: count_matches([1,2,3,4], [4,3,2,1], (#=), N).

N = 0

[eclipse 16]: count_matches([1,2,3,4], [2,2,3,5],  (#=), N).

N = 2

[eclipse 17]:  count_matches([], [], (#=), N).

N = 0




