<div class="gmail_quote">If we store terms in articles as-is and then clean tags up later (or not), then I imagine Opentheory repos would offer different versions of packages: either the raw one that might include prover-specific constants for some prover, or the cleaned up one with all tags removed. If you&#39;re lucky enough to be using the prover the package was made on, you get the specific version, otherwise you get the generic one.<br>

If tags are inferable, though, then there could be more options, tailoring a package to the prover you want to use it on.<br>Does this sound right?<br><br>On Mon, Dec 12, 2011 at 2:13 AM, Michael Norrish <span dir="ltr">&lt;<a href="mailto:Michael.Norrish@nicta.com.au">Michael.Norrish@nicta.com.au</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think it’s clear that there’s no end of cruft that systems might like to put into theory files.  Even the “names” field you mention below may vary from system to system.  Given that, we need some generic way of stuffing arbitrary, well-delimited strings into theory files.  I’d probably prefer these strings to be inline, but it could also be done with associated files if necessary.<br>


<br>
I like the default being the storage of everything.<br></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Another example of a tag-like thing is the way we use K T x to store arbitrary terms x in a theory so that the term can be referred to by the LaTeX machinery we have.<br>
<span class="HOEnZb"><font color="#888888"><br>
Michael<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On 08/12/11 21:32, Ramana Kumar wrote:<br>
&gt; Can we make a comprehensive list of the kind of stuff we might want to<br>
&gt; store in a theory package?<br>
&gt; I suspect there will be different recovery methods suitable for<br>
&gt; different kinds of data, and looking at the requirements will help see<br>
&gt; if and how opentheory might have to be modified or extended.<br>
&gt;<br>
&gt; - Tag-free theorems, definitions, low-level proofs.<br>
&gt; : already handled by article format<br>
&gt;<br>
&gt; - theory name and description and dependencies<br>
&gt; : already handled by theory package format<br>
&gt;<br>
&gt; - NUMERAL tags<br>
&gt; : reconstructible on reading?<br>
&gt;<br>
&gt; - Abbrev tags<br>
&gt;<br>
&gt; - Other tags? (Such as?)<br>
&gt; : An alternative approach might be to store terms in an article as-is<br>
&gt; (with tags) and then have different processing options for cleaning up<br>
&gt; an article like do-nothing, remove all tags, remove all of the<br>
&gt; following tags, or even possibly introduce tags for a specific prover<br>
&gt; (if they are inferable).<br>
&gt;<br>
&gt; - theorem names<br>
&gt; : could be stored in a separate file mapping names to statements?<br>
&gt;<br>
&gt; - automatic rewrites<br>
&gt; : could be stored in a separate file containing a list of theorems?<br>
&gt;<br>
&gt; - parsing and printing rules, and overloads<br>
&gt; : also could be in a separate file?<br>
&gt;<br>
&gt; - derived rules and other functionality associated with a theory<br>
&gt;   - tactics, provers/decision procedures<br>
&gt;   - syntax manipulation functions<br>
&gt;   - what else?<br>
&gt; : again, could be in a separate file of code, possibly using<br>
&gt; opentheory article format to interface with the required<br>
&gt; constants/theorems in the theory?<br>
&gt;<br>
&gt; - what else?<br>
&gt;<br>
&gt; At the moment it looks like almost everything could be handled by<br>
&gt; extra files that would be mentioned in a theory package but wouldn&#39;t<br>
&gt; interfere with article files in their current form. Only tag constants<br>
&gt; are a problem because they change the terms the article is dealing<br>
&gt; with.<br>
&gt;<br>
&gt; Are there examples of tags that are definitely not reconstructible if<br>
&gt; they are thrown away during cleanup?<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Dec 8, 2011 at 9:50 AM, Michael Norrish<br>
&gt; &lt;<a href="mailto:michael.norrish@nicta.com.au">michael.norrish@nicta.com.au</a>&gt; wrote:<br>
&gt;&gt; On 07/12/2011, at 20:01, Ramana Kumar &lt;<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; It would be worth thinking about how to do all that with opentheory.<br>
&gt;&gt; I wouldn&#39;t want to compromise the goal of storing prover-independent<br>
&gt;&gt; theories without a good reason, though...<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; My concern is that the resulting system might forget things that can&#39;t be<br>
&gt;&gt; recovered.  Then it will never be usable as a theory storage mechanism.   Is<br>
&gt;&gt; it possible to create a faithful representation of what&#39;s there that does<br>
&gt;&gt; support getting back exactly what was put in, and to *then* work on<br>
&gt;&gt; forgetting stuff that doesn&#39;t belong in theories meant for sharing with<br>
&gt;&gt; other systems?<br>
&gt;&gt;<br>
&gt;&gt; Michael<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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
&gt;&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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
<br>
<br>
</div></div><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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
<br></blockquote></div><br>