[LOGIC117] oneshot constraints with multiple rands may run more than once Created: 11/Mar/13 Updated: 19/Mar/13 

Status:  Open 
Project:  core.logic 
Component/s:  None 
Affects Version/s:  None 
Fix Version/s:  None 
Type:  Defect  Priority:  Major 
Reporter:  Nada Amin  Assignee:  David Nolen 
Resolution:  Unresolved  Votes:  0 
Labels:  None 
Description 
Here are two examples using fixc: (run* [q] (fresh [x y] (fixc [x y] (fn [[x y] a _] (!= x 1)) (fn [[x y] a] (= (walk a x) (walk a y))) '...) (== x y))) (run* [q] (fresh [x y c d] (fixc [x y] (fn [[x y] a _] (!= x y)) (fn [[x y] a] (or (not (lvar? (walk a x))) (not (lvar? (walk a y))))) '...) (== [x y] [[c] [d]]))) The constraint != is reified twice in each example, showing that the fixc constraint indeed ran twice. 
Comments 
Comment by David Nolen [ 17/Mar/13 7:27 PM ] 
For the first example I see the following as a result on master: ((_0 : (!= (_1 1)))) Is this what you're seeing? As x isn't even part of the answer I wonder if we should show these constraints? 
Comment by Nada Amin [ 19/Mar/13 1:36 AM ] 
I changed the reifier by setifying the set of constraints, hence you get only one result now. So my illustration is now outofdate but the problem remains. It's a separate issue to filter out irrelevant constraints, and I agree it should be done (I try to do it for the nominal constraints). 