<div dir="ltr"><div>Oh wow, that's a pretty direct derivation of extensionality from my version of defineTypeOp. I stand corrected; certainly it's not desirable to have a "conservative extension" allow the derivation of an axiom before its introduction. And I guess that the next best thing if you want to maintain conservativity is exactly your version of the axiom.<br><br></div>Mario<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 6, 2014 at 2:16 AM, Joe Leslie-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">Hi Mario,<br>
<br>
As you say, extensionality is an axiom of the system, but the use of<br>
it is explicitly tracked. For example, you can see which theorems in<br>
bool theory depend on it using the following command:<br>
<br>
opentheory info --theory --show-assumptions --show-derivations bool<br>
<br>
If defineTypeOp produced this:<br>
<span class=""><br>
⊦ p = (\r. rep (abs r) = r)  (1)<br>
<br>
</span>then you could apply appThm, betaConv and absThm to get:<br>
<br>
⊦ (\r. p r) = (\r. rep (abs r) = r)  (2)<br>
<br>
and then sym and trans using (1) and (2) to get<br>
<br>
⊦ (\r. p r) = p  (3)<br>
<br>
which is an untracked application of extensionality for any non-empty<br>
predicate p. It seemed more elegant to reformulate the theorem to<br>
avoid this possibility.<br>
<br>
Cheers,<br>
<br>
Joe<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Nov 5, 2014 at 10:45 PM, Mario Carneiro <<a href="mailto:di.gama@gmail.com">di.gama@gmail.com</a>> wrote:<br>
> I was aware that equation (1) is stronger than (2) without extensionality,<br>
> but I'm curious why this is a problem, since it is an axiom of the system<br>
> and doesn't require proof. Any v5 proof that starts with (2) can easily be<br>
> rebuilt to use (1), while conversely for a v6 proof there are very few<br>
> theorems that follow from (1) but not (2) in the absence of extensionality<br>
> (mostly trivial restatements of (1) itself), and I expect that any proof<br>
> that starts from (1) will immediately wrap it with appThm, upon which point<br>
> it will again be equivalent to (2).<br>
><br>
> Mario<br>
><br>
> On Thu, Nov 6, 2014 at 1:31 AM, Joe Leslie-Hurd <<a href="mailto:joe@gilith.com">joe@gilith.com</a>> wrote:<br>
>><br>
>> Now that there is a release of the opentheory tool for processing<br>
>> version 6 articles, and I am sitting on a release of the standard<br>
>> theory library that uses version 6 articles, I'd like to finalize<br>
>> version 6 of the article file format standard, which is currently in<br>
>> draft mode:<br>
>><br>
>> <a href="http://www.gilith.com/research/opentheory/article.html" target="_blank">http://www.gilith.com/research/opentheory/article.html</a><br>
>><br>
>> The commands that are new in version 6 are highlighted in yellow and<br>
>> the command with changed semantics (defineTypeOp) is highlighted in<br>
>> red. We have discussed the changes on this list, so there shouldn't be<br>
>> any surprises in store.<br>
>><br>
>> Actually, there is one minor change that hasn't been discussed before.<br>
>> During implementation work on defineTypeOp I discovered that one of<br>
>> Mario's proposed theorems<br>
>><br>
>> ⊦ p = (\r. rep (abs r) = r)  (1)<br>
>><br>
>> required the axiom of extensionality to be logically equivalent to the<br>
>> same theorem produced by version 5 of defineTypeOp:<br>
>><br>
>> ⊦ p r = (rep (abs r) = r)  (2)<br>
>><br>
>> Although it would be theoretically possible to invoke the axiom of<br>
>> extensionality to convert between the two versions of defineTypeOp, I<br>
>> thought it was more elegant to reformulate theorem (1)<br>
>> by eta-expanding p:<br>
>><br>
>> ⊦ (\r. rep (abs r) = r) = \r. p r  (3)<br>
>><br>
>> [I also flipped the LHS and RHS so that theorem (3) has a pleasing<br>
>> similarity to the other theorem produced by defineTypeOp.] Now theorem<br>
>> (3) is logically equivalent to theorem (2) without requiring the axiom<br>
>> of extensionality, and retains the desirable property of having no<br>
>> free term variables.<br>
>><br>
>> Anyway, there are no other "brown bag updates" to the standard, and<br>
>> I'd like to finalize it so we can start using it for real work.<br>
>><br>
>> Does anybody have any objections or last-minute additions?<br>
>><br>
>> Cheers,<br>
>><br>
>> Joe<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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
><br>
><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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
><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/opentheory/mailing-list" target="_blank">http://www.gilith.com/opentheory/mailing-list</a><br>
</div></div></blockquote></div><br></div>