Code share: CLP(FD) to CLP(B) translator

Although still I am not familiar with relation between boolean constraint (clp(B)) and finite domain one (clp(FD)), I observed again a similarity of my sat based on DNF to FD as query below. I thinks similarity comes from that a truth-assignment could be viewed as a characteristic function on a subset of the given finite domain in an evident way.

Anyway I have nothing to add to what I understand in naive way about relation between clp(B) and clp(FD). I should delete the quoted comment.

% ?- sat(a+b), sat(b+c), psa.
%@  zid = 8
%@ 	[b]
%@ 	[a,c]
%@ 	[a,b]
%@ -------------------
%@ true.
% ?- sat(a+b), sat(b+c), sat(-(a=b)), psa.
%@  zid = 26
%@ 	[-a,b]
%@ 	[a,-b,c]
%@ -------------------
%@ true.