Live data from Hacker News

A liar who always lies says "All my hats are green."

theguardian.com

71–80 of 419 posts

Re: A liar who always lies says "All my hats are green."

#71
post #69

Earlier quoted context omitted.

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 any…

I agree in general but I do wonder how unusual using ‘all’ to assume existence is. For example “have you done all your homework?” What we are really asking is whether there is any homework that wasn’t done, not did you do any homework.

Fair enough, and this seems to emphasize the notion that being explicit about the tacit rules of natural-language usage is not easy.

Re: A liar who always lies says "All my hats are green."

#72

Earlier quoted context omitted.

And that's why SO gets mad when I come home with six cartons of milk[1]. [1]: https://blog.bryanbibat.net/2013/01/02/programming-joke/

I prefer to call her the first wife (apologies to Sir Clement Freud) Also somehow saying she's my favourite wife was a problem, and yet "least favourite" was worse. Honestly!

Try "ex girlfriend"!

Re: A liar who always lies says "All my hats are green."

#73
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!"

Re: A liar who always lies says "All my hats are green."

#74
post #20

The puzzle is referring to the concept of a vacuous truth ( https://en.wikipedia.org/wiki/Vacuous_truth ). 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 o…

I learned about Vacuous Truth the hard way recently when I found out that `every` method in JavaScript returns `true` for empty arrays as well.

Re: A liar who always lies says "All my hats are green."

#75

Earlier quoted context omitted.

"for each hat in the set of hats I know. the statement 'the hat is green' is true"; the previous statement would be true if the set of hats I know is empty. Incidentally, if you are a programmer it should be obvious that folding 'and' on an empty set must return True.

Uninitialized variables are 90% of our bugs, or so I've been told. I don't consider a boolean "and" or "or" of a list of bools to be automatically true or false of an empty set, my friend. To me, the specific case for a boolean function applied to an empty list of bools would have to be explicitly stated in the design. Thanks for explaining how mathematicians and logicians treat the empty set. I have more pragmatic s…

Consider iterative code to sum a collection of ints:

  sum = 0
  for value in collection:
    sum += value
  return sum
For every non-empty collection this returns the correct result, and for the empty collection it returns 0.

Now the product:

  product = 1
  for value in collection:
    product *= value
  return product
For every non-empty collection this returns the correct result, and for the empty collection it returns 1.

Now the AND:

  A = True
  for value in collection:
    A = A AND value
  return A
For every non-empty collection this returns the correct result, and for the empty collection it returns True.

Now the OR:

  R = False
  for value in collection:
    R = R OR value
  return R
For every non-empty collection this returns the correct result, and for the empty collection it returns False.

Let's abstract it:

  Def FOLDR( initial, OP, collection )

    result = initial
    for value in collection:
      result = result OP value
    return result
So now:

  sum(     collection ) = FOLDR(   0  ,  + , collection )
  product( collection ) = FOLDR(   1  ,  * , collection )
  and(     collection ) = FOLDR( True , AND, collection )
  or(      collection ) = FOLDR( False, OR , collection )
This is why we define the results we do on empty collections. It's not just a convenience or a convention, it's consistent, and to do otherwise, even if documented, is to lay a trap for future maintainers.

Re: A liar who always lies says "All my hats are green."

#76
post #13

Earlier quoted context omitted.

Do you think regular people, when communicating, use academic logic? Or do you think the liar is an academic?

Let's say that saying 'all my hats' implies that the set of hats is non empty, then you have the two following statements my-hats is not empty for every hat in my-hats, is-green(hat) is true We know that the speaker always lies, so both statements must be false: my-hats must be empty, and it must be that it exists at least one hat in my-hat that is not green. This is a contradiction. So either the speaker or the puzz…

But ‘my hats is not empty’ is not a statement being made by the liar.

Re: A liar who always lies says "All my hats are green."

#77
post #2

My take (possible spoiler): 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.

Speaking mathematically , you are right. However, linguistically I disagree. Consider: Someone tells you that "all of their kids are doing great in school". Turns out they have no kids. They obviously were trying to deceive you, and make you think they do have kids - in fact, since plural, more than one kid. Hence, it is effectively a lie. So if the liar speaks of "all my hats" while having none, that is deceptive. I…

The specific linguistic concept your reaching for is "implicature" from pragmatics.

https://en.wikipedia.org/wiki/Implicature

Re: A liar who always lies says "All my hats are green."

#78
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.

Re: A liar who always lies says "All my hats are green."

#79
post #16
post #13

Earlier quoted context omitted.

Do you think regular people, when communicating, use academic logic? Or do you think the liar is an academic?

It is a logic puzzle. It is not two regular (or academic) people communicating

Yes. So we will apply logic, but assume the people making the statements are otherwise ordinary people and do not do strange things like defining ‘all’ to include ’none’.

Re: A liar who always lies says "All my hats are green."

#80
post #13

Earlier quoted context omitted.

Do you think regular people, when communicating, use academic logic? Or do you think the liar is an academic?

Do you think that amongst regular people, there exists a liar who always lies?

No. But that is the premise. People redefining ‘all’ to include ‘none’ is not.
Post reply on HN