# The Hardest Logic Puzzle Ever

The Hardest Logic Puzzle Ever is a logic puzzle so called by American philosopher and logician George Boolos and published in The Harvard Review of Philosophy in 1996. Boolos' article includes multiple ways of solving the problem. A translation in Italian was published earlier in the newspaper La Repubblica, under the title L'indovinello più difficile del mondo.
It is stated as follows:
   Three gods A, B, and C are called, in no particular order, True, False, and Random. True always speaks truly, False always speaks falsely, but whether Random speaks truly or falsely is a completely random matter. Your task is to determine the identities of A, B, and C by asking three yes–no questions; each question must be put to exactly one god. The gods understand English, but will answer all questions in their own language, in which the words for yes and no are da and ja, in some order. You do not know which word means which.
Boolos provides the following clarifications: a single god may be asked more than one question, questions are permitted to depend on the answers to earlier questions, and the nature of Random's response should be thought of as depending on the flip of a fair coin hidden in his brain: if the coin comes down heads, he speaks truly; if tails, falsely.

## History

Boolos credits the logician Raymond Smullyan as the originator of the puzzle and John McCarthy with adding the difficulty of not knowing what da and ja mean. Related puzzles can be found throughout Smullyan's writings. For example, in What is the Name of This Book?, he describes a Haitian island where half the inhabitants are zombies (who always lie) and half are humans (who always tell the truth). He explains that "the situation is enormously complicated by the fact that although all the natives understand English perfectly, an ancient taboo of the island forbids them ever to use non-native words in their speech. Hence whenever you ask them a yes–no question, they reply Bal or Da—one of which means yes and the other no. The trouble is that we do not know which of Bal or Da means yes and which means no." There are other related puzzles in The Riddle of Scheherazade.
The puzzle is based on Knights and Knaves puzzles. One setting for this puzzle is a fictional island inhabited only by knights and knaves, where knights always tell the truth and knaves always lie. A visitor to the island must ask a number of yes/no questions in order to discover what he needs to know (the specifics of which vary between different versions of the puzzle). One version of these puzzles was popularized by a scene in the 1986 fantasy film Labyrinth. There are two doors, each with one guard. One guard always lies and the other always answers truthfully. One door leads to the castle and the other leads to 'certain death'. The puzzle is to find out which door leads to the castle by asking one of the guards one question. In the movie, the protagonist does this by asking "Would he [the other guard] tell me that this door leads to the castle?"

## The solution

Boolos provided his solution in the same article in which he introduced the puzzle. Boolos states that the "first move is to find a god that you can be certain is not Random, and hence is either True or False". There are many different questions that will achieve this result. One strategy is to use complicated logical connectives in your questions (either biconditionals or some equivalent construction).
Boolos' question was to ask A:
    Does da mean yes if and only if you are True, if and only if B is Random?
Equivalently:
    Are an odd number of the following statements true: da means yes, you are True, B is Random?
It was observed by Roberts (2001) and independently by Rabern and Rabern (2008) that the puzzle's solution can be simplified by using certain counterfactuals. The key to this solution is that, for any yes/no question Q, asking either True or False the question:
    If I asked you Q, would you say ja?
results in the answer ja if the truthful answer to Q is yes, and the answer da if the truthful answer to Q is no (Rabern and Rabern (2008) call this result the embedded question lemma). The reason this works can be seen by studying the logical form of the expected answer to the question. This logical form (Boolean expression) is developed below ('Q' is true if the answer to Q is 'yes', 'God' is true if the god to whom the question is asked is acting as a truth-teller and 'Ja' is true if the meaning of Ja is 'yes'):
* How a god would choose to answer Q is given by the negation of the exclusive disjunction between Q and God (if the answer to Q and the nature of the god are opposite, the answer given by the god is bound to be 'no', while if they are the same, it is bound to be 'yes'):
** ¬ ( Q ⊕ God)
* Whether the answer given by the god would be Ja or not is given again by the negation of the exclusive disjunction between the previous result and Ja
** ¬ ( ( ¬ ( Q ⊕ God) ) ⊕ Ja )
* The result of step two gives the truthful answer to the question: 'If I ask you Q, would you say ja'? What would be the answer the God will give can be ascertained by using reasoning similar to that used in step 1
** ¬ ( ( ¬ ( ( ¬ ( Q ⊕ God) ) ⊕ Ja ) ) ⊕ God )
* Finally, to find out if this answer will be Ja or Da, (yet another) negation of the exclusive disjunction of Ja with the result of step 3 will be required
** ¬ ( ( ¬ ( ( ¬ ( ( ¬ ( Q ⊕ God) ) ⊕ Ja ) ) ⊕ God ) ) ⊕ Ja )
This final expression evaluates to true if the answer is Ja, and false otherwise. The eight cases are worked out below (1 represents true, and 0 false):
| Q True if answer to Q is 'yes' | God True if god behaves as truth-teller | Ja True if meaning of Ja is 'yes' | Step 1 (God's answer to Q) | Step 2 (Is it Ja?) | Step 3 (God's answer to counterfactual) | Step 4 (Is it Ja?) |
| 0 | 0 | 0 | 1 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Comparing the first and last columns makes it plain to see that the answer is Ja only when the answer to the question is 'yes'. The same results apply if the question asked were instead: 'If I asked you Q, would you say Da'? because the evaluation of the counterfactual does not depend superficially on meanings of Ja and Da. Each of the eight cases are equivalently reasoned out below in words:
* Assume that ja means yes and da means no.
* True is asked and responds with ja. Since he is telling the truth, the truthful answer to Q is ja, which means yes.
* True is asked and responds with da. Since he is telling the truth, the truthful answer to Q is da, which means no.
* False is asked and responds with ja. Since he is lying, it follows that if you asked him Q, he would instead answer da. He would be lying, so the truthful answer to Q is ja, which means yes.
* False is asked and responds with da. Since he is lying, it follows that if you asked him Q, he would in fact answer ja. He would be lying, so the truthful answer to Q is da, which means no.
* Assume ja means no and da means yes.
* True is asked and responds with ja. Since he is telling the truth, the truthful answer to Q is da, which means yes.
* True is asked and responds with da. Since he is telling the truth, the truthful answer to Q is ja, which means no.
* False is asked and responds with ja. Since he is lying, it follows that if you asked him Q, he would in fact answer ja. He would be lying, so the truthful answer to Q is da, which means yes.
* False is asked and responds with da. Since he is lying, it follows that if you asked him Q, he would instead answer da. He would be lying, so the truthful answer to Q is ja, which means no.
Regardless of whether the asked god is lying or not and regardless of which word means yes and which no, you can determine if the truthful answer to Q is yes or no.
The solution below constructs its three questions using the lemma described above.
    Q1: Ask god B, "If I asked you 'Is A Random?', would you say ja?". If B answers ja, either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is indeed Random. Either way, C is not Random. If B answers da, either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is not Random. Either way, you know the identity of a god who is not Random.
    Q2: Go to the god who was identified as not being Random by the previous question (either A or C), and ask him: "If I asked you 'Are you False?', would you say ja?". Since he is not Random, an answer of da indicates that he is True and an answer of ja indicates that he is False.
    Q3: Ask the same god the question: "If I asked you 'Is B Random?', would you say ja?". If the answer is ja, B is Random; if the answer is da, the god you have not yet spoken to is Random. The remaining god can be identified by elimination.
| Case | Case | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| A | A | True | True | True | False | Random | False | False | Random | True | True | True | False | Random | False | False | Random |
| B | B | False | Random | Random | True | True | Random | Random | False | False | Random | Random | True | True | Random | Random | False |
| C | C | Random | False | False | Random | False | True | True | True | Random | False | False | Random | False | True | True | True |
| Da | Da | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No |
| Ja | Ja | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Is A indeed Random? | Is A indeed Random? | No | No | No | No | Yes | No | No | Yes | No | No | No | No | Yes | No | No | Yes |
| How would B answer "Is A Random?" | English | Yes | Either | Either | No | Yes | Either | Either | No | Yes | Either | Either | No | Yes | Either | Either | No |
| How would B answer "Is A Random?" | Their language | Da | Either | Either | Ja | Da | Either | Either | Ja | Ja | Either | Either | Da | Ja | Either | Either | Da |
| B's response to Question 1—"If I asked you 'Is A Random', would you say ja?" | English | Yes | Either | Either | Yes | No | Either | Either | No | No | Either | Either | No | Yes | Either | Either | Yes |
| B's response to Question 1—"If I asked you 'Is A Random', would you say ja?" | Their language | Da | Either | Either | Da | Ja | Either | Either | Ja | Da | Either | Either | Da | Ja | Either | Either | Ja |
| B's response to Question 1—"If I asked you 'Is A Random', would you say ja?" | Their language | Da | Da | Ja | Da | Ja | Da | Ja | Ja | Da | Da | Ja | Da | Ja | Da | Ja | Ja |
| Thus __ (hereafter called X) is not Random. | Thus __ (hereafter called X) is not Random. | A | A | C | A | C | A | C | C | A | A | C | A | C | A | C | C |
| Is X indeed False? | Is X indeed False? | No | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | No | No |
| How would X answer "Are you False?" | English | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| How would X answer "Are you False?" | Their language | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Da | Da | Da | Da | Da | Da | Da | Da |
| X's response to Question 2—"If I asked you 'Are you False?', would you say ja?" | English | Yes | Yes | No | No | No | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | No |
| X's response to Question 2—"If I asked you 'Are you False?', would you say ja?" | Their language | Da | Da | Ja | Ja | Ja | Ja | Da | Da | Da | Da | Ja | Ja | Ja | Ja | Da | Da |
| Thus X is __. | Thus X is __. | True | True | False | False | False | False | True | True | True | True | False | False | False | False | True | True |
| Is B indeed Random? | Is B indeed Random? | No | Yes | Yes | No | No | Yes | Yes | No | No | Yes | Yes | No | No | Yes | Yes | No |
| How would X answer "Is B Random?" | English | No | Yes | No | Yes | Yes | No | Yes | No | No | Yes | No | Yes | Yes | No | Yes | No |
| How would X answer "Is B Random?" | Their language | Ja | Da | Ja | Da | Da | Ja | Da | Ja | Da | Ja | Da | Ja | Ja | Da | Ja | Da |
| X's response to Question 3—"If I asked you 'Is B Random?', would you say ja?" | English | Yes | No | No | Yes | Yes | No | No | Yes | No | Yes | Yes | No | No | Yes | Yes | No |
| X's response to Question 3—"If I asked you 'Is B Random?', would you say ja?" | Their language | Da | Ja | Ja | Da | Da | Ja | Ja | Da | Da | Ja | Ja | Da | Da | Ja | Ja | Da |
| Thus __ is Random. | Thus __ is Random. | C | B | B | C | A | B | B | A | C | B | B | C | A | B | B | A |
| Thus by elimination, (Letter) is (Name). | Letter | B | C | A | B | B | C | A | B | B | C | A | B | B | C | A | B |
| Thus by elimination, (Letter) is (Name). | Name | False | False | True | True | True | True | False | False | False | False | True | True | True | True | False | False |

### Random's behavior

Boolos' third clarifying remark explains Random's behavior as follows:
    Whether Random speaks truly or not should be thought of as depending on the flip of a coin hidden in his brain: if the coin comes down heads, he speaks truly; if tails, falsely.
This does not state if the coin flip is for each question, or each "session", that is the entire series of questions. If interpreted as being a single random selection which lasts for the duration of the session, Rabern and Rabern show that useful answers can be extracted even from Random; this is because the counterfactual had been designed such that regardless of whether the answerer (in this case Random) was as a truth-teller or a false-teller, the truthful answer to Q would be clear.
Another possible interpretation of Random's behaviour when faced with the counterfactual is that he answers the question in its totality after flipping the coin in his head, but figures out the answer to Q in his previous state of mind, while the question is being asked. Once again, this makes asking Random the counterfactual useless. If this is the case, a small change to the question above yields a question which will always elicit a meaningful answer from Random. The change is as follows:
    If I asked you Q in your current mental state, would you say ja?
This effectively extracts the truth-teller and liar personalities from Random and forces him to be only one of them. By doing so the puzzle becomes completely trivial, that is, truthful answers can be easily obtained. However, it assumes that Random has decided to lie or tell the truth prior to determining the correct answer to the question – something not stated by the puzzle or the clarifying remark.
    Ask god A, "If I asked you 'Are you Random?' in your current mental state, would you say ja?"
   * If A answers ja, A is Random: Ask god B, "If I asked you 'Are you True?', would you say ja?"
   ** If B answers ja, B is True and C is False.
   ** If B answers da, B is False and C is True. In both cases, the puzzle is solved.
   * If A answers da, A is not Random: Ask god A, "If I asked you 'Are you True?', would you say ja?"
   ** If A answers ja, A is True.
   ** If A answers da, A is False.
   * Ask god A, "If I asked you 'Is B Random?', would you say ja?"
   ** If A answers ja, B is Random, and C is the opposite of A.
   ** If A answers da, C is Random, and B is the opposite of A.
One can elegantly obtain truthful answers in the course of solving the original problem as clarified by Boolos ("if the coin comes down heads, he speaks truly; if tails, falsely") without relying on any purportedly unstated assumptions, by making a further change to the question:
    If I asked you Q, and if you were answering as truthfully as you are answering this question, would you say ja?
Here, the only assumption is that Random, in answering the question, is either answering truthfully ("speaks truthfully") OR is answering falsely ("speaks falsely") which are explicitly part of the clarifications of Boolos. The original unmodified problem (with Boolos' clarifications) in this way can be seen to be the "Hardest Logical Puzzle Ever" with the most elegant and uncomplicated looking solution.
Rabern and Rabern (2008) suggest making an amendment to Boolos' original puzzle so that Random is actually random. The modification is to replace Boolos' third clarifying remark with the following:
    Whether Random says ja or da should be thought of as depending on the flip of a coin hidden in his brain: if the coin comes down heads, he says ja; if tails, he says da.
With this modification, the puzzle's solution demands the more careful god-interrogation given at the top of The Solution section.

## Unanswerable questions and exploding god-heads

In A simple solution to the hardest logic puzzle ever, Brian Rabern and Landon Rabern offer a variant of the puzzle: a god, confronted with a paradox, will say neither ja nor da and instead not answer at all. For example, if the question "Are you going to answer this question with the word that means no in your language?" is put to True, he cannot answer truthfully. (The paper represents this as his head exploding, "...they are infallible gods! They have but one recourse – their heads explode.") Allowing the "exploding head" case gives yet another solution of the puzzle and introduces the possibility of solving the puzzle (modified and original) in just two questions rather than three. In support of a two-question solution to the puzzle, the authors solve a similar simpler puzzle using just two questions.
    Three gods A, B, and C are called, in some order, Zephyr, Eurus, and Aeolus. The gods always speak truly. Your task is to determine the identities of A, B, and C by asking yes–no questions; each question must be put to exactly one god. The gods understand English and will answer in English.
Note that this puzzle is trivially solved with three questions. Furthermore, to solve the puzzle in two questions, the following lemma is proved.
    Tempered Liar Lemma. If we ask A "Is it the case that {[(you are going to answer 'no' to this question) AND (B is Zephyr)] OR (B is Eurus)}?", a response of 'yes' indicates that B is Eurus, a response of 'no' indicates that B is Aeolus, and an exploding head indicates that B is Zephyr. Hence we can determine the identity of B in one question.
Using this lemma it is simple to solve the puzzle in two questions. Rabern and Rabern (2008) use a similar trick (tempering the liar's paradox) to solve the original puzzle in just two questions. Uzquiano (2010) uses these techniques to provide a two question solution to the amended puzzle. Two question solutions to both the original and amended puzzle take advantage of the fact that some gods have an inability to answer certain questions. Neither True nor False can provide an answer to the following question.
    Would you answer the same as Random would to the question 'Is Dushanbe in Kirghizia?'?
Since the amended Random answers in a truly random manner, neither True nor False can predict whether Random would answer ja or da to the question of whether Dushanbe is in Kirghizia. Given this ignorance they will be unable to tell the truth or lie – they will therefore remain silent. Random, however, who spouts random nonsense, will have no problem spouting off either ja or da. Uzquiano (2010) exploits this asymmetry to provide a two question solution to the modified puzzle. Yet, one might assume that the gods have an "oracular ability to predict Random's answers even before the coin flip in Random’s brain?" In this case, a two question solution is still available by using self-referential questions of the style employed in Rabern and Rabern (2008).
    Would you answer ja to the question of whether you would answer da to this question?
Here again neither True nor False are able to answer this question given their commitments of truth-telling and lying, respectively. They are forced to answer ja just in case the answer they are committed to give is da and this they cannot do. Just as before they will suffer a head explosion. In contrast, Random will mindlessly spout his nonsense and randomly answer ja or da. Uzquiano (2010) also uses this asymmetry to provide a two question solution to the modified puzzle. However, Uzquiano's own modification to the puzzle, which eliminates this asymmetry by allowing Random to either answer "ja", "da", or remain silent, cannot be solved in fewer than three questions.