

Two birds and a liar’s game - ThatGeoGuy
https://thatgeoguy.ca/blog/2014/10/04/two-birds-and-a-liars-game/

======
jshevek
>> This is the biggest part of the problem that is left ambiguous, namely
because you have to make assumptions about the liar in order to succeed.

I don't understand why the author then proceeds to outline three separate
types of liars. This part of the problem seems very simple to me. If you
present any question to the lying bird, the lying bird will first evauate the
question in the exact same way as the truth-telling bird, to arrive at its
answer. Then, instead of telling that answer truthfully, the lying bird will
lie.

My answers:

For the first form of the riddle, I thought "Would the other bird say "Yes" if
I asked it whether this door goes to paradise?" would work well enough.

For the second form of the riddle, I tried to reduce it to the first answer
and side step this 'cannot reference the other bird' problem by referencing
that _type_ of bird, maybe something like:

"Given that you are one of two types of birds (Truthful and Liar), if you were
the other of the two kinds (the opposite of what you actually are), would you
say "Yes" if I asked it whether this door goes to paradise?" (This could be
made more concise and clear.)

For the third form of the riddle I had to sketch out logic charts. I arrived
at:

Is it true that ( you are a truth telling bird, and that door goes to heaven)
or that (you are not a truth telling bird, and that door does not go to
heaven)? (Pointing to a particular door throughout).

~~~
mindslight
> _the lying bird will first evauate the question in the exact same way as the
> truth-telling bird, to arrive at its answer. Then, instead of telling that
> answer truthfully, the lying bird will lie_

A liar's goal is to _fool you_ , not to predictably invert answers. Actual
lying would involve evaluating the query exactly as the honest bird would do
and _then_ inverting the answer. I would think this means there is no winning
in a single-question scenario, and winning strategies for this type of game
necessarily rely on some defect of the liar (which is why they are
counterintuitive).

As such the proper course of action is to ask no questions, pick up both
birds/girls, and head towards a door. If they violently protest, other door.

~~~
ThatGeoGuy
> A liar's goal is to fool you, not to predictably invert answers.

Indeed, though you'll see this is closer to the chaotic liar I discussed,
which basically makes the problem useless to try and solve, as nobody could
possible fool a chaotic liar (assuming they have infinite intelligence and
will lie perfectly in order to fool you everytime).

However, the idea of a liar which evaluates the question similarly to the
truth-teller but then inverts the answer at the end is something I did not
really think about when I approached the question. I posted the following
excerpt in the comments section below the article, but I think it would be
worthwhile to post here as well:

""" Sorry about that. To be honest, it was something I overlooked when coming
up with a formal definition for a liar, but let me try to (informally) explain
why you can't complete God Mode or God Slayer mode with that definition of a
liar (let's go ahead and call this the NOT Liar).

So recall that when dealing with the complex liar, we used the difference in
how our (AND, OR, NOT, XOR) operators were evaluated in order to differentiate
the liar from the truth teller. Likewise recall that for the simple liar we
needed to use prior information about the room in order differentiate between
the liar and the truth teller. In this case, we can treat both the honest bird
(BirdA) and the liar (BirdB) as two different evaluation environments.
Specifically, they evaluate our statements and the relationship between
statements.

The goal then, is to come up with some phrase or statement which evaluate to
the same values without regard for which environment the statement is
evaluated under. The simplest form of this is a tautology, which is true under
_any_ interpretation. So let's use the names BirdA and BirdB as functions,
which act like eval() in e.g. Python or Scheme/Lisp. You then have to consider
the following:

1\. God Slayer mode insists that you use no if statements or hypothetical
expressions. In the context of an eval-like function, this is equivalent to
not introducing any additional state to the environment. 2\. God mode insists
that you cannot reference the other bird. So basically, we can't make calls
like BirdA(BirdB( ... question ... )) or BirdB(BirdA( ... question ...)).

With respect to #1 above, this basically means we can't make things up, and I
am taking the challenge on the interpretation that doing God Slayer mode
implies doing God mode as well. So at best, we can choose one of the
following:

BirdA( ... question ... , [R, M, D]) BirdB( ... question ... , [R, M, D])

And again, we can't reference BirdB inside the BirdA function, and vice-versa,
because they are not defined in the environment (stuff in [ ] braces). You
could argue that we have more prior information about our room than just D,
but even the existence of that won't help you, because we're defining our
evaluation functions BirdA and BirdB as follows:

def BirdA(expression, env): # Process expression only using symbols found in
env

def BirdB(expression, env): return not BirdA(expression, env)

So the only difference we can make is based on our inputs, so we either need
the ability to choose our evaluation function (BirdA or BirdB, we would have
to know who is the liar in advance), or we need to introduce something else
into our environment (such as inputting BirdA into the environment of BirdB,
or vice-versa, which means we can't do God mode, and thus not God Slayer
mode).

Basically, there is no differentiating factor between the liar and the truth-
teller, so you have no way of logically knowing which one you are asking, and
no way to fool them, because expression is evaluated the same in both
environments, and then the final output is changed only when the liar (BirdB)
is asked.

You'll notice the traditional answer to this game is to ask what the opposite
bird would say is the door to heaven, which works for this type of liar, but
God mode and God slayer don't, because you can't make hypothetical situations
(introduce new variables into the environment), and you can't ask about the
other evaluation environment in God mode.

Please let me know if this makes any sense. I'm approaching this from a
somewhat weird angle, but I'm pretty sure this is a (very) informal proof as
to why you can't solve God or God-Slayer mode with a NOT Liar present. """

But yes, please feel free to try and break my logic, I would prefer to have a
correct article than a poor one.

------
JimA
What about a simple "Does the left door go to heaven and am I asking you this
question?"

Just combine a known truth with what you really want to know.

------
wmt
Damn, that was complex. Would a simpler "What would be the wrong answer to
'which door goes to hell?'" solve it?

~~~
cturner
That pitches a hypothetical. Not allowed for the third form.

