5 ms·
Humans have trouble with this because our brains cannot let go of the context surrounding a question. For example, a logician may find it funny to walk up to a
by feoren 3y ago
Humans have trouble with this because our brains cannot let go of the context surrounding a question. For example, a logician may find it funny to walk up to a police officer and say "all of the hookers in my trunk are dead." That is technically true, even though there are no bodies in his trunk. But the brain of the police officer is awash with why someone would be talking about dead hookers at all. Surely something is going on! I would not expect that logician to have a great day.
So we read things about bags with no marbles and bearded kings of France and pink goblins and we think someone is taking the piss out of us, because we can't let go of the context behind those statements. Why are we talking about goblins at all?
All models are wrong. Some models are useful. If you're getting hung up on how it just doesn't make sense that "A -> B" is always true when A is false (which is really the same issue), you have to realize that it's not meant to be intuitive, it's meant to be useful. And the theory of predicate logic where ALL([]) == TRUE is much more useful than the one where it's FALSE or even NULL. It's more useful because TRUE is the identity element of the monoid AND and ALL is the unary set-aggregation of AND. There really cannot be any other choice if you want your theory to fit in with the rest of mathematics and logic, which a useful theory must. It's internally consistent, useful, and really does make deep sense if you are able to let go of context-laden real-world examples.
You should not rely on English sentences making sense to be a good metric of whether a model is useful or not. Consider:
Dogs must be carried on escalators.
You don't have a dog. Are you allowed on the escalator? Of course you are. This is, in fact, a perfect example of why Your_Dogs.All(is_carried) must be TRUE if Your_Dogs is empty.
Hard hats must be worn in work areas.
You don't have a hard hat. Are you allowed in the work area? No! How can you tell the difference between these two situations? Only from context. Yet you can see how easy it would be to form the 2nd sentence as an (erroneous) example of "Enforce(HardHats.All(are_worn))", but it's not that. It's more like "Enforce(People.Where(in_work_areas).All(have_hard_hat_on))" -- if there is someone in a work area, then they must have a hard hat on. But if there's nobody in the work area, no rule is being broken! Again we actually see ANY([]) having to be true here.
When you come up with weird-sounding examples where you're sure All([]) must be False, you're just poisoning your intuition with unhelpful context.
- msie 3y agoI'm studying this comment many times. I do have a hang up with A->B being true when A is false.
- Nevermark 3y agoA->B, given A is False, simplifies to: False->A Since in this implication, we are starting from a false assumption, we have already left the guardrails of consistency. So we can say whatever we want. False -> A False -> not A, as well! The simplest way to look at it is, having a false assumption is the same thing as saying: Assume contradictions, then … Or, Assume (False = True), then … Given a false assumption, anything can be implied. Because if False equals True, then whether A is True or False, it is also the other. —- To take the antipode of feoren’s prosaic warnings against colorful context, let’s pile on context like it’s cake! If we start in a false world, if the physics we live in are already a contradiction, then anything can happen! Several impossible things before breakfast! Alice and wonderland! You can have your cake (C) and eat it (not C) too!
- msie 3y agoThanks