I would be happy to see this idea explored in a mathbox. Even if we don't 
import it and change our "official" FOL= axiom system on the MPE home page 
(which is the result of a lot of fine tuning over many years and admittedly 
somewhat biased by my personal preferences), it can still exist as an 
important stand-alone study that can be referenced in the main set.mm and 
the MPE home page. We do keep some permanent important things in mathboxes, 
such as the old FOL= axiomatization in my mathbox that is referenced in 
many places.  

On Saturday, November 27, 2021 at 4:20:21 PM UTC-5 ookami wrote:

> I wonder whether one can derive df-cleq and df-clel from more class 
> centered axioms in a separate section.  In the manner complex numbers are 
> implemented using dedicated definitions like Kuratowski style pairs.  And 
> then introduce the results as axioms, abstracting from the details of 
> construction.
>
> Wolf
>
> Norman Megill schrieb am Samstag, 27. November 2021 um 20:36:18 UTC+1:
>
>> On Saturday, November 27, 2021 at 11:21:49 AM UTC-5 Benoit wrote:
>>
>>> Here is a complement to Mario's, Thierry's, and Wolf's proposals, as 
>>> Wolf is beginning to formalize his in his mathbox.
>>>
>>> If you do not want to overload the membership predicate, then the most 
>>> sensible thing to do in my opinion is to simply remove ax-8 and ax-9.  By 
>>> bj-ax8 and bj-ax9-2, they are recoverable from FOL= and df-clab, df-cleq, 
>>> df-clel (stated without hypotheses, so you also remove ax-ext).  This is 
>>> not very satisfying since df-cleq appears to group two axioms (the two 
>>> directions).  You could split it into two, to get the system:
>>>   $d x A $.  $d x B $.  [in all these axioms]
>>>   df-clab $a |- ( x e. { y | ph } <-> [ x / y ] ph ) $.
>>>   df-clel $a |- ( A e. B <-> E. x ( x = A /\ x e. B ) ) $.
>>>   ax-classext $a |- ( A. x ( x e. A <-> x e. B ) -> A = B ) $.  
>>>   ax-9clbi $a |- ( A = B -> ( x e. A <-> x e. B ) ) $.
>>> It would be better to state ax-9clbi without a biconditional, as
>>>   ax-9cl $a |- ( A = B -> ( x e. A -> x e. B ) ) $.
>>> but then, you cannot prove anymore that = is an equivalence relation 
>>> among classes.  So you have to strengthen ax-7 to
>>>   ax-7cl $p |- ( A = B -> ( A = C -> B = C ) ) $.
>>> Finally, df-clel also appears to group two axioms, and it appears 
>>> clearer to split it into:
>>>   ax-8clbi $a |- ( x = A -> ( x e. B <-> A e. B ) ) $.
>>>   ax-elisset $a |- ( A e. B -> E. x x = A ) $.  [this is the current 
>>> ~bj-elissetv]
>>> Note that ax-8clbi needs a biconditional in its consequent.  You can 
>>> remove it if you put a class variable in place of x, that is,
>>>   ax-8cl $a |- ( A = B -> ( A e. C -> B e. C ) ) $.
>>>
>>> Of course, you always have the syntactic axiom ~cv in all of these 
>>> systems.  So to sum up, you can use the system
>>>   {ax-mp, ax-gen, ax-1--6, ax-7cl, ax-8cl, ax-9cl, ax-classext, 
>>> ax-elisset, df-clab}
>>> where ax-8cl is replaceable by ax-8clbi, and ax-9cl could be 
>>> strengthened by replacing in it x with a class variable, although this is 
>>> recoverable.  It has the advantage of having simpler axioms, each one 
>>> stating a single fact instead of grouping several facts.  In particular, it 
>>> states as an axiom the fundamental bj-elissetv.  It has the disadvantage of 
>>> not singling out FOL= (since ax-7 was replaced by ax-7cl) nor ax-ext in its 
>>> textbook form.
>>>
>>
>> I am traveling and haven't had time to study this carefully, but here are 
>> some general comments.
>>
>> I would prefer not to mess with FOL=.  ax-8 and ax-9 are part of Tarski's 
>> FOL= system, and removing ax-8 and ax-9 would make it incomplete as a 
>> stand-alone system.  Mixing up FOL= and class theory with some new axioms 
>> seems inelegant and confusing, probably more so to beginners.
>>
>> There is nothing mathematically wrong with adding new definitions that 
>> depend on previously introduced axioms for their justification; books do 
>> this all the time.  We have mostly avoided this in set.mm, with the 
>> exceptions df-cleq and df-clel that need to justified "outside" of Metamath 
>> and whose justification needs some earlier axioms (ax-ext and some mild 
>> FOL=).
>>
>> Adding new axioms for class theory sends the message that FOL= + ZFC is 
>> not sufficient for mathematics, when in fact all uses of df-cleq and 
>> df-clel can be eliminated by converting the notation back to the the native 
>> ZFC language (or more accurately to our scheme language, since class 
>> variables map to wff variables).  It's just not a "direct" substitution of 
>> definiens for definiendum like the other definitions in set.mm.  No new 
>> mathematics results from df-cleq and df-clel; they just provide a 
>> convenient notational device that makes set theory much more practical to 
>> work with.
>>  
>>
>>>   They could be restored by adding the corresponding $e hypotheses to 
>>> these axioms (the $e hypotheses would have exactly the same form as the $a 
>>> conclusions, with class metavariables replaced by variable metavariables).
>>>
>>
>> I am more open to this, as long as it will put this to rest once and for 
>> all.  Do we know that other substitutions into A and B of df-cleq and 
>> df-clel can't generate FOL= statements that are stronger than these 
>> hypotheses?
>>
>> Norm
>>
>>  
>>
>>>
>>> Benoît
>>>
>>> On Tuesday, November 2, 2021 at 4:18:35 AM UTC+1 Thierry Arnoux wrote:
>>>
>> Thank you very much, Mario and Benoît, I will update the repository.
>>>>
>>>>
>>>> On 02/11/2021 00:01, Mario Carneiro wrote:
>>>>
>>> Correction: the first line of the abidc proof should be
>>>>
>>>> |- ( x =s y -> ( y e.c A <-> x e.c A ) )
>>>>
>>>> with a set equality on the left (since class equality is not yet 
>>>> introduced yet). We also want ax-8c to reference only primitive term 
>>>> constructors, so it should also use =s .
>>>>
>>>> On Mon, Nov 1, 2021 at 11:55 AM Mario Carneiro wrote:
>>>>
>>>>> Regarding the new axioms:
>>>>>
>>>>> ax-abidc should be derivable from df-cleq (it should not be 
>>>>> expressible prior to this anyway, since A = B as a wff is not introduced 
>>>>> until then). Specifically:
>>>>>
>>>>> |- ( x = y -> ( y e.c A <-> x e.c A ) )
>>>>> |- ( y e.c A <-> [ y / x ] x e.c A )
>>>>> |- ( y e.c A <-> y e.c { x | x e.c A } )
>>>>> |- A. y ( y e.c A <-> y e.c { x | x e.c A } )
>>>>> |- A = { x | x e.c A } 
>>>>>
>>>>> We need ax-8c as an axiom to prove the first line, but abidc should be 
>>>>> derivable.
>>>>>
>>>>> The second axiom, ( x e.c y <-> x e.s y ), is actually a definition: 
>>>>> If we indicate the coercion explicitly as ( x e.c cv y <-> x e.s y ), 
>>>>> then it should be clear that we can write it in definition form as
>>>>>
>>>>> |- cv y = { x | x e.s y }
>>>>>
>>>>> (which looks a lot like abidc but only because of the suggestive 
>>>>> notation).
>>>>>
>>>>> On Mon, Nov 1, 2021 at 11:34 AM Thierry Arnoux  wrote:
>>>>>
>>>>>> I was curious about the solution where we do not overload equality `=`
>>>>>> and membership `e.`, but instead have different versions of those
>>>>>> predicates for sets.
>>>>>>
>>>>>> For those interested, I've published the resulting experiment here:
>>>>>> https://github.com/tirix/set-noov.mm
>>>>>>
>>>>>> One can examine the changes done on set.mm using GitHub's diff tool.
>>>>>> I've also put a description of my changes in the README.
>>>>>>
>>>>>> In order to make that work, I had to introduce two new axioms. I 
>>>>>> wonder
>>>>>> if anyone can eliminate any of them, or propose a cleverer approach.
>>>>>>
>>>>>> In any case, this approach involves duplicating many of the predicate
>>>>>> calculus theorems, proving them once in their set-only version, and 
>>>>>> then
>>>>>> again in their class version, so overall this method is not elegant 
>>>>>> and
>>>>>> I agree it shall not be pursued.
>>>>>>
>>>>>> BR,
>>>>>> _
>>>>>> Thierry
>>>>>>
>>>>>>
>>>>>> On 29/10/2021 07:19, Norman Megill wrote:
>>>>>> > On 10/28/21 10:11 AM, Thierry Arnoux wrote:
>>>>>> >
>>>>>> > > A solution is mentioned in the comment for df-cleq, shall it be
>>>>>> > > reconsidered?
>>>>>> > ...
>>>>>> >
>>>>>> > A discussion about eliminating overloading of = and e. in
>>>>>> > df-clab,cleq,clel, and why it isn't that simple, is here (from 
>>>>>> 2016):
>>>>>> >
>>>>>> > https://groups.google.com/g/metamath/c/IwlpCJVPSLY/m/f8H9lze_BQAJ
>>>>>> >
>>>>>> > I believe Mario correctly concludes (contrary to my initial
>>>>>> > suggestion) that overloading of "e." can't be removed with this
>>>>>> > method. Since the 3 definitions work together, it doesn't make sense
>>>>>> > to half-fix it with the clumsiness and longer proofs that will 
>>>>>> result
>>>>>> > from =_2 (always having to convert back and forth to make use of FOL
>>>>>> > theorems).
>>>>>> >
>>>>>> > I have removed the comment you mention from df-cleq since it is
>>>>>> > misleading in this way.--
>>>>>>
>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/d610f66b-4dbc-46d3-8600-2402bca30390n%40googlegroups.com.

Reply via email to