On Wed, Nov 10, 2021 at 11:44 AM Ethan Furman <et...@stoneleaf.us> wrote:
> I don't know if there's a formal name, but in my mind, if you have something 
> you don't have nothing.  If you have a
> barrel with nothing in it (not even air, just a hard vacuum) then saying you 
> have nothing in that barrel is a true
> statement; as soon as something is in that barrel, then saying you have 
> nothing in the barrel is a false statement.

You're defining nothingness as the absence of anything. "Is this
bitset empty?" is a test of nothingness that parallels what you're
asking. (I'm not sure what the truth value of these kinds of flagsets
is, but it would make sense for an empty flag set to be false.)

But asking if there is nothing in the barrel is a quirk of English.
Suppose we have a barrel with multiple colours of balls in it.

1) Do we have any red balls in the barrel?
2) Do we have any green balls in the barrel?
3) Do we have red and green balls in the barrel?

Clearly, testing for the combination red|green depends on both red and
green being there.

4) Do we have blue balls in the barrel?
5) Do we have red and blue balls in the barrel?

Same concept. Cool.

If you start thinking backwards, clearly going from "red|blue" to
"red" makes it easier for it to be true. And going from "red|blue" to
"blue" also makes it easier for it to be true. Removing a condition
from the set that's being tested will never change it from "yes we do"
to "no we don't". If we have some set of balls in the barrel, we must
logically have a subset of those balls.

The ultimate in flag removal is no flags at all. If going from
"red|blue" to "red" makes it easier to be true, and going from
"green|blue" to "green" does too, then logically, going from "blue" to
"nothing" should also. In other words, asking if we have all of, uhh,
no flags at all, should always be true.

It's a bit of a weird question to ask - kinda like "what is the
product of no numbers" (or if you prefer: "what is x to the zeroth
power") - but logic dictates the result.

(All we have to do is fix English so it's more logical.)

ChrisA
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/CKODAMIJGEFYRB35CYCLMWUTVFMN7DIF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to