% Predicates that use syntax specific of the CLP(FD) library of the host Prolog 
% Version for SWI Prolog
% The main difference is that SICStus uses #<=>, while SWI uses #<==>

reified_equality_solver(X,Y,B):- X #= Y #<==> B.

solver_and(B,B1,B2):- B #<==> (B1 #/\ B2).

reification(T,B):- call(T #<==> B).

opposite(eq(A,B),neq(A,B)).
opposite(neq(A,B),eq(A,B)).
opposite(lt(A,B),geq(A,B)).
opposite(leq(A,B),gt(A,B)).
opposite(gt(A,B),leq(A,B)).
opposite(geq(A,B),lt(A,B)).
opposite(C,C #<==> 0).
