-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document unbound variables are basically universal #4306
base: develop
Are you sure you want to change the base?
Conversation
Document an issue discussed in the Metamath mailing list, subject "Re: [Metamath] Question about a specific problem probably unrelated with metamath". Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>
This attempts to document a point from the mailing list. Improvements / corrections welcome. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please add something about how this does not apply to class variables? Ie, 0 < K is usually safe to postulate.
Attempt to resolve a comment from Scott Fenton (@sctfn). Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>
But won't you get a problem discharging the hypothesis if you aren't prefixing it with ph? Actually it might even be the first thing I have learned. |
Its impossible to quantify classes, and bind them that way. So far it is clear. But when you introduce a class with A e. X, which renders it automatically a set, what is the difference between a e. X and A e. X then? |
The difference is that there is no inference rule analogous to vtoclg for classes. That is, you can't go from |- A e. X => |- B e. X in the general case. |
In principle, I think it is a good idea to document this interesting and important observation at a central place. Furthermore, this description must be worked out a lot, because in this way, and without additional context, it confuses more than it is helpful. |
I'm undecided about this. If we do say something, I'd probably refer to ax-gen . What to say about classes is, as usual, one of the hardest parts. I might ultimately come down on the side of "don't try to teach predicate logic in metamath documentation" but of course some of the metamath specific parts warrant a mention so I'm a bit unsure. |
IMO, it's a subtle point of logic that should probably be called out. I agree that ax-gen is the right place for this. I think it's okay to mention class variables there - we aren't trying to keep them secret. |
Is there a problem this MR is trying to solve? Yes, the axiom Yes, it is also true that classes cannot be quantified over in set.mm, but do we want to also write that in our "conventions"? As @jkingdon writes, I also prefer that we "don't try to teach predicate logic in metamath documentation". |
Also a point regarding teaching metamath. I don't particularly have a pro or con regarding where things are to be taught, but from my experience few months ago when I've started it wasn't a good teaching experience. Generally you want some guidance somewhere accessible for new users to start. The fact that I couldn't even get the tooling to run was just plain abyssmal. |
I think that a comment in ax-gen is a good place for this explanation. This explanation should emphasize that, in the case of the ZFC set theory, the syntax only allows the (universal or existential) quantification over setvar variables, but not over class variables, but that, in the case of NBG or MK set theory, such quantification over class variables is allowed. |
That's still not true in the way we develop our "virtual" classes, though. In NBG, we'd still have the distinction between (now) classvars and the compound expression classes. We'd quantify over classvars and instantiate them with virtual classes. The big difference would be that |- E. y x e. y would no longer be a theorem, so we would need to say A e. U. _V instead of A e. _V (unless we redefined _V) |
Right, the key difference is not "set" vs "class" but rather the "var" part of "setvar" (also the reason why we renamed this sort to begin with). The lowercase variables are stand-ins for variables, they are something that can legally appear in the first position of If we had a "classvar" sort then they too would be subject to ax-gen and substitution in hypotheses. |
Document an issue discussed in the Metamath mailing list, subject "Re: [Metamath] Question about a specific problem probably unrelated with metamath".