1:- module(tor_labeling,
    2	[ tor_label/1
    3	, ff_label/1
    4	]).    5
    6% :- use_module(library(tor)).
    7% :- use_module(library(clpfd)).
    8
    9:- use_module(tor).   10:- use_module(library(clpfd)).   11
   12tor_label([]).
   13tor_label([Var|Vars]) :-
   14  ( var(Var) ->
   15      fd_inf(Var,Value),
   16      (   Var #= Value, 
   17          tor_label(Vars) 
   18      tor Var #\= Value, 
   19          tor_label([Var|Vars])
   20      )
   21  ;
   22      tor_label(Vars)
   23  ).
   24
   25ff_label([]).
   26ff_label([Var|Vars]) :-
   27  ( var(Var) ->
   28      clpfd:fd_size_(Var, n(Size)),
   29      clpfd:find_ff(Vars, Var, Size, TheVar),
   30      clpfd:delete_eq([Var|Vars], TheVar, RestVars),
   31      fd_inf(TheVar,Value),
   32      ( TheVar