<!-- 
RSS generated by JIRA (4.4#649-r158309) at Thu Jun 20 02:36:56 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/LOGIC-98/LOGIC-98.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[LOGIC-98] nominal unification misses after-the-fact fd constraints</title>
                <link>http://dev.clojure.org/jira/browse/LOGIC-98</link>
                <project id="10020" key="LOGIC">core.logic</project>
                        <description>&lt;p&gt;Related to &lt;a href=&quot;http://dev.clojure.org/jira/browse/LOGIC-92&quot;&gt;http://dev.clojure.org/jira/browse/LOGIC-92&lt;/a&gt;, these two snippets both return (nom/tie &apos;a_0 1) instead of three results for 1, 2, 3.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
  (nom/fresh [a b c]
    (fresh [x y]
      (== (nom/tie b (nom/tie a x)) (nom/tie c q))
      (infd x (interval 1 3)))))

(run* [q]
  (nom/fresh [a b c]
    (fresh [x y]
      (infd y (interval 1 3))
      (== (nom/tie b (nom/tie a x)) (nom/tie c q))
      (== x y))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="15946">LOGIC-98</key>
            <summary>nominal unification misses after-the-fact fd constraints</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="dnolen">David Nolen</assignee>
                                <reporter username="namin">Nada Amin</reporter>
                        <labels>
                    </labels>
                <created>Sat, 5 Jan 2013 10:35:59 -0600</created>
                <updated>Fri, 11 Jan 2013 10:49:38 -0600</updated>
                    <resolved>Fri, 11 Jan 2013 10:49:38 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="30406" author="namin" created="Tue, 8 Jan 2013 04:24:11 -0600"  >&lt;p&gt;logic-98.diff fixes this by forcing all nom-related vars at once.&lt;/p&gt;

&lt;p&gt;Do you have any ideas for separating the concern, so that force-ans doesn&apos;t need to know about ::nom?&lt;/p&gt;</comment>
                    <comment id="30407" author="dnolen" created="Tue, 8 Jan 2013 06:32:50 -0600"  >&lt;p&gt;Will need to think about this some more.&lt;/p&gt;</comment>
                    <comment id="30410" author="namin" created="Tue, 8 Jan 2013 14:33:10 -0600"  >&lt;p&gt;Ouch! Here is a snippet that doesn&apos;t do the right thing, even with the patch:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(run* [q]
  (nom/fresh [a b c d]
    (fresh [x y z]
      (== (nom/tie b (nom/tie a x)) (nom/tie c z))
      (infd x (interval 1 3))
      (== (nom/tie d q) z))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It returns only (1) instead of (1 2 3).&lt;/p&gt;</comment>
                    <comment id="30420" author="namin" created="Fri, 11 Jan 2013 10:07:06 -0600"  >&lt;p&gt;logic-98-nominal.diff is a solution that works for all three test cases above by simply making core.logic.nominal aware of ::fd and updating the doms when appropriate.&lt;/p&gt;</comment>
                    <comment id="30421" author="dnolen" created="Fri, 11 Jan 2013 10:49:38 -0600"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/core.logic/commit/ef27fa3ed2381f3ad4685d4bc59a298646a4febb&quot;&gt;http://github.com/clojure/core.logic/commit/ef27fa3ed2381f3ad4685d4bc59a298646a4febb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It would be nice if nominal didn&apos;t need to know about fd, as there will be other &quot;enumerable&quot; domains in the future. But this works great for now.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11798" name="logic-98.diff" size="3624" author="namin" created="Tue, 8 Jan 2013 04:24:11 -0600" />
                    <attachment id="11802" name="logic-98-nominal.diff" size="3643" author="namin" created="Fri, 11 Jan 2013 10:07:06 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>