Which comment of Benoît you are referring to?
--
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 metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/34ea47c9-0b57-4b1c-8cc4-6e81617a3fefn%40googlegroups.com.
I am not sure whether the complexity is a problem of operator overloading only. Let me explain why:
At the moment of df-cleq the term x e. A is still undefined, and can mean anything.
It is known to be well-formed (by wcel), though, so our typical logical manipulations apply. It follows from df-clel that ( x e. A -> E. y y e. A ) with y, A distinct holds. Thus df-clel leaves the semantics of x e. A almost always undecided, the exemption being the empty set.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/1e7e79a3-c369-42a7-a2b4-d6c43b923a76n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/702d5dd4-910b-4ac0-88d9-f9712491c77en%40googlegroups.com.
Norman Megill wrote Tuesday, 26. Oktober 2021 at 21:46:35 UTC+2:Which comment of Benoît you are referring to?In PR #2267 he described the phenomenon of the vanishing ax-9 as an artifact of df-cleq and further hinted to his bj-ax9 theorem.
If, as you write, ax-9 is not important any more once you arrive at df-cleq, you may as well include it to the axiom list unconditionally.From my point of view the following aspects were important to trigger my initial post:
- Does the axiom list appear to be trustworthy? And does it follow a consistent pattern?
- While adding complexity to df-cleq may puzzle readers, vanishing axioms after a proof change is not better. And we have a concrete incident here.
- df-cleq, and even more so df-clel, seem to be no ordinary definition anyway, as the right hand side does not always explain the definiendum in simpler terms, for example in case set variables are involved. It once took me quite some time to get over their recursive nature, and their implicit consequences. One is that you can restate 2 axioms directly, but only one is taken care of.
I am at a loss how text books handle these issues; I never read one on logic.
--
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 metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/be783362-425b-4fb3-b07e-e04d87e756a4n%40googlegroups.com.
Personally, I think the easiest way to address the issues is to make df-cleq, df-clab, df-clel axioms instead of "definitions". They are not definitions according to the definition checker algorithm, they are not conservative as observed in this thread, and they significantly complicate the metatheoretic analysis of the axiom system. Even if we want to think that "class" is a conservative extension of ZFC, that is only when you introduce the whole set of axioms at once, and even then we must assume the full set of FOL axioms (like ax-9) to start with. Metamath does not have an adequate mechanism for introducing new conservative sorts, and I think we should just own up to this and admit these as axioms.
I discuss the issue of whether to call df-clab,cleq,clel axioms at the end of the http://us.metamath.org/mpeuni/mmset.html#class section. Most authors call them definitions, and my feeling is that calling them axioms would be somewhat misleading since they can (in the presence of ax-ext) always be eliminated back to equivalent statements in the primitive language.While I'm not sure what the correct terminology is, class notation as a "conservative extension" is not the same notion as calling NBG a "conservative extension" of ZFC: in the former case, any class expression can be converted back and forth to an equivalent expression in the native language, whereas in the latter case, there are statements such as global choice that cannot be expressed in the ZFC language and have no equivalent in ZFC.
I don't see the fact that our definitional check algorithm can't check them as sufficient justification in itself to call them axioms. If we had adopted the usual textbook convention of using multipart recursive definitions for df-oadd etc. instead of our direct definitions with `rec`, would you want to call those axioms?
Most importantly, though, I don't want to give the reader (who typically is not a set theorist or even a mathematician) the impression that the axioms of set theory aren't sufficient in principle for essentially all of math. I think that calling df-cleq an "axiom" simply due to limitations of Metamath is not necessarily helpful to the average person just wanting an overall understanding of the foundations of math.
You have a somewhat different goal wrt formal verification, and for your purposes calling them ax-clab,cleq,clel (with a simple global label replacement in set.mm) may very well be preferred. Part of my goal has been to break down mathematics into the smallest possible steps that an average person can in principle verify for themselves (whether or not they are able to grasp the big picture), while also trying to communicate in more general terms the foundations of set theory and thus mathematics in mmset.html, in a way that doesn't confuse people with "if ZFC is sufficient, why do we need axioms beyond ZFC?" I think our goals have worked together synergistically.
On Wed, Oct 27, 2021 at 11:40 AM Norman Megill wrote:I discuss the issue of whether to call df-clab,cleq,clel axioms at the end of the http://us.metamath.org/mpeuni/mmset.html#class section. Most authors call them definitions, and my feeling is that calling them axioms would be somewhat misleading since they can (in the presence of ax-ext) always be eliminated back to equivalent statements in the primitive language.While I'm not sure what the correct terminology is, class notation as a "conservative extension" is not the same notion as calling NBG a "conservative extension" of ZFC: in the former case, any class expression can be converted back and forth to an equivalent expression in the native language, whereas in the latter case, there are statements such as global choice that cannot be expressed in the ZFC language and have no equivalent in ZFC.I don't think that this is true.
In fact, ZFC + classes is a conservative extension in exactly the same way that NBG is,
especially if you pay attention to metalogical completeness.
As far as I can tell, the standard argument that classes are a definitional extension only applies if we think that the only inhabitants of "class" are class abstractions, but in metamath there are always variables living in every sort, and you can't prove properties about generic variables even if the property holds for all class abstractions.
A simple example of this is axiom ax-9c, which is true for class abstractions
because of df-clab (i.e. x = y -> (x e. { z | ph } -> y e. { z | ph }) is true by properties of substitution) but cannot be proven for arbitrary classes.
Traditional textbooks don't cover this, because of course metalogical completeness isn't a thing. But I think it is impossible for metamath to
introduce a new sort without letting these extra variable terms sneak in, so metalogical completeness is always relevant to us. I believe that conservativity in the traditional sense still applies to the set.mm formulation of "class" over the set-only part of , but nothing stronger than that.
I don't see the fact that our definitional check algorithm can't check them as sufficient justification in itself to call them axioms. If we had adopted the usual textbook convention of using multipart recursive definitions for df-oadd etc. instead of our direct definitions with `rec`, would you want to call those axioms?What it amounts to is that all our tools are saying it's not a definition, and the only reason it is considered a definition is because we are explicitly overriding the tool and declaring them definitions by fiat. Furthermore, because of the notational overloading situation, these definitions are
*actually* proving new lemmas, it's not merely a theoretical concern. If ax-9c at least existed as an axiom, then we could at least say that the definitions are not load-bearing, they only prove theorems that were already true beforehand, but it's not that way in the current setup. I think this weakens the trust in the overall distinction between definition and axiom, so users can't just ignore the "This theorem depends on definitions" list, which is much larger than the axioms list.Most importantly, though, I don't want to give the reader (who typically is not a set theorist or even a mathematician) the impression that the axioms of set theory aren't sufficient in principle for essentially all of math. I think that calling df-cleq an "axiom" simply due to limitations of Metamath is not necessarily helpful to the average person just wanting an overall understanding of the foundations of math.You have a somewhat different goal wrt formal verification, and for your purposes calling them ax-clab,cleq,clel (with a simple global label replacement in set.mm) may very well be preferred. Part of my goal has been to break down mathematics into the smallest possible steps that an average person can in principle verify for themselves (whether or not they are able to grasp the big picture), while also trying to communicate in more general terms the foundations of set theory and thus mathematics in mmset.html, in a way that doesn't confuse people with "if ZFC is sufficient, why do we need axioms beyond ZFC?" I think our goals have worked together synergistically.For a careful reader, it is not clear to me what the relative probabilities of the "type I and type II errors" here are. As you say, if we mark them as
axioms then readers might think that ZFC isn't enough for mathematics (which I actually think is mostly true
- the class extension exists in metamath for a very good reason), and if we mark them as definitions then people (like Wolf in this very thread) might get confused about by what standard we judge axioms to be "definitions", which is a question of high importance considering that it forms part of the trusted base of metamath (since verifiers don't check it).
In fact, ZFC + classes is a conservative extension in exactly the same way that NBG is,There is a fundamental difference.NBG has global choice, which has no ZFC equivalent. From the wikip page on NBG, "the axiom of global choice ... is stronger than ZFC's axiom of choice".On the other hand, any ZFC+classes expression containing class variables can be converted to an equivalent expression with wff variables, and vice-versa. They are just two different notations for the same thing. See Takeuti/Zaring Ch. 4 or Levy Appendix X or Quine pp. 15-21. Class variables can be considered wff (meta)variables in disguise. See also the comments in ~abeq2.
especially if you pay attention to metalogical completeness.What does this have to do with our metalogical (scheme) completeness - or do you mean something else?
As far as I can tell, the standard argument that classes are a definitional extension only applies if we think that the only inhabitants of "class" are class abstractions, but in metamath there are always variables living in every sort, and you can't prove properties about generic variables even if the property holds for all class abstractions.Sorry, I don't understand what this sentence means. :) What is an inhabitant, "living in every sort", generic variable, property? There are no "generic" variables (as I understand that word) in set.mm; there are only wff, setvar, and class variables.
A simple example of this is axiom ax-9c, which is true for class abstractionsbecause of df-clab (i.e. x = y -> (x e. { z | ph } -> y e. { z | ph }) is true by properties of substitution) but cannot be proven for arbitrary classes.This is an instance of eleq1+biimpd, which holds for arbitrary classes.
Traditional textbooks don't cover this, because of course metalogical completeness isn't a thing. But I think it is impossible for metamath tointroduce a new sort without letting these extra variable terms sneak in, so metalogical completeness is always relevant to us. I believe that conservativity in the traditional sense still applies to the set.mm formulation of "class" over the set-only part of , but nothing stronger than that.I don't understand what you mean. What is an example of extra variable terms that sneak in?
I don't see the fact that our definitional check algorithm can't check them as sufficient justification in itself to call them axioms. If we had adopted the usual textbook convention of using multipart recursive definitions for df-oadd etc. instead of our direct definitions with `rec`, would you want to call those axioms?What it amounts to is that all our tools are saying it's not a definition, and the only reason it is considered a definition is because we are explicitly overriding the tool and declaring them definitions by fiat. Furthermore, because of the notational overloading situation, these definitions areThere is no new mathematics that results from the class theory definitions, and as a practical matter I have chosen to trust the multiple proofs of conservation and eliminability in the literature. In principle they could be proved formally. Class theory is simply a different notation for the same thing that is often more practical to work with. Since no new mathematics results from the class theory definitions, it's hard for me to justify calling them axioms.I understand that these literature proofs may not qualify as a "trusted base" from your point of view since they haven't been verified formally. In which case it would make sense for you to rename/treat them as ax-* in your copy of set.mm.
For a careful reader, it is not clear to me what the relative probabilities of the "type I and type II errors" here are. As you say, if we mark them asWhat are type i and type II errors?
A solution is mentioned in the comment for df-cleq, shall it be
reconsidered?
We could avoid this complication by introducing a new
symbol, say =_2,
in place of ` = ` . This would also have the
advantage of making
elimination of the definition straightforward, so
that we could
eliminate Extensionality as a hypothesis. We would
then also have the
advantage of being able to identify in various
proofs exactly where
Extensionality truly comes into play rather than
just being an artifact
of a definition. One of our theorems would then be
` x ` =_2
` y <-> x = y ` by invoking Extensionality.
However, to conform to literature usage, we retain
this overloaded
definition. This also makes some proofs shorter and
probably easier to
read, without the constant switching between two
kinds of equality.
As far as I understand Mario has chosen this in MM0.
--
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 metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/879eb864-f2b1-40a3-9018-c5a698ad5ac8n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/28471da3-9ad8-a648-d251-258af55f22e9%40gmx.net.
So the scheme x e. A is equivalent i.e. represents the same set of object language wffs as the scheme [ x / y ] ph.
ZFC+classes is exactly equivalent to ZFC in terms of the object-language theorems it can prove.
This is very different from NGB as a "conservative extension of ZFC", which has statements stronger than what ZFC can prove such as global choice (primarily because the class variables in ZFC+classes cannot be existentially quantified).
> In Shoenfield, section 4.6 starting p. 57 is titled "Extensions by
> definitions", covering definitions of new predicate symbols and
> definitions of new function symbols. He states (p. 60) that, "We say
> that T' is an /extension by definitions/ of T if T' is obtained from T
> by a finite number of extensions of the two types which we have described."
I don't have a copy of Shoenfield, but from what you quote he is still calling them "definitions" rather than new axioms.
As for Mendelson, he uses NBG which has class variables built in, so it doesn't really apply to set.mm.
Takeuti/Zaring has the same class theory as we do, and their versions of df-clab,cleq,clel are all called "definitions".
The only place I could find class theory definitions called "axioms" is in Levy. But he calls them "extralogical axioms", whatever that means, compared to what he calls the "logical axioms" of ZFC. Perhaps he doesn't consider them "real" axioms?
The hypothesis of bj-df-cleq corresponds to setvar substitutions into A and B. Do we know that other substitutions into A and B can't generate FOL= statements that are stronger than the hypothesis? Perhaps we are safe since we may need df-cleq itself to eliminate the resulting class notation, but I haven't thought it through completely to be sure there aren't tricks that can be done with the other two class definitions. What do you think?
Can you remind me what the minimal positive calculus is?
--
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 metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/063cda68-5e30-45a8-8397-b694093b2924n%40googlegroups.com.
What is ax-9c? It isn't an axiom in set.mm.
I've referenced it a few times in this conversation as a hypothetical axiom extending ax-9 to classes: x = y -> (x e. A -> y e. A).
Mario: why, when you encounter a dummy class variable in the original proof, don't you simply use a dummy setvar variable in place of it ?
|- ( 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 }
( 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 }
--
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 metamath+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/f387c42a-ac19-3979-851b-d5b6fb8e2638%40gmx.net.
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.
|- ( 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 .Thank you very much, Mario and Benoît, I will update the
repository.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/CAFXXJSutSTcXhDB_ucpWitfy3ej7TpMO8MHS%2B-0a7FVzy36TcQ%40mail.gmail.com.
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.
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).
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 .
(and the problem of having specific instances as hypotheses creeps up in the conservativity theorem, it seems).
On 11/29/21 8:15 PM, Norman Megill wrote:
I'm not saying you are wrong, only that I don't understand the reasoning or advantage and need to be educated. :) I know that many books show ZFC axioms and even FOL axiomatizations with universal closures, and I've never understood why.
I don't really know whether avoiding the free variables is just convention/tradition or whether it really is easier to learn this way. But it is pretty common in how people teach logic. For example: "a statement is a formula with no free variables (Margaris, p. 21) and "a formal proof is a finite sequence of statements" (p. 13) (these quotes are a bit out of context, in the sense that later chapters of Margaris, which aim to be more rigorous, are stated differently). Certainly when I was learning predicate logic I found ax-gen to be very confusing (perhaps because it really is hard to get your head around the idea that something can have a truth value when it contains free variables, or perhaps because of this educational tradition which will say a formula cannot have a truth value when it contains free variables).
Now, some sources may not be worrying about pedagogy but may be
thinking of measuring quantifier alternations or other topics I
understand dimly if it all. So there may be reasons for the
universal quantifiers in some contexts that I'm not really aware
of. But in the context of set.mm/iset.mm (which is where I spend
my time these days), I have certainly gotten used to the
statement meaning the same thing with or without the quantifier.
It looks like in http://us.metamath.org/ileuni/onintexmid.html
we picked the style without the quantifier but in others like
http://us.metamath.org/ileuni/ordtriexmid.html (admittedly, a
restricted quantifier here) or
http://us.metamath.org/ileuni/ssfiexmid.html (here an
unrestricted quantifier) we picked the style with the
quantifier. Would http://us.metamath.org/ileuni/acexmid.html be
easier to read if there was an "A. x" at the start, which would
prevent the eye from having to hunt for the free variable in a
fairly long formula? I sort of gave up on having a strong
opinion one way or the other a while ago.
Another more thing: it may be more correct to use the universal closures of the $e hypotheses above (as I did in the current bj-df-clel and bj-df-cleq). This does not change much, since one can go back and forth between them by ax-gen/sp, but sentences (closed formulas) are easier to understand than open formulasWhy do you think universal closures are easier to understand? Personally I don't find them easier, if nothing else because the formula is longer and thus takes slightly more effort to parse mentally.
Moreover, instantiating the $e from the $a in your ax-cleq is an immediate and obvious substitution, whereas with universal closure in bj-df-cleq we also need applications of ax-gen.
Also, if we require the universal closures of the hypotheses, for consistency shouldn't we also require the universal closure of the conclusion? That would be awkward: for bj-df-clel we would have to prefix the $p with "A. x1 ... A. xn" along with the side condition "where x1,...,xn are the free variables in A and B", and of course the current set.mm doesn't even have a notation that allows us to express that.
I'm not saying you are wrong, only that I don't understand the reasoning or advantage and need to be educated. :) I know that many books show ZFC axioms and even FOL axiomatizations with universal closures, and I've never understood why. Requiring all proof steps to be universally closed (as some FOL axiomatizations do) can make them quite tedious to work with. There are "Quine closures" and "Berry closures", each with a set of rules to add, drop, and reorder the quantifiers in universal closures as we apply ax-mp etc. These seem like a major distraction and complication vs. using simple open formulas, particularly when schemes are involved.
Maybe there are advantages to universal closures (sentences) for some theoretical purposes, but I don't see any advantage for set.mm.
(and the problem of having specific instances as hypotheses creeps up in the conservativity theorem, it seems).Where do you see this? In any case, can't we just apply ax-gen as needed if open formulas are problematic?