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.
This commit is contained in:
Markus Triska
2023-08-03 00:26:40 +02:00
parent 02328d818c
commit 0ddda0a864

View File

@@ -3784,8 +3784,11 @@ var_eq(V, N, #V #= N).
% Match variables to created skeleton. % Match variables to created skeleton.
skeleton(Vs, Vs-Prop) :- skeleton(Vs, Vs-Prop) :-
maplist(prop_init(Prop), Vs), ( propagator_state(Prop, State), State == dead ->
trigger_once(Prop). true
; maplist(prop_init(Prop), Vs),
trigger_once(Prop)
).
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A drep is a user-accessible and visible domain representation. N, A drep is a user-accessible and visible domain representation. N,