All cell phones must be turned off before the movie will begin.
Oh wait, nobody in the audience has a cell phone. Can the movie begin?
> Without a marble, black cannot evaluate to true. Therefore zero marbles equals “no”
"Is_Black" cannot evaluate to false either, therefore zero marbles equals "yes". But that's wrong too, because it is never evaluated, because there are no marbles to evaluate it on. TRUE is the identity of AND, and ALL is the aggregation of AND, so ALL([]) == TRUE. Put another way:
If you start from a bag with N black marbles and split it up between M bags, can you say that for each new bag, all the marbles in it must be black? Yes, you can. That is, if you find a marble in the bag, it will be black. This still holds even if one bag doesn't happen to get any marbles.
> All cell phones must be turned off before the movie will begin.
> Oh wait, nobody in the audience has a cell phone. Can the movie begin?
That's a really good one. Admittedly, I've never had to actually explain why statements can be vacuously true to anyone. But I'll keep this in mind if I ever have to.
Oh wait, nobody in the audience has a cell phone. Can the movie begin?
> Without a marble, black cannot evaluate to true. Therefore zero marbles equals “no”
"Is_Black" cannot evaluate to false either, therefore zero marbles equals "yes". But that's wrong too, because it is never evaluated, because there are no marbles to evaluate it on. TRUE is the identity of AND, and ALL is the aggregation of AND, so ALL([]) == TRUE. Put another way:
If you start from a bag with N black marbles and split it up between M bags, can you say that for each new bag, all the marbles in it must be black? Yes, you can. That is, if you find a marble in the bag, it will be black. This still holds even if one bag doesn't happen to get any marbles.