[LOGIC-88] disequality reification is broken Created: 29/Dec/12 Updated: 02/Jan/13 Resolved: 02/Jan/13 |
|
| Status: | Resolved |
| Project: | core.logic |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Blocker |
| Reporter: | David Nolen | Assignee: | David Nolen |
| Resolution: | Completed | Votes: | 0 |
| Labels: | 0.8.0 | ||
| Description |
(run* [q]
(fresh [x y]
(!= [1 x] [y 2])
(== q [x y])))
Does not return the following expected reified value: (([_0 _1] :- (!= [_0 2] [_1 1]))) Even more bizarre things happen with the following: (run* [q]
(fresh [x y z]
(!= [1 x z] [y 2 3])
(== q [x y])))
z leaks out in the reified value. (run* [q]
(fresh [x y z]
(!= [1 x z] [y 2 3])
(== q [x y z])))
We only see one var constraint in the reified value. |
| Comments |
| Comment by David Nolen [ 02/Jan/13 6:43 PM ] |
|
fixed, http://github.com/clojure/core.logic/commit/5a0eb2754dc744e60ea1c4ea3460b5429685ef59 |