Bug in unifying dictionaries that contains CLP(Q) constraints

Hi there, just got what seems like a bug:

:- use_module(library(clpq)).

test :-
        X = #{a:0,b:1},
        Y = #{a:_,b:_,c:_},
        {Y.a + Y.b = Y.c},
        {Y.c > 0},
        X >:< Y.

The above test fails unexpectedly. However, if we remove {Y.c > 0}, it succeeds.

Not sure if this is a problem with CLP(Q) or the > : < unification predicate.

Any thoughts? Many thanks :slight_smile:

I suspect that dictionary-specific references are not meant to be used within clp :slightly_smiling_face:

This works as expected:

:- use_module(library(clpq)).

test(YC) :-
        {YA = 0, YB = 1},
        {YA + YB = YC},
        {YC > 0}.

Result:

?- test(YC).
YC = 1.