
card_labeling(?SetVars)

   Label cardinality of set variables

Arguments
   SetVars             A list of set variables.

Type
   library(cardinal)

Description
Instantiate all cardinalities of variables in SetVars from first to
		last, using indomain/1 predicate of fd library.
		card_labeling/1 is defined as:

  card_labeling([]).
  card_labeling([H|T]):-
	cardinality(H, C),
	indomain(C),
	card_labeling(T).



Fail Conditions
   Fails if cardinalities of SetVars can not be labeled (because constraint
		propagation leads to a failure).

Resatisfiable
   Yes.

Examples
   
?- S `:: [a]+[b,c]:CS, T `:: [1] + [2], card_labeling([S, T]).
CS = 1, S = [a], T = [1] ;
CS = 1, S = [a], T = [1, 2] ;
CS = 2, T = [1] ;
CS = 2, T = [1, 2] ;
CS = 3, S = [a,b,c], T = [1] ;
CS = 3, S = [a,b,c], T = [1, 2] ;
no

?- S `:: [a] + [b,c,d,e,f]:[2,3,6,9], card_labeling([S]), cardinality(S,C).
C = 2 ;
C = 3 ;
C = 6, S = [a,b,c,d,e,f] ;
no



See Also
   set_labeling / 2, refine / 2, cardinality / 2
