Skip to content
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

Explain why $d is used on its first use #3754

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions set.mm
Original file line number Diff line number Diff line change
Expand Up @@ -15580,8 +15580,28 @@ only postulated (that is, axiomatic) rule of inference of predicate
This axiom essentially says that if ` x ` does not occur in ` ph ` ,
i.e. ` ph ` does not depend on ` x ` in any way, then we can add the
quantifier ` A. x ` to ` ph ` with no further assumptions. By ~ sp , we
can also remove the quantifier (unconditionally). (Contributed by NM,
10-Jan-1993.) $)
can also remove the quantifier (unconditionally).

This is our first use of a disjoint variable restriction aka distinct
variables ($d in the Metamath language). It would be possible to
express our axioms without $d but there are good reasons we do it this
way. The "obvious" way of truthfully expressing this axiom (and other
similar axioms) without distinct variable constraints ($d statements)
would lead to situations where even after the variable is done being
used you still can't discharge the distinctor. This would mean its
logical equivalent would permanently stick around. Effectively all
proofs would end up saying "provided there are at least N variables in
the metalogic, the following theorem holds" because you actually can't
prove anything about whether variables exist in this setting. This
admits models where e.g. the object logic only has three variables v0 v1
v2 and so you can't write any expression containing four or more forall
or exists quantifiers without being degenerate in some way, so the
undischargeable assumptions that pile up are saying that the object
logic is at least nondegenerate enough to perform the proof in question.
The $d provisos provide a simple mechanism to eliminate the problem in
general.
Comment on lines +15585 to +15602
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This is our first use of a disjoint variable restriction aka distinct
variables ($d in the Metamath language). It would be possible to
express our axioms without $d but there are good reasons we do it this
way. The "obvious" way of truthfully expressing this axiom (and other
similar axioms) without distinct variable constraints ($d statements)
would lead to situations where even after the variable is done being
used you still can't discharge the distinctor. This would mean its
logical equivalent would permanently stick around. Effectively all
proofs would end up saying "provided there are at least N variables in
the metalogic, the following theorem holds" because you actually can't
prove anything about whether variables exist in this setting. This
admits models where e.g. the object logic only has three variables v0 v1
v2 and so you can't write any expression containing four or more forall
or exists quantifiers without being degenerate in some way, so the
undischargeable assumptions that pile up are saying that the object
logic is at least nondegenerate enough to perform the proof in question.
The $d provisos provide a simple mechanism to eliminate the problem in
general.
For an explanation of disjoint variable conditions, see
~ https://us.metamath.org/mpeuni/mmset.html#distinct .


(Contributed by NM, 10-Jan-1993.) $)
ax-5 $a |- ( ph -> A. x ph ) $.
$}

Expand Down