
<ConsistencyModule:> occurrences(++Value,+Vars,?N)

   The value Value occurs in Vars N times

Arguments
   Value               Integer (or (domain) variable)
   Vars                Collection (a la collection_to_list/2) of integers or (domain) variables
   N                   (Domain) variable or integer (array notation accepted)

Type
   library(gfd)

Description
    	  The value Value occurs in Vars N times.

          ConsistencyModule is the optional module specification to give the 
          consistency level for the propagation for this constraint: 
          gfd_gac for domain (generalised arc) consistency. Note that if
          Value is a domain variable, then the propagation is weak, achieving
          neither domain or bound consistency until Value becomes ground.

          This constraint can be embedded in a constraint expression in its
          functional form (without the last argument).
 
          This constraint is a specialisation of the more general count/4
          constraint, with the (#=) relation, i.e. the occurrences of Value
          is equal to N. 

          This constraint is known as exactly in the global constraint
          catalog, where N is restricted to an integer; the more general 
          count/4 constraint is also known as count in the global 
          constraint catalog, and the constraint is implemented using 
          Gecode's count() constraint.
  


Examples
   
[eclipse 11]: occurrences(1,[3,5,1,4,1,3], N).

N = 2

[eclipse 12]: occurrences(6, [], N).

N = 0

[eclipse 15]: [A,B,C] :: [1..10], occurrences(3, [A,B,C], 0). 

A = A{[1, 2, 4 .. 10]}
B = B{[1, 2, 4 .. 10]}
C = C{[1, 2, 4 .. 10]}


[eclipse 16]:  N :: [3, 5], occurrences(3, [3,A,3,5,3], N).

N = 3
A = A{[-1000000 .. 2, 4 .. 1000000]}  % A cannot be 3


[eclipse 17]:  N :: [3, 5], occurrences(3, [3,A,3,5,3,3], N).

N = 5
A = 3



See Also
   element / 3, atmost / 3, count / 4, eclipse_6 : collection_to_list / 2, lists : collection_to_list / 2, ic_symbolic : occurrences / 3, fd_global : occurrences / 3, ic_global : occurrences / 3
