scryer-prolog: clpz, call_residue_vars/2 somewhat missing variable

?- [user].
p :-
        X #< Y,
        X #> Y.

?- p.
   true.
?- call_residue_vars(p, Vs).
   Vs = [_B], clpz:(_A#=<_B+ -1), clpz:(_B#=<_A+ -1). % rather Vs = [_A,_B]

This is not necessarily a correctness issue, but why isn’t _A element of Vs?

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 19 (8 by maintainers)

Commits related to this issue

Most upvoted comments

It seems this is now resolved with cf63e8375d810687f8cfa84ce10bc4570693465e.

Update: No, it’s not. I now get:

?- call_residue_vars(p, Vs).
   Vs = [_C,_D,_E,_F,_G,_H,_I,_J,_K,_L,_M,_N,_O,_P,_Q,_R,_S,_T,_U,_V,...], clpz:(_A#=<_B+ -1), clpz:(_B#=<_A+ -1).

So _A and _B are unexpectedly missing from Vs.

Update: _A and _B are in the truncated list.