From: Markus Triska Date: Wed, 2 Aug 2023 22:26:40 +0000 (+0200) Subject: FIXED: do not attach constraint if the propagator is already entailed and killed X-Git-Tag: v0.9.2~16^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=0ddda0a864109f69273dc2d056986f9d240a83de;p=scryer-prolog.git FIXED: do not attach constraint if the propagator is already entailed and killed Example: ?- A#=A//A#==>B,A-B=1-1. A = 1, B = 1. This addresses #1941. --- diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index 38e52657..ed01f079 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -3784,8 +3784,11 @@ var_eq(V, N, #V #= N). % Match variables to created skeleton. skeleton(Vs, Vs-Prop) :- - maplist(prop_init(Prop), Vs), - trigger_once(Prop). + ( propagator_state(Prop, State), State == dead -> + true + ; maplist(prop_init(Prop), Vs), + trigger_once(Prop) + ). /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A drep is a user-accessible and visible domain representation. N,