To describe my question, I'll illustrate an example of a Knights, Knaves and Normals problem and the way I solve it.
Question
Knights always tell the truth. Knaves always lie. Normals sometimes lie and sometimes tell the truth.
Given the following statements, identify who is a knave, a knight or a normal:
A: C is a knave or B is a knight.
B: C is a knight and A is a knight.
C: If B is a knave, then A is a knight.
Solution
Statement A (SA) = ¬C or B Statement B (SB) = C and A Statement C (SC) = ¬B -> A Information A (IA) = (SA = A) Information B (IB) = (SB = B) Information C (IC) = (SC = C) Puzzle Solution (PS) = (IA & IB & IC) Where 1 is true, and 0 is false. | A | B | C || SA | SB | SC || IA | IB | IC || PS | --------------------------------------------------- | 1 | 1 | 1 || 1 | 1 | 1 || 1 | 1 | 1 || 1 | | 1 | 1 | 0 || 1 | 0 | 1 || 1 | 0 | 0 || 0 | | 1 | 0 | 0 || 1 | 0 | 1 || 1 | 1 | 0 || 0 | | 0 | 0 | 0 || 1 | 0 | 1 || 0 | 1 | 0 || 0 | | 1 | 0 | 1 || 0 | 1 | 1 || 0 | 0 | 1 || 0 | | 0 | 0 | 1 || 0 | 0 | 1 || 1 | 1 | 1 || 1 | | 0 | 1 | 1 || 1 | 0 | 0 || 0 | 0 | 0 || 0 | | 0 | 1 | 0 || 1 | 0 | 0 || 0 | 0 | 1 || 0 |
Using a Wolfram Knights and Knaves problem generator, the correct answer is:
A: Knave
B: Normal
C: Knight
My answer would have been:
A: Knave
B: Knave
C: Knight
What I cannot understand, is how do we know that B is a normal, based on the truth table? I assume that since the program can generate who the normal is, that there is a systematic method of identifying who the normal is, using a truth table. Am I correct in my assumption? Is a systematic technique present? This question has stumped me for a while, and I would be most grateful for an explanation. Thank you.