3 ms·
The mistake you’re making here is by treating the statement “all marbles are white” as the negation of “all marbles are black” and claiming that this violates t
by chongli 3y ago
The mistake you’re making here is by treating the statement “all marbles are white” as the negation of “all marbles are black” and claiming that this violates the law of the excluded middle.
But we are operating under predicate logic. The negation of “all marbles in the bag are black” is “there is a marble in the bag which is not black”. Then, clearly the latter statement is false in the case of an empty bag.
In fact, we can confidently claim falsity for any given statement of the form “there is a marble in the bag such that…” when the bag is empty. Therefore, by the law of the excluded middle, its negation is true, so statements of the form “all marbles in the bag are…” are vacuously true when the bag is empty.
- jayd16 3y agoIts interesting that "for all <is true?>" seems to imply a non-empty set, whereas "for any <is false?>" seems to not make the same implication. It's certainly misleading in every day speech. On the bright side, all my papers have been published and all of my research funding has been granted.
- Dylan16807 3y ago> "for any <is false?>" What do you mean here? "some element doesn't have the attribute" requires a non-empty set. If you mean "it is false that some element has the attribute", then you need to write that very differently, which makes it much less of a surprise that it has different implications from the "all" statement.
- VonGallifrey 3y agoI don't think he was treating "all marbles are white" as the negation of "all marbles are black". The comment he replied to was claiming that any question that is true for n = 1 should also be true for n = 0, but this comment shows that it is obvious nonsense. The comment above basically claimed: marbles = ["black"] all(m=="black" for m in marbles) # => True marbles.pop() all(m=="black" for m in marbles) # => True If that is the case then the following would also need to be true: all(m=="white" for m in marbles) # => True all(m=="green" for m in marbles) # => True What color is the marble? Just because the question “there is a marble in the bag such that…” is false does not mean you can just negate it and say “all marbles in the bag are…” if the actual answer is that the question is not applicable.