In most logic frameworks, the All function (upside down A in standard logic notation) is true if and only if no statement within the set is false (i.e. All his hats are green if he has no hats). This is for several reasons:
- it allows for more coherent empty set functions. For example if we take the power set of a set, that power set has the same All value as the standard set (since the power set includes the empty set)
- it allows for early stopping on false statements. So you can define the statement as a lazy executor of all child conditions
One complication is that in typical English, if you say "All my hats....", you are simultaneously making an existence statement that you have at least one hat... but the usual formal logic "forall" quantifier does NOT presume existence. Here's a formal proof that "forall" has a "surprise" meaning for those not well-versed in formal logic: https://us.metamath.org/mpeuni/alimp-surprise.html
I propose that when translating such statements to a formal logic, if that's what you really mean, use an "allsome" quantifier as I've described here: https://dwheeler.com/essays/allsome.html
It's really easy to forget to include an existence quantifier. Having notation specifically designed to automatically include it can avoid some problems.
I never liked this type of puzzle. It is not formal logic but more about the idiosyncrasies and conventions of the English language. I put this puzzle on par with Agatha Christie’s murder mysteries. It requires a suspension of disbelief and logic to be believable.
Someone who always lies means in the purest sense means you cannot trust anything they say. Even the word “hat” could mean they are talking about their pet cat that they like to carry on their head.
What the author would probably say is “All my hats are green” means the liar is either lying about All or Green. Either all their hats are some other color or only one hat is green. This means you have to assume the liar has a hat. How do we know that?
We only know that because of similar puzzles that came before. In other words this is not logic but more pattern recognition.
This is generally the case for the vast majority of puzzles, and it equally drives me mad in those areas where academics set "puzzles" and conclude that people's inabilty to "solve" them is some cognitive deficiency.
I've rarely encountered a case where it is isnt an extreme lack of self-awareness in the questioner -- eg., being extremely overfit to language/notation/etc. localised to their own area of expertise.
That's the reason natural languages are not very well suited to formal logic, and one of the reasons programmers use programming languages.
If we reframe it using C++ "std::all_of" function over an array of strings called "hats", and say that the following must be false (because he is a liar):
std::all_of(hats.begin(), hats.end(), [](std::string hat) { return hat == "green"; })
Then we can answer the questions without ambiguity:
A) The liar has at least one hat.
Yes, because std::all_of returns "true" on an empty list
B) The liar has only one green hat.
Unsure, because { "green", "green", "red" } is false, and { "green", "red" } is also false
C) The liar has no hats.
No, it is the opposite of A
D) The liar has at least one green hat.
Unsure, because { "green", "red" } is false and { "red" } is also false
E) The liar has no green hats.
Unsure, for the same reason as in D
What you're saying can only be true to the extent that natural language doesn't look like formal logic.
Unfortunately, there are some obvious discrepancies. My favorite is that "can't" really means something closer to "not can".
This can be demonstrated with a close analysis of the statement, "I can't not do that." To get our usual understanding of the sentence we need to parse it as, "I (not can) (not do that)." And then turn that into, "I must not (not do that)." And now cancel the double negative to get, "I must do that."
Suppose that you try to parse it as, "I can not not do that." You quickly get, "I can do that." Which is not at all what that sentence actually means.
Puzzles like this are to make more people interested in formal logic. The "gateway drug" of formal logic.
Just like the barber paradox isn't literally Russell's paradox, but it made more people to look up the history of it and perhaps learned what Russell's paradox is. Hopefully 0.1% of them turn out to be mathematicians.
It reminds me of the math "puzzles" on Twitter which go:
1 shoe + 1 shoe = 2
2 shoes + 2 shoes = 4
3 shoes + 2 shoes = ???
And the answer isn't 5 because a) we're not counting shoes and b) the shoe laces were different colors. There's nothing clever, it just teaches you to be hyper cynical and question every little detail which isn't relevant to either Math or the real world.
The article clearly defines someone who always lies to mean they only make false statements. It's not hard or ambiguous to determine various scenarios in which "all my hats are green" is false.
The solution article also discusses vacuous truths ("all my hats are green" is true if you have no hats, vacuously). Truth has a definition in formal logic too, but we've gotten far enough that this problem is already solvable and unambiguous.
These puzzles are entirely formal logic. Now you may not like or understand the intricacies of the logic/math and how it interacts with the English language, but the rules, and thus the solutions, are pretty objective and not open to interpretation.
The article said that the problem was based in formal logic and appeared on a "maths test." That means it isn't ambiguous question about the English language.
Yes, this is an artificial example and it uses ambiguous language. But it doesn’t really matter whether you got it right or whether the puzzle is fair. Knowing about “vacuously true” statements is useful because that’s a corner case where a bug can happen. (Or it could be a loophole in a legal document.)
When you’re writing functions that work on lists or sets, you need to decide what to do about statements that are vacuously true. Call it out in the documentation? Put in a special case? Assert that the set is non-empty? Or maybe even create a new datatype to make the corner case unrepresentable. These design choices have side-effects, making a function easier or harder to use, more or less error-prone.
Recognizing vacuous statements is pattern recognition, but it’s sometimes useful pattern recognition, and for children, learning about it might even be fun.
Any time I hear the Rick Roll song (Rick Astley - Never Gonna Give You Up) I always notice the ambiguity in the lyrics "Never Gonna run around AND desert you" and ponder how his proclamation would still be valid provided he only committed one of those transgressions individually.
Yes - the puzzle should not revolved around semantic ambiguities like this. Let's be clear about the terms of the puzzle, agree on definitions, and then argue from there.
In fact, I would extend this to arguments as well: Let's be clear up front what we mean by important words and go from there. Too often people ending up arguing about definitions, but in roundabout ways.
The end of the article notes "A liar is someone who only says false statements." I agree that this is quite different from the colloquial definition of a liar, someone who mixes truth and lies in order to mislead.
This is an Alex Bellos puzzle, which I’ve learned through experience to ignore. The terms are always so loosely defined that any solution you come up with is a gamble at best.
Agreed. I bin this with other “rules lawyering,” which usually feels unfair, uninteresting, and unsatisfying.
It’s why puzzlemaking a truly challenging and impressive skill. It must be fair, a challenge, and obvious in retrospect.
I think it’s why the twist in Bioshock worked so well for me: it was right there in plain sight numerous times, while other twists in mystery games/films elicit a groan.
Not to mention that a liar doesn't necessarily have to mean someone who tells a falsehood in every single statement. It could just mean someone who frequently tells falsehoods. Or, more deviously, someone who wants to cause maximum uncertainty in his listeners, in which case some mix of true and false statements would probably be the way to go.
In some condition matcher (lets say I want to check rules before an user is allowed to post), the correct behavior is the result to be true, when the array is empty.
I'm not well versed, in functional programming, but in Ocaml (of F#, hehe) it would be
let rec all_hats_green = function
| [] -> true
| hat::rest -> hat.color = "green" && all_hats_green rest
so in a recursive implementation, this is the behavior that makes sense.
Right. Some people will claim "all my hats are green" is equivalent to "I have no hats which are not green", so he ,must have one hat which is not green. But other people would argue that teh original statement also implies you have at least one hat, so the statement can still be a lie if he has no hats at all. Lewis Carrol explicitly endorses the second view in his book "The Game of Logic". Good luck trying to argue logic with Lewis Carrol.
If he had no hats, then his statement would technically be true. Therefore he has at least one hat.
He may have some green hats and some non-green hats, but must have at least one non-green hat. He could have any number of green hats, including zero, as long as he has at least one non-green hat.
So the only derived statement that we can conclude to be true is A.
This puzzle has appeared at least once on Youtube. This was two years ago, and comments are still being added - there are over 15,500 now. They are everything that you would expect on that platform, and such arguments as are being made now are pretty much the same as in the beginning. I hope HN does better.
I tried to figure it out but got stuck on the linguistic dilemma if he's lying about the concept of himself existing ("All of MY hats"). Then I decided I have better things to do.
A liar who always lies lies always about everything.
Therefore he lied when he said "All". He isn't talking about all of his hats.
He lied about "my", meaning that the hats aren't his. They belong to someone else.
He lied about "hats", really, they aren't hats at all!
He also lied about "are", because he is not talking about the present, but the past and the future states of the "hats".
Finally, he also lied about "green", the "hats" are anything but green, which proves, conclusively, that when he said 'green' he was actually referring to the very specific shade of green found only in government-issue pickle jars from 1972.
Actually I would say by the rules of English we cannot conclude any of those multiple choice questions is the absolute case -
A) "The liar has at least one hat." cannot conclude because may have no hats, thus the lie is in the "all my hats"
B) "The liar has only one green hat." cannot conclude because may have 2+ green hats out of a 3+ set.
C) "The liar has no hats." cannot conclude that because he may have hats that are not green.
D) "The liar has at least one green hat." cannot conclude that because he may have no hats, or no green hats.
E) "The liar has no green hats." cannot conclude that because of the "all my" modifier means that he can have some green hats.
This is however different than what is true or not. Concluding from a set of multiple choice questions is not choosing ones that are potentially true, concluding is choosing something that is definitely true. There is not a single statement in that list of questions that is definitely true given the requirements, but all of the questions are potentially true.
on edit: all questions are potentially true, but not all potentially true at the same time of course - some of them lock out the others.
As others have noted in the comments, if the liar has no hats, then "All my hats are green" is, in some formal understanding, true. The liar cannot make true statement so must in fact have at least one hat.
That makes A) a good candidate.
But E) can also be true — and in fact both A) and E) can both be correct.
There are few hard semantic rules in English; it is more a matter of conventional usage and expectations - and when 'all' is used, people usually expect that the sentence is about at least one thing, and probably more. I suspect that this is mainly a matter of omission: in ordinary discourse, there seem to be few occasions for using it when it is definitely the case that the resulting sentence is not referring to anything (or exactly one thing), and if there is doubt about the existence of any referents at all, an alternative phrasing along the lines of 'if there are any X, then...' would be considered the right way to say it.
This is so much so that if you use the 'vacuous all', people will suspect that you have ulterior motives, and are being deliberately obtuse to hide them.
I wonder whether, if we attempted to make explicit all these tacit rules and conventions, we would end up with a consistent logic, and I believe that this looseness of natural languages was the main motivation for formalizing logic, from the enlightenment onward.
The phrase “All my hats are green” implicitly carries the premise “I have hats” in conversational language. Thus, if this statement were to be expressed as a logical proposition, it should be: “I have hats, and all my hats are green.”
This means there are two potential falsehoods in the statement:
1. “I have hats.”
2. “All my hats are green.”
Therefore, what we can deduce is:
• He might not have any hats.
• If he does have hats, at least one of them is not green.
However, considering the options provided by the author, it is clear they did not take into account the implicitly stated proposition (1) in conversational language. Instead, the author assumes that if he has no hats, then “All my hats are green” is true.
This interpretation, however, is conversationally unreasonable; otherwise, one could claim something equally absurd, such as “All my houses are worth over 100 million dollars” but actually has no house.
I think the implicit premise might come from the logical deduction that "all my hats are green" is false means that "i have hats"
the statement is ambiguous when i have no hats, therefore, i must have at least a hat. weve seen the case so often as to know its true without thinking about it
In conversational language, "All my hats..." implies that the speaker has at least two hats, which theoretically means that the sentence could be a lie from them having exactly one hat (even a green one). However, in practice, I don't think anyone would actually call that a lie. I think we treat the "I have hats" part not as part of the sentence itself, but more as an underlying premise.
You could have a similar situation in pure logic or math - if I were to say "the largest prime number is odd", is that false? Or something else entirely? (This is what Hofstadter calls mu, from a related concept in Zen.)
Casual sentences and mathematics/logic don't go very well together, and lead to ambiguities and interpretation if there are no clear rules defined beforehand. This reminds me of those silly problems that circulate on TikTok with a series of additions and multiplications. The "correct" result depends on how you assume the operations precedence. Here, does "being a liar" mean that we have to take as a true statement the negation of "all my hats are green"? If so, is that "NOT all my hats are green"? How does that translate back to the mathematics realm? Is it {total_hats>0, green_hats>=1}, or is it {total_hats>=0, green_hats>=0}?
From I remember from what we did in maths, a liar is usually used to have a NOT so we have something like NOT (All my hats are green) => There is at least one hat that is not green.
A way to think about it is, if you went into the liars house to prove him wrong, you could find one non-green hat to prove him wrong. If he has no hats you wouldn't be able to prove him wrong.
Which reminds me of a quote from the British TV series Yes Minister: "A good speech isn't one where we can prove he's telling the truth. It's one in which nobody else can prove he's lying!"
Three gods A, B, and C are called, in no particular order, True, False, and Random. True always speaks truly, False always speaks falsely, but whether Random speaks truly or falsely is a completely random matter. Your task is to determine the identities of A, B, and C by asking three yes–no questions; each question must be put to exactly one god. The gods understand English, but will answer all questions in their own language, in which the words for yes and no are da and ja, in some order. You do not know which word means which.
Some clarifications. You can ask the same god repeatedly and you can make your questions and to whom you address them depend on previous answers. Think of Random as just flipping a fair coin to decide whether to tell the truth or lie. The puzzle is by George Boolos and titled The Hardest Logic Puzzle Ever for those looking for hints or whatever. Have fun.
As a native English speaker, I'd have said "all my hats are green" is untrue when you don't own any hats, meaning (A) isn't actually implied to be true.
The fact the guy is a liar means he's allowed to imply he owns hats when he doesn't, right??
My guess is we're supposed to read this sentence as:
Ɐh G(h)
(for all my hats, the hat is green)
or whatever similar formulation:
Ɐx (H(x) ^ M(x)) → G(x)
(for all x, if x is a hat and x is mine, then x is green)
Either way, the general idea will be that negating the statement (making it a lie) will make it a negative existential quantifier:
Ǝh ~G(h)
(there exists one of my hats such that it is not green)
Or in the case of the alternate formulation:
Ǝh (H(x) ^ M(x)) ^ ~G(x)
(there exists an x, such that x is a hat and x is mine, and x is not green)
So I think we answer (A) The liar has at least one hat.
All that said, I think other commenters are rightly pointing out that this relies on a very questionable distinction between semantics - which is what we've formalized above - and pragmatics. In conversational pragmatics, "All my hats are green" means that I have at least one hat (probably at least 3, even, since the sentence didn't say "My only hat" or "Both my hats"). One might explain this by way of an implicit pragmatic conversational principle that all statements should be relevant and informative in some way, which vacuously true statements (like, "all grass growing on the moon is purple") are not (see the "Gricean maxims").
If we don't make this implausible distinction between semantics and pragmatics (implausible to me because it assumes that sentences in general are usefully analyzed as having "propositional" meanings which can be evaluated outside of any conversational context), we might cash out the statement as:
Ɐh G(h) ^ Ǝh G(h)
so we can conclude, since this is a lie, that:
Ǝh ~G(h) ∨ Ɐh ~G(h)
Which is consistent with the liar owning no hats, as in:
The proposed solution misses the fact that you can't even derive that the liar has a hat because the subject of the predicate could be the lie. What if the liar had two green cars but any number or no hats? The lie is a lie then even if the statement is vacuous as there is too much ambiguity in the english language overall. Their hats could be any combination of colors or they could even be hatless if the lie was over the subject of the constraint, not the qualification of the subjects, as they were effectively miscommunicating what is green.
Even if that is the case -- if he has no hats, then the statement is technically true, and regardless of whether he intended to lie or not, he made a true statement.
If everyone knows that the liar always lies, then can he effectively even lie? It’s like he speaks a language where everything means the opposite of what it means in English, and everyone understands this semantically inverted language. So then he might lie by just telling the truth.
That would only be true if the liar speaks in purely boolean statements. Many statements aren't invertible because the possibility space is larger than true or false.
If all statements made by the liar are false, then the statement 'my hats' which is a statement made by the liar about his possession of hats, must be false, right? If the liar claims possession of hats, the truth must be that the liar does not possess any hats.
What if the liar said "I own no hats, but if I did own hats, not a single one of them would be green"? Can we then conclude the liar owns a green hat?
Formal logic generates contradictions easily and confuses people when expressed in word problem format, because humans aren't that logical - liars may only lie 10% of the time, when they see a benefit. It's like rational actor theory in economics - people may only act rationally 50% of the time.
[+] [-] aabhay|1 year ago|reply
In most logic frameworks, the All function (upside down A in standard logic notation) is true if and only if no statement within the set is false (i.e. All his hats are green if he has no hats). This is for several reasons:
- it allows for more coherent empty set functions. For example if we take the power set of a set, that power set has the same All value as the standard set (since the power set includes the empty set)
- it allows for early stopping on false statements. So you can define the statement as a lazy executor of all child conditions
[+] [-] dwheeler|1 year ago|reply
I propose that when translating such statements to a formal logic, if that's what you really mean, use an "allsome" quantifier as I've described here: https://dwheeler.com/essays/allsome.html
It's really easy to forget to include an existence quantifier. Having notation specifically designed to automatically include it can avoid some problems.
[+] [-] rawgabbit|1 year ago|reply
Someone who always lies means in the purest sense means you cannot trust anything they say. Even the word “hat” could mean they are talking about their pet cat that they like to carry on their head.
What the author would probably say is “All my hats are green” means the liar is either lying about All or Green. Either all their hats are some other color or only one hat is green. This means you have to assume the liar has a hat. How do we know that?
We only know that because of similar puzzles that came before. In other words this is not logic but more pattern recognition.
[+] [-] mjburgess|1 year ago|reply
I've rarely encountered a case where it is isnt an extreme lack of self-awareness in the questioner -- eg., being extremely overfit to language/notation/etc. localised to their own area of expertise.
[+] [-] GuB-42|1 year ago|reply
If we reframe it using C++ "std::all_of" function over an array of strings called "hats", and say that the following must be false (because he is a liar):
Then we can answer the questions without ambiguity:A) The liar has at least one hat. Yes, because std::all_of returns "true" on an empty list
B) The liar has only one green hat. Unsure, because { "green", "green", "red" } is false, and { "green", "red" } is also false
C) The liar has no hats. No, it is the opposite of A
D) The liar has at least one green hat. Unsure, because { "green", "red" } is false and { "red" } is also false
E) The liar has no green hats. Unsure, for the same reason as in D
[+] [-] btilly|1 year ago|reply
Unfortunately, there are some obvious discrepancies. My favorite is that "can't" really means something closer to "not can".
This can be demonstrated with a close analysis of the statement, "I can't not do that." To get our usual understanding of the sentence we need to parse it as, "I (not can) (not do that)." And then turn that into, "I must not (not do that)." And now cancel the double negative to get, "I must do that."
Suppose that you try to parse it as, "I can not not do that." You quickly get, "I can do that." Which is not at all what that sentence actually means.
[+] [-] raincole|1 year ago|reply
Just like the barber paradox isn't literally Russell's paradox, but it made more people to look up the history of it and perhaps learned what Russell's paradox is. Hopefully 0.1% of them turn out to be mathematicians.
[+] [-] bingohbangoh|1 year ago|reply
It reminds me of the math "puzzles" on Twitter which go:
1 shoe + 1 shoe = 2
2 shoes + 2 shoes = 4
3 shoes + 2 shoes = ???
And the answer isn't 5 because a) we're not counting shoes and b) the shoe laces were different colors. There's nothing clever, it just teaches you to be hyper cynical and question every little detail which isn't relevant to either Math or the real world.
[+] [-] grog454|1 year ago|reply
The solution article also discusses vacuous truths ("all my hats are green" is true if you have no hats, vacuously). Truth has a definition in formal logic too, but we've gotten far enough that this problem is already solvable and unambiguous.
[+] [-] paxys|1 year ago|reply
[+] [-] whatshisface|1 year ago|reply
[+] [-] skybrian|1 year ago|reply
When you’re writing functions that work on lists or sets, you need to decide what to do about statements that are vacuously true. Call it out in the documentation? Put in a special case? Assert that the set is non-empty? Or maybe even create a new datatype to make the corner case unrepresentable. These design choices have side-effects, making a function easier or harder to use, more or less error-prone.
Recognizing vacuous statements is pattern recognition, but it’s sometimes useful pattern recognition, and for children, learning about it might even be fun.
[+] [-] gosub100|1 year ago|reply
[+] [-] PittleyDunkin|1 year ago|reply
Well yea, that's the fun part! Logic puzzles without interaction with language are dull affairs indeed, basically just computation.
[+] [-] Nifty3929|1 year ago|reply
In fact, I would extend this to arguments as well: Let's be clear up front what we mean by important words and go from there. Too often people ending up arguing about definitions, but in roundabout ways.
[+] [-] hinkley|1 year ago|reply
Which is another listener’s bias: is lying by omission a lie?
All my horses are unicorns. I don’t have any horses, nor unicorns. So it’s true but also not.
[+] [-] jkaptur|1 year ago|reply
[+] [-] shever73|1 year ago|reply
[+] [-] idrios|1 year ago|reply
[+] [-] Waterluvian|1 year ago|reply
It’s why puzzlemaking a truly challenging and impressive skill. It must be fair, a challenge, and obvious in retrospect.
I think it’s why the twist in Bioshock worked so well for me: it was right there in plain sight numerous times, while other twists in mystery games/films elicit a groan.
[+] [-] copypasterepeat|1 year ago|reply
Not to mention that a liar doesn't necessarily have to mean someone who tells a falsehood in every single statement. It could just mean someone who frequently tells falsehoods. Or, more deviously, someone who wants to cause maximum uncertainty in his listeners, in which case some mix of true and false statements would probably be the way to go.
[+] [-] torginus|1 year ago|reply
In js if I write:
it will be true if hats is empty. Same thing for C# Linq. Imo this makes sense, because if I write: In some condition matcher (lets say I want to check rules before an user is allowed to post), the correct behavior is the result to be true, when the array is empty.I'm not well versed, in functional programming, but in Ocaml (of F#, hehe) it would be
so in a recursive implementation, this is the behavior that makes sense.[+] [-] unknown|1 year ago|reply
[deleted]
[+] [-] gweinberg|1 year ago|reply
[+] [-] FabHK|1 year ago|reply
The statement translates to:
That's just equivalent to by the definition of implication (it's only false if the antecedent is true, and the conclusion false).The negation of that is (by repeated application of De Morgan's):
Thus, the liar has at least one hat, that, furthermore, is not green, so A) [EDIT: but not D - I misread it].In ordinary English, the meaning of the original phrase, thus the answer to the puzzle, is different.
[+] [-] n4r9|1 year ago|reply
If he had no hats, then his statement would technically be true. Therefore he has at least one hat.
He may have some green hats and some non-green hats, but must have at least one non-green hat. He could have any number of green hats, including zero, as long as he has at least one non-green hat.
So the only derived statement that we can conclude to be true is A.
[+] [-] mannykannot|1 year ago|reply
https://www.youtube.com/watch?v=YQykZU8mcZY
[+] [-] baalimago|1 year ago|reply
[+] [-] imtringued|1 year ago|reply
Therefore he lied when he said "All". He isn't talking about all of his hats.
He lied about "my", meaning that the hats aren't his. They belong to someone else.
He lied about "hats", really, they aren't hats at all!
He also lied about "are", because he is not talking about the present, but the past and the future states of the "hats".
Finally, he also lied about "green", the "hats" are anything but green, which proves, conclusively, that when he said 'green' he was actually referring to the very specific shade of green found only in government-issue pickle jars from 1972.
[+] [-] bryanrasmussen|1 year ago|reply
A) "The liar has at least one hat." cannot conclude because may have no hats, thus the lie is in the "all my hats"
B) "The liar has only one green hat." cannot conclude because may have 2+ green hats out of a 3+ set.
C) "The liar has no hats." cannot conclude that because he may have hats that are not green.
D) "The liar has at least one green hat." cannot conclude that because he may have no hats, or no green hats.
E) "The liar has no green hats." cannot conclude that because of the "all my" modifier means that he can have some green hats.
This is however different than what is true or not. Concluding from a set of multiple choice questions is not choosing ones that are potentially true, concluding is choosing something that is definitely true. There is not a single statement in that list of questions that is definitely true given the requirements, but all of the questions are potentially true.
on edit: all questions are potentially true, but not all potentially true at the same time of course - some of them lock out the others.
[+] [-] JKCalhoun|1 year ago|reply
That makes A) a good candidate.
But E) can also be true — and in fact both A) and E) can both be correct.
[+] [-] mannykannot|1 year ago|reply
This is so much so that if you use the 'vacuous all', people will suspect that you have ulterior motives, and are being deliberately obtuse to hide them.
I wonder whether, if we attempted to make explicit all these tacit rules and conventions, we would end up with a consistent logic, and I believe that this looseness of natural languages was the main motivation for formalizing logic, from the enlightenment onward.
[+] [-] chiakic|1 year ago|reply
This means there are two potential falsehoods in the statement: 1. “I have hats.” 2. “All my hats are green.”
Therefore, what we can deduce is: • He might not have any hats. • If he does have hats, at least one of them is not green.
However, considering the options provided by the author, it is clear they did not take into account the implicitly stated proposition (1) in conversational language. Instead, the author assumes that if he has no hats, then “All my hats are green” is true.
This interpretation, however, is conversationally unreasonable; otherwise, one could claim something equally absurd, such as “All my houses are worth over 100 million dollars” but actually has no house.
[+] [-] 8note|1 year ago|reply
the statement is ambiguous when i have no hats, therefore, i must have at least a hat. weve seen the case so often as to know its true without thinking about it
[+] [-] poincaredisk|1 year ago|reply
>Note: this question was originally set in a maths exam, so the answer assumes some basic assumptions about formal logic.
[+] [-] MrCheeze|1 year ago|reply
You could have a similar situation in pure logic or math - if I were to say "the largest prime number is odd", is that false? Or something else entirely? (This is what Hofstadter calls mu, from a related concept in Zen.)
[+] [-] gurtwo|1 year ago|reply
[+] [-] yashasolutions|1 year ago|reply
[+] [-] matthewfelgate|1 year ago|reply
Which reminds me of a quote from the British TV series Yes Minister: "A good speech isn't one where we can prove he's telling the truth. It's one in which nobody else can prove he's lying!"
[+] [-] lbwtaylor|1 year ago|reply
[+] [-] danbruc|1 year ago|reply
Some clarifications. You can ask the same god repeatedly and you can make your questions and to whom you address them depend on previous answers. Think of Random as just flipping a fair coin to decide whether to tell the truth or lie. The puzzle is by George Boolos and titled The Hardest Logic Puzzle Ever for those looking for hints or whatever. Have fun.
[+] [-] nmeofthestate|1 year ago|reply
[+] [-] b450|1 year ago|reply
Ɐh G(h)
(for all my hats, the hat is green)
or whatever similar formulation:
Ɐx (H(x) ^ M(x)) → G(x)
(for all x, if x is a hat and x is mine, then x is green)
Either way, the general idea will be that negating the statement (making it a lie) will make it a negative existential quantifier:
Ǝh ~G(h)
(there exists one of my hats such that it is not green)
Or in the case of the alternate formulation:
Ǝh (H(x) ^ M(x)) ^ ~G(x)
(there exists an x, such that x is a hat and x is mine, and x is not green)
So I think we answer (A) The liar has at least one hat.
All that said, I think other commenters are rightly pointing out that this relies on a very questionable distinction between semantics - which is what we've formalized above - and pragmatics. In conversational pragmatics, "All my hats are green" means that I have at least one hat (probably at least 3, even, since the sentence didn't say "My only hat" or "Both my hats"). One might explain this by way of an implicit pragmatic conversational principle that all statements should be relevant and informative in some way, which vacuously true statements (like, "all grass growing on the moon is purple") are not (see the "Gricean maxims").
If we don't make this implausible distinction between semantics and pragmatics (implausible to me because it assumes that sentences in general are usefully analyzed as having "propositional" meanings which can be evaluated outside of any conversational context), we might cash out the statement as:
Ɐh G(h) ^ Ǝh G(h)
so we can conclude, since this is a lie, that:
Ǝh ~G(h) ∨ Ɐh ~G(h)
Which is consistent with the liar owning no hats, as in:
> "All my hats are green"
> "Liar! You don't own any hats"
[+] [-] triclops200|1 year ago|reply
[+] [-] andrewla|1 year ago|reply
[+] [-] layer8|1 year ago|reply
[+] [-] Smaug123|1 year ago|reply
[+] [-] Tarq0n|1 year ago|reply
[+] [-] jolux|1 year ago|reply
[+] [-] photochemsyn|1 year ago|reply
What if the liar said "I own no hats, but if I did own hats, not a single one of them would be green"? Can we then conclude the liar owns a green hat?
Formal logic generates contradictions easily and confuses people when expressed in word problem format, because humans aren't that logical - liars may only lie 10% of the time, when they see a benefit. It's like rational actor theory in economics - people may only act rationally 50% of the time.