Simple predicate for instantiating a list of integer IC variables to elements of their domains. (Integers are also allowed in the list; they are effectively ignored.) The variables are instantiated in the order in which they appear in the list; the implementation is essentially:
labeling([]). labeling([Var|Rest]) :- indomain(Var), labeling(Rest).