2:- use_module(library('clp/clpfd')). 3
4:- op(750, fy, #\+). 5:- op(700, xfx, ##). 6:- op(760, yfx, #/\). 7:- op(770, yfx, #\/). 8:- op(780, yfx, #=>). 9:- op(790, yfx, #<=>). 10:- op(800, xfx, isd). 11:- op(400, yfx, ('*`')).
12
13:- op(750, fy, local). 14
15:- meta_predicate local(:). 16
17local(_M:Call) :- Call.
18
19variable(Var):-nb_setval(Var,[]).
20variable(Var,VAL):-nb_setval(Var,VAL).
21setval(Var,VAL):-nb_setval(Var,VAL).
22getval(Var,VAL):-nb_getval(Var,VAL).
23
24% summary:"Succeeds if Term is a domain variable.
25is_domain(T):-clpfd:fd_get(T, Dom, _), !, T in Dom.
26
27setval(X):-trace,nb_setval(X,[]).
28
30copy_term_vars(Vars,OldTerm,NewTerm):-copy_term(OldTerm,NewTerm),term_variables(NewTerm,Vars).
31
32#\+(C):- #\(C).
33
34is_predicate(F/A):-current_predicate(F/A), functor(P,F,A),predicate_property(P, visible)