# CLP - missing variable binding

**URL:** <https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638>\
**Category:** Help!\
**Created:** [May 13, 2019, 3:27pm UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638 "2019-05-13T15:27:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Iam](https://avatars.discourse-cdn.com/v4/letter/i/58956e/32.png) [@Iam](https://swi-prolog.discourse.group/u/Iam)\
**Post date:** [May 13, 2019, 3:27pm UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638/1 "2019-05-13T15:27:40Z")

</div>

I’m using: SWI-Prolog version 8.0.2-1

Why do I get no bindings for X and Y in the third query, although I get bindings in the first two queries?

?- 2_X+Y #= 5 , 2_Y +X #= 7 , [Y,X] ins -1000000…sup.  
X = 1,  
Y = 3.

?- 2_X+Y #= 5 , 2_Y +X #= 7 , [Y,X] ins inf…100000.  
X = 1,  
Y = 3.

?- 2_X+Y #= 5 , 2_Y +X #= 7 , [Y,X] ins inf…sup.  
X+2_Y#=7,  
2_X+Y#=5.

I would appreciate any comment or pointer to further reading.

Thanks,

Stefan

---

<div class="post-metadata">

**Author:** ![swi](https://avatars.discourse-cdn.com/v4/letter/s/51bf81/32.png) [@swi](https://swi-prolog.discourse.group/u/swi)\
**Post date:** [May 13, 2019, 9:20pm UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638/2 "2019-05-13T21:20:49Z")

</div>

The FD in CLPFD means “finite domain” and inf…sup is not finite, so it returns the relation instead.

---

<div class="post-metadata">

**Author:** ![Iam](https://avatars.discourse-cdn.com/v4/letter/i/58956e/32.png) [@Iam](https://swi-prolog.discourse.group/u/Iam)\
**Post date:** [May 13, 2019, 9:46pm UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638/3 "2019-05-13T21:46:24Z")

</div>

Sorry, but -1000000…sup is also not finite, but yields a solution, i.e. can be solved. Why that?

---

<div class="post-metadata">

**Author:** ![swi](https://avatars.discourse-cdn.com/v4/letter/s/51bf81/32.png) [@swi](https://swi-prolog.discourse.group/u/swi)\
**Post date:** [May 14, 2019, 12:07am UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638/4 "2019-05-14T00:07:54Z")

</div>

Iam,

-1000000…sup has a finite beginning, which alows the engine to have a starting point.

---

<div class="post-metadata">

**Author:** ![Iam](https://avatars.discourse-cdn.com/v4/letter/i/58956e/32.png) [@Iam](https://swi-prolog.discourse.group/u/Iam)\
**Post date:** [June 23, 2019, 6:22am UTC](https://swi-prolog.discourse.group/t/clp-missing-variable-binding/638/5 "2019-06-23T06:22:02Z")

</div>

Why is the engine limited in this aspect? I mean:  
The engine could take any number (e.g. 0) as starting point, start two processes (either in parallel or alternate between the two processes), such that 1 process regards inf…0 and the other 0…sup. As the current engine terminates for both semi-open intervals, inf…0 and 0…sup, correctly, a new engine using two processes should be able to come up with the correct result.
