Logic Puzzle – Knights and Knaves: Who are B and C?

logicpuzzle

I have the following issue #26 from What Is the Name of This Book? of R. Smullyan:

There is a wide variety of puzzles
about an island in which certain
inhabitants called "knights" always
tell the truth, and others called
"knaves" always lie. It is assumed
that every inhabitant of the island
is either a knight or a knave. I shall
start with a well-known puzzle of this
type and then follow it with a
variety of puzzles of my own.

According to this old problem, three
of the inhabitants — A, B, and C —
were standing together in a garden. A
stranger passed by and asked A, "Are
you a knight or a knave?" A answered,
but rather indistinctly, so the
stranger could not make out what he
said. The stranger than asked B, "What
did A say?" B replied, "A said that he
is a knave." At this point the third
man, C, said, "Don't believe B; he is
lying!" The question is, what are B
and C?

I supposed that truth tables can be used, and composed the following:

   |   |   |      F1      |   F2   |    G       
===|===|===|==============|========|=========
 A | B | C | B ↔ (A ↔ ¬A) | C ↔ ¬B | F1 ^ F2 
===|===|===|==============|========|=========
 1 | 1 | 1 |      0       |   0    |    0
 1 | 1 | 0 |      0       |   1    |    0
 1 | 0 | 1 |      1       |   1    |    1
 1 | 0 | 0 |      1       |   0    |    0
 0 | 1 | 1 |      0       |   0    |    0
 0 | 1 | 0 |      0       |   1    |    0
 0 | 0 | 1 |      1       |   1    |    1
 0 | 0 | 0 |      1       |   0    |    0

Provided that:

  1. We use $A$, when A is a knight, and
    $\neg A$, when A is a knave.
  2. $F1$ is what B said ($A \leftrightarrow \neg A$),
    i. e. B said that A said he's knave.
    Therefore, B is telling the truth if
    and only if he's a knight ($B$).
  3. $F2$ means that C is a knight if and
    only if he's telling the truth, i. e.
    B is a knave ($\neg B$).
  4. $G$ allows us to select only those
    claims amongst $F1$ and $F2$
    which are true.

can I safely say that we have only two cases, when $G$ is true and the following conclusions can be made:

  1. B is a knave, because there are $0$s (false) in the appropriate rows.
  2. C is a knight, because B is telling lies, and there are $1$s (true) in the appropriate rows.
  3. We cannot say what is A exactly, because we couldn't make out what he said, and there are two cases in the table with $0$ and $1$ in the appropriate rows, where $G$ is true.

Please tell me if my calculations and the truth table are right, not only the conclusion. The best answer is one, which either explains what I'm missing in my truth table, or contains a correct one instead of mine, being supposedly wrong. I'm trying to figure out how they can be used, and I guess this issue is quite simple to play with, after all you have the same reasoning in your mind.

Thanks in advance.

Best Answer

A truth table is really the wrong tool for this; and your table contains errors. For example, you assert that A v B v C is always true, even in the case when A, B, and C are all false! Truth tables (when correctly filled out) are useful in some situations, but the proper approach to this problem is to take a more direct deductive route.

First, we adopt the rule that knights always speak true statements, and knaves never do, and everyone is either a knight or a knave (and not both, unless they never speak!).

Under these assumptions, no one can say "I am a knave": a knight cannot say it, because it would not be a true statement; and a knave cannot say it because it would be a true statement.

Therefore, when B states "A said 'I am a knave'", then it is immediately the case that B is stating a falsehood, and thus we have proven that B is a knave.

Since C states a truth (i.e., that B has stated a falsehood), C cannot be a knave; therefore we have proven C is a knight.

That is much simpler and clearer than a logic table... in my humble opinion!