I have rewritten my standalone conversion between Norrish numerals and binary numerals.<br><br>The code now lives here: <a href="https://gitorious.org/hol/ot/trees/master">https://gitorious.org/hol/ot/trees/master</a> (it is numconv.hs)<br>

<br>Changes/Features:<br><ul><li>Now translates in both directions: Norrish -&gt; Binary and Binary -&gt; Norrish</li><li>Translates numerals recursively within any term (doesn&#39;t require a bare numeral as input)</li>
<li>
Optional &quot;rule mode&quot; proves t |- t&#39; rather than |- t = t&#39;; maybe useful for converting numerals in an already proved theorem and composing the resulting articles.<br></li><li>Refactored into several reusable Haskell modules</li>

<li>Cleaned up code; it now doesn&#39;t emit any warnings with ghc&#39;s -Wall.<br></li></ul>I haven&#39;t tested it very much, especially in the from-binary direction. Test articles and use cases would be appreciated. The axioms in that direction are probably not in the standard library, but they are provable in HOL4...<br>

<br>The next task I want to do is figure out how best to create a kind of &quot;compatibility theory package&quot; that would include those theorems (and other common prover-specific theorems) that can be added to the &quot;requires:&quot; of a package for easy use of packages coming out of specific provers.<br>

<br>I look forward to your comments and tests for numconv :)<br>And if you have ideas for other standalone proof tools, the OpenTheory Haskell modules are free to use.<br><br><div class="gmail_quote">On Fri, Apr 6, 2012 at 9:31 PM, Joe Hurd <span dir="ltr">&lt;<a href="mailto:joe@gilith.com" target="_blank">joe@gilith.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yep, looks like it works fine now, in case we ever need to de-Norrish<br>
some numerals from HOL Light.<br>
<br>
Cheers,<br>
<br>
Joe<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, Apr 5, 2012 at 11:25 PM, Ramana Kumar &lt;<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>&gt; wrote:<br>
&gt; My code works fine on this article. The problem was my CGI script. It should<br>
&gt; be fixed now.<br>
&gt; (It had a call to runhaskell n2b.hs which got confused when called from<br>
&gt; another directory, so now I&#39;ve given it an absolute path to n2b.hs.)<br>
&gt;<br>
&gt; On Thu, Apr 5, 2012 at 11:10 PM, Joe Hurd &lt;<a href="mailto:joe@gilith.com">joe@gilith.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Ramana,<br>
&gt;&gt;<br>
&gt;&gt; &gt; My guess is that you&#39;re generating an article with HOLLight.BIT2 rather<br>
&gt;&gt; &gt; than<br>
&gt;&gt; &gt; Number.Natural.bit2, but I haven&#39;t actually run your attempt.<br>
&gt;&gt; &gt; If that&#39;s not the problem it would be helpful if you could send me the<br>
&gt;&gt; &gt; article that gets passed to the web tactic (or maybe I should have some<br>
&gt;&gt; &gt; infrastructure for saving it...)<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ve attached the article encoding the goal: FYI the opentheory<br>
&gt;&gt; summary for it is:<br>
&gt;&gt;<br>
&gt;&gt; $ opentheory info n2b-goal.art<br>
&gt;&gt; 3 input type operators: -&gt; bool Number.Natural.natural<br>
&gt;&gt; 5 input constants: F Function.K Number.Natural.bit1 Number.Natural.bit2<br>
&gt;&gt;  Number.Natural.zero<br>
&gt;&gt; 1 assumption:<br>
&gt;&gt;  |- Function.K F<br>
&gt;&gt;       (Number.Natural.bit2 (Number.Natural.bit1 (Number.Natural.bit2 0)))<br>
&gt;&gt; 1 theorem:<br>
&gt;&gt;  |- Function.K F<br>
&gt;&gt;       (Number.Natural.bit2 (Number.Natural.bit1 (Number.Natural.bit2 0)))<br>
&gt;&gt;<br>
&gt;&gt; &gt; The function n2b near the top of the file is the algorithm.<br>
&gt;&gt; &gt; It&#39;s been a while, so let&#39;s see if I can figure out the algorithm just<br>
&gt;&gt; &gt; by<br>
&gt;&gt; &gt; reading that code...<br>
&gt;&gt;<br>
&gt;&gt; Your algorithm looks absolutely fine, and should scale up to any size<br>
&gt;&gt; of natural number that a theorem prover could conceivably process.<br>
&gt;&gt;<br>
&gt;&gt; Cheers,<br>
&gt;&gt;<br>
&gt;&gt; Joe<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" target="_blank">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt;&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" target="_blank">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
&gt;<br>
<br>
_______________________________________________<br>
opentheory-users mailing list<br>
<a href="mailto:opentheory-users@gilith.com">opentheory-users@gilith.com</a><br>
<a href="http://www.gilith.com/mailman/listinfo/opentheory-users" target="_blank">http://www.gilith.com/mailman/listinfo/opentheory-users</a><br>
</div></div></blockquote></div><br>