To my mild surprise, logging the proof of the point-free theorem worked.<br>That is, if I make sure the theorem with an unapplied Unwanted.id is logged with a proof (while logging the lazy list theory), then process the resulting article with opentheory, the resulting package doesn't define Unwanted.id and doesn't require any axioms.<br>
I've uploaded the new version of the lazy list package, which now appears to define and prove just the right things. <a href="http://opentheory.gilith.com/opentheory/packages/lazy-list-0.3/lazy-list-0.3.html">http://opentheory.gilith.com/opentheory/packages/lazy-list-0.3/lazy-list-0.3.html</a><br>
<br><div class="gmail_quote">On Thu, Jan 19, 2012 at 11:38 AM, Ramana Kumar <span dir="ltr"><<a href="mailto:ramana.kumar@gmail.com">ramana.kumar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Thu, Jan 19, 2012 at 11:11 AM, Joe Hurd <span dir="ltr"><<a href="mailto:joe@gilith.com" target="_blank">joe@gilith.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The current procedure for eliminating Unwanted.id constants only works<br>
when they're applied to arguments, so even if you remove them from<br>
assumptions and theorems they might still be present inside proofs.<br>
<br>
Really the trick is to get rid of Unwanted constants from assumptions<br>
and theorems (since constants that are only present inside proofs are<br>
trapped and can never escape to their environment). So Michael's<br>
solution of replacing the point-free version of theorems containing<br>
Unwanted constants with point-full versions should work just fine,<br>
though on an ad-hoc basis.<br></blockquote></div><div><br>I don't think that's what he suggested. Rather it was to provide a proof of the point-free version. I'm about to try saving such a proof in a separate package and then listing that package as a "requires:" to see what happens...<br>
</div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Cheers,<br>
<br>
Joe<br>
<div><div><br>
On Thu, Jan 19, 2012 at 12:19 AM, Ramana Kumar <<a href="mailto:ramana.kumar@gmail.com" target="_blank">ramana.kumar@gmail.com</a>> wrote:<br>
> Thinking about this more, I'm not sure it will work completely because the<br>
> statement of the theorem will still include Unwanted.id... So the article<br>
> might end up still defining Unwanted.id but hopefully not assuming any<br>
> axioms. In any case, I'm going to try it out and see what happens.<br>
><br>
> On Thu, Jan 19, 2012 at 5:24 AM, Michael Norrish<br>
> <<a href="mailto:Michael.Norrish@nicta.com.au" target="_blank">Michael.Norrish@nicta.com.au</a>> wrote:<br>
>><br>
>> On 19/01/12 10:04, Ramana Kumar wrote:<br>
>><br>
>> > Yes. (Except for two minor details: there will be no occurrences of<br>
>> > Unwanted afterwards, even internally, and it is the proofs that are<br>
>> > rewritten (rather than just theorem/import/axiom statements).)<br>
>><br>
>> Ah, that's interesting.<br>
>><br>
>> >> Would it be possible to augment the HOL4 exporter so that it<br>
>> >> automatically included the (fairly trivial) proof discharging the<br>
>> >> point-free theorem that gets listed as an import? It seems to me<br>
>> >> that this is the best solution, though it's clearly very ad hoc.<br>
>><br>
>> > Yes that seems like a good solution to me, but I think it means<br>
>> > looking for this theorem specifically as a special case in the<br>
>> > exporter, right? Actually it could be as general as: if a theorem,<br>
>> > after translating constants to OT namespace, contains any<br>
>> > not-fully-applied Unwanted.ids, then lookup a proof for the theorem<br>
>> > in a special database, otherwise proceed as normal. (As normal would<br>
>> > be logging the proof if it's attached to the theorem, otherwise<br>
>> > treat it as an axiom. The problem above is that the theorem doesn't<br>
>> > have a proof attached when logging llist, since it was proved in an<br>
>> > earlier theory (i.e. it's a DISK_THM)).<br>
>><br>
>> Yeah, the special database will presumably have to be populated with real<br>
>> proofs well in advance.<br>
>><br>
>> There probably isn't any real harm in trying to be general. On the other<br>
>> hand, I don't suppose there will be a great many such theorems.<br>
>><br>
>> Michael<br>
>><br>
>><br>
>> _______________________________________________<br>
>> opentheory-users mailing list<br>
>> <a href="mailto:opentheory-users@gilith.com" target="_blank">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>
>><br>
><br>
><br>
> _______________________________________________<br>
> opentheory-users mailing list<br>
> <a href="mailto:opentheory-users@gilith.com" target="_blank">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>
><br>
<br>
_______________________________________________<br>
opentheory-users mailing list<br>
<a href="mailto:opentheory-users@gilith.com" target="_blank">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></div></div><br>
</blockquote></div><br>