diff --git a/src_colibri2/theories/FP/dom_interval.ml b/src_colibri2/theories/FP/dom_interval.ml index d0bb75203482e4a05d193cec4813295c31e2447d..88a4c513140ebfddb48af3e6ba835b7c1dc9c83b 100644 --- a/src_colibri2/theories/FP/dom_interval.ml +++ b/src_colibri2/theories/FP/dom_interval.ml @@ -214,17 +214,15 @@ let converter d (f:Ground.t) = let r = Ground.node f in let reg n = Egraph.register d n in let open Monad in - let cmp test _cmp a b = + let cmp test cmp a b = reg a; reg b; let wakeup = setb r (let+ va = get a and+ vb = get b in - test (D.is_comparable va vb)) - (*&& - set b (let+ va = get a and+ vr = getb r in - backward (if vr then (com_cmp cmp) else (com_cmp (neg_cmp cmp))) va) && - set a (let+ vb = get b and+ vr = getb r in - backward (if vr then cmp else (neg_cmp cmp)) vb) - *) + test (D.is_comparable va vb)) && + set b (let+ va = get a and+ vr = getb r in + backward (if vr then (com_cmp cmp) else (com_cmp (neg_cmp cmp))) va) && + set a (let+ vb = get b and+ vr = getb r in + backward (if vr then cmp else (neg_cmp cmp)) vb) in List.iter (fun n -> wait.for_dom d dom n wakeup) [a;b]; wait.for_value d Boolean.BoolValue.key r wakeup