verify_attributes(Var, Other, Gs) :-
% portray_clause(Var = Other),
- ( get_attr(Var, clpz, clpz_attr(_,_,_,Dom,Ps,Q)) ->
+ ( get_atts(Var, clpz(CLPZ)) ->
+ CLPZ = clpz_attr(_,_,_,Dom,Ps,Q),
( nonvar(Other) ->
( integer(Other) -> true
; type_error(integer, Other)
domain_contains(Dom, Other),
phrase(trigger_props(Ps), [Q], [_]),
Gs = [phrase(do_queue, [Q], _)]
- ; fd_get(Other, OD, OPs),
- domains_intersection(OD, Dom, Dom1),
- append_propagators(Ps, OPs, Ps1),
- new_queue(Q0),
- variables_same_queue([Var,Other]),
- phrase((fd_put(Other,Dom1,Ps1),
- trigger_props(Ps1)), [Q0], _),
- Gs = [phrase(do_queue, [Q0], _)]
+ ; ( get_atts(Other, clpz(clpz_attr(_,_,_,OD,OPs,_))) ->
+ domains_intersection(OD, Dom, Dom1),
+ append_propagators(Ps, OPs, Ps1),
+ new_queue(Q0),
+ variables_same_queue([Var,Other]),
+ phrase((fd_put(Other,Dom1,Ps1),
+ trigger_props(Ps1)), [Q0], _),
+ Gs = [phrase(do_queue, [Q0], _)]
+ ; put_atts(Other, clpz(CLPZ)),
+ Gs = []
+ )
)
; Gs = []
).