core.logic

disequality reification is broken

Details

  • Type: Defect Defect
  • Status: Closed Closed
  • Priority: Blocker Blocker
  • Resolution: Completed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:

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.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: