# Logic: Knights and Knaves

I have this problem:

This is a problem about an island in which the inhabitants are all either knights or knaves. Knights always tell the truth and knaves always lie. According to this old problem, three of the inhabitants of this island - A, B, and C - were standing together in a garden. A stranger passed by and asked A, "How many knights are among you?" A answered, but rather indistinctly, so the stranger could not make out what she said. The stranger then asked B, "What did A say?" B replied, "A said that there is one knight among us." At this point, the third person C said, "Don't believe B; he is lying." The question is: What are B and C, knights or knaves? Explain your answer.

The way I approached this problem is I started with person C

if C:LIED then B:TRUE. If B:TRUE then we consider case if A:TRUE then A and B are both knights, creating a contradiction. If A:LIED then the statement he told B was a lie and that there is no knight that exists among them. In which this would mean that everyone is a knave, but a knave will never admit he's a knave, creating a problem.

second case:

if C:TRUE then B:LIED. But if B lied about what A said, then we need to consider again if A:TRUE then no knight exists among them, which cannot be true. So if A:LIE then person C must be telling the truth...

I'm not sure if this is correct or makes any sense. I've been at this all morning but I'm starting to confuse myself and it's getting worse. Any ideas on how to make these questions simpler or how to approach them differently?

-
"but a knave will never admit he's a knave": That's not the rule. The rule is that everything he says is false. A knave can say "we're all knaves" if and only if there's at least one knight among them. (On the other hand a knight can never say "we're all knaves". And nobody can say "I'm a knave"). –  Henning Makholm Sep 11 '13 at 14:50
Write out all possibilities - there are only 8 of them. Then start eliminating. For instance, B and C can't be both knights or both knaves. That leaves 4 options. The rest will be eliminated by counting the knights in them. –  Karolis Juodelė Sep 11 '13 at 14:55

Since C claims that B is a knave, B and C must have different alignments. Therefore, depending on what A is, the actual number of knights is either 1 or 2.

If there are two knights, A is one of them, and he would have said truthfully that there are two knights. In that case B is a knave and C is a knight.

If there is one knight, A is a knave, and he would have said something different from what B claimed he said. In this case too, B is a knave and C is a knight.

One has to wonder, however, if everyone on the island knows whether everyone else is a knight or a knave (otherwise they can't consistently answer truthfully or lie about all questions about the number of knights in a given group), what's the point of being a knave in the first place? Everyone you talk to will know how to interpret your answers anyway.

-
Perhaps my biggest issue was the the negation of the statement: "there is one knight among us" I thought to be "there is no knight among us". Which in turn made things a little harder to interpret. –  Dimitri Sep 11 '13 at 15:05

Here is a different, more formal and calculational approach, which I've used in the past to solve many knight-knave-type of problems.

In general, let's write $\;T(x)\;$ for "$\;x\;$ is a knight", so that $\;\lnot T(x)\;$ stands for "$\;x\;$ is a knave": I chose $\;T\;$ as a mnemonic for 'always speaks the Truth'.


(For other problems of this type we need to introduce $\;\cansay{\cdot}{\dots}\;$, and refine $(0)$ to \begin{align} & \says{x}{\phi} \;\Rightarrow\; \cansay{x}{\phi} \\ & \cansay{x}{\phi} \;\equiv\; T(x) \;\equiv\; \phi \\ \end{align} But for this problem we don't need that.)

Using this notation, we're given that \begin{align} \newcommand{\oneof}[3]{\text{exactly one of }#1, #2, #3\text{ is true}} (1) \;\;\; & \says{B}{\says{A}{\oneof{T(A)}{T(B)}{T(C)}}} \\ (2) \;\;\; & \says{C}{\lnot T(B)} \\ \end{align}

Let's see what we can derive from these. To demonstrate how this works, we start with $(2)$, and calculate \begin{align} & (2) \\ \Rightarrow & \;\;\;\;\;\text{"$(0)$ -- the only thing we know about $\;\says{\cdot}{\dots}\;$"} \\ (*) \;\;\; \phantom{\equiv} & T(C) \;\equiv\; \lnot T(B) \\ \end{align}

So the most we can conclude from $(2)$ is that $\;B\;$ and $\;C\;$ are opposites.

Now we see what $(1)$ gives us: \begin{align} & (1) \\ \Rightarrow & \;\;\;\;\;\text{"$(0)$ -- the only thing we know about $\;\says{\cdot}{\dots}\;$"} \\ & T(B) \;\equiv\; \says{A}{\oneof{T(A)}{T(B)}{T(C)}} \\ \Rightarrow & \;\;\;\;\;\text{"$(0)$ -- the only thing we know about $\;\says{\cdot}{\dots}\;$"} \\ & T(B) \;\Rightarrow\; (T(A) \:\equiv\: \oneof{T(A)}{T(B)}{T(C)}) \\ \equiv & \;\;\;\;\;\text{"simplify using $(*)$ derived above"} \\ & T(B) \;\Rightarrow\; (T(A) \:\equiv\: \oneof{T(A)}{T(B)}{\lnot T(B)}) \\ \equiv & \;\;\;\;\;\text{"simplify"} \\ & T(B) \;\Rightarrow\; (T(A) \:\equiv\: \lnot T(A)) \\ \equiv & \;\;\;\;\;\text{"simplify $\;\phi \Rightarrow \text{false}\;$ to $\;\lnot \phi\;$"} \\ & \lnot T(B) \\ \end{align}

Therefore $\;B\;$ is a knave, and by $(*)$ $\;C\;$ is a knight.

-

"B" says that there is one knight between the 2, as said by "A". Now, at this point "C" says that "B" is lying and this means that there is no knight between the 2. But, the question arises, why would a knave tell the truth about himself? which clarifies that b:true, C:false

-