<p>On Dec 6, 2011 11:02 PM, &quot;Michael Norrish&quot; &lt;<a href="mailto:Michael.Norrish@nicta.com.au">Michael.Norrish@nicta.com.au</a>&gt; wrote:<br>
&gt;<br>
&gt; I think the mistake here is mapping the Abbrev constant to Unwanted.  I&#39;d say it was probably worth preserving.</p>
<p>Why? What does it mean outside of HOL4?</p>
<p>&gt;<br>
&gt; Michael<br>
&gt;<br>
&gt; On 07/12/11 09:35, Joe Hurd wrote:<br>
&gt; &gt; Hi Ramana,<br>
&gt; &gt;<br>
&gt; &gt; Good job digging up a counter-example to my claim about how tags are<br>
&gt; &gt; used, but I think it&#39;s probably not worth the effort to handle exotic<br>
&gt; &gt; cases. Perhaps the theorem you found could be deduced from a form with<br>
&gt; &gt; a fully applied tag?<br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt;<br>
&gt; &gt; Joe<br>
&gt; &gt;<br>
&gt; &gt; On Tue, Dec 6, 2011 at 11:53 AM, Ramana Kumar &lt;<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt; On Tue, Dec 6, 2011 at 7:36 PM, Joe Hurd &lt;<a href="mailto:joe@gilith.com">joe@gilith.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt; The solution is to ensure that every instance of Unwanted.id in theory<br>
&gt; &gt;&gt;&gt; assumptions and theorems is fully applied. This should always be the<br>
&gt; &gt;&gt;&gt; case for constants used to tag terms, which are the main use-case of<br>
&gt; &gt;&gt;&gt; Unwanted.id.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I&#39;m not so sure about that. This theorem is from the HOL4 library<br>
&gt; &gt;&gt; (combinTheory.literal_case_FORALL_ELIM):<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; |- literal_case f v ⇔ (!) (S ((==&gt;) o Abbrev o C (=) v) f)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; The &quot;Abbrev&quot; constant in the middle there is a tag for abbreviations<br>
&gt; &gt;&gt; (which I map to Unwanted.id).<br>
&gt; &gt;&gt; (This is where, I believe, my axiom in the lazy list theory was coming from.)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I&#39;m not sure why this theorem has the form it does, but it could be an<br>
&gt; &gt;&gt; example of a useful not-fully-applied tag.<br>
&gt; &gt;&gt; Perhaps someone who knows more about that theorem could clarify...<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Cheers,<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Joe<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; On Tue, Dec 6, 2011 at 11:18 AM, Ramana Kumar &lt;<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; Will your scheme for eliminating Unwanted.id work in terms where it<br>
&gt; &gt;&gt;&gt;&gt; does not appear fully applied, but can still be eliminated?<br>
&gt; &gt;&gt;&gt;&gt; Specifically, when Unwanted.id is composed with another function.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; On Tue, Dec 6, 2011 at 6:44 PM, Ramana Kumar &lt;<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt;&gt; Thanks for making it quicker :)<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; Now, the only place where Unwanted.id seems not to be erased is in an<br>
&gt; &gt;&gt;&gt;&gt;&gt; apparent axiom required by my article.<br>
&gt; &gt;&gt;&gt;&gt;&gt; Can you confirm that the article is actually trying to define Unwanted.id?<br>
&gt; &gt;&gt;&gt;&gt;&gt; I generated the article from a HOL4 theory that I don&#39;t think should<br>
&gt; &gt;&gt;&gt;&gt;&gt; be defining anything mapped to Unwanted.id, so I&#39;m a bit confused<br>
&gt; &gt;&gt;&gt;&gt;&gt; about that at the moment...<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; On Tue, Dec 6, 2011 at 4:58 AM, Joe Hurd &lt;<a href="mailto:joe@gilith.com">joe@gilith.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Hi Ramana,<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; I fixed a performance bug in the proof rewriting, and your example<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; goes through pretty quickly now (see below). The fix is both pushed<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; and released in the latest version of the opentheory tool.<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Joe<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; ________________________________________________________________<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; dimholt:~/dev/opentheory$ gzcat ~/Desktop/ll.art.gz | time<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; bin/mlton/opentheory info --inference article:-<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; WARNING: 38 objects left on the stack by -<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; WARNING: 473,658 objects left in the dictionary by -<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Primitive inferences:<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; eqMp ............ 150,377<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; deductAntisym ... 129,584<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; subst ............ 76,065<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; appThm ........... 20,748<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; assume ........... 18,086<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; refl .............. 9,363<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; betaConv .......... 7,461<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; absThm ............ 4,564<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; axiom ............... 193<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; defineConst .......... 25<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; defineTypeOp .......... 1<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Total ........... 416,467<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;       24.40 real<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;       15.30 user<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;         9.07 sys<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; dimholt:~/dev/opentheory$ time bin/mlton/opentheory info --inference<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; foo.art Primitive inferences:<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; eqMp ............. 68,100<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; subst ............ 56,228<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; deductAntisym .... 51,689<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; appThm ........... 17,378<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; betaConv .......... 6,866<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; refl .............. 6,325<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; absThm ............ 4,267<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; assume ............ 1,608<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; axiom ............... 190<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; defineConst .......... 26<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; defineTypeOp .......... 1<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Total ........... 212,678<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; real    0m5.289s<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; user    0m5.027s<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; sys     0m0.256s<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; opentheory-users mailing list<br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; &gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; _______________________________________________<br>
&gt; &gt;&gt;&gt;&gt; opentheory-users mailing list<br>
&gt; &gt;&gt;&gt;&gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; &gt;&gt;&gt;&gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt; &gt;&gt;&gt; opentheory-users mailing list<br>
&gt; &gt;&gt;&gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; &gt;&gt;&gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; opentheory-users mailing list<br>
&gt; &gt;&gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; &gt;&gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; opentheory-users mailing list<br>
&gt; &gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; &gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; opentheory-users mailing list<br>
&gt; <a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
&gt; <a href="http://www.gilith.com/mailman/listinfo/opentheory-users">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt;<br>
</p>