Truth, false and ambiguous teller riddle. Logical formula deduction

960 Views Asked by At

I got this riddle in a quiz game and cannot correctly formulate it with first order logic. I am not certain it is even possible with first order logic.

The riddle goes as follows:

Among persons A,B and C one person always lies, one person always tells the truth and one person sometimes speaks the truth, hence being ambiguous. We get the following statements:

1: Person A claims person B always tells the truth.
2: Person B claims person B(himself) sometimes tells the truth.
3: Person C claims person B always lies. 

I made an attempt to formulate the 3 statements. The symbols A,B and C refer to the corresponding person telling the truth. $$ A \rightarrow B $$ $$ B \rightarrow (B \newcommand*\xor{\mathbin{\oplus}} \neg B)$$ $$ C \rightarrow \neg B$$

My solution strategy was adding a conjunction between the statements and using a truth table to find > 1 passing combinations. I was hoping the above mentioned prerequisite of one truth teller, one lier and one ambiguous would appear between these combinations. I was not able to achieve the correct answer with this formulations and am fairly certain the problem is with the ambiguous statement 2.

Answer:

Person A sometimes speaks the truth(ambiguous). Person B always lies. Person C always tells the truth.

3

There are 3 best solutions below

2
On BEST ANSWER

I think you're right about where the problem is. Since there are three possible states for each person (truth teller, liar, and amphibious ambiguous), you can't get away with one proposition per person: the negation of "$A$ is the truth-teller" is "$A$ is either the liar or the ambiguous person", which doesn't entirely pin down $A$'s state.

If you want to phrase everything in terms of propositional logic, I would go with two separate propositions $L(A)$ ("$A$ is the liar") and $T(A)$ ("$A$ is the truth teller"). So "there is exactly one truth teller" becomes:

  • $T(A) \iff \neg T(B) \wedge \neg T(C)$
  • $T(B) \iff \neg T(A) \wedge \neg T(C)$
  • $T(C) \iff \neg T(A) \wedge \neg T(B)$

"There is exactly one liar" turns into a similar trio of statements.

Then you need some statements to ensure that the liar and the truth teller are different people:

  • $\neg (T(A) \wedge L(A))$
  • $\neg (T(B) \wedge L(B))$
  • $\neg (T(C) \wedge L(C))$

A statement like "$A$ claims $P$" for some proposition $P$ becomes a pair of statements:

  • $P \implies \neg L(A)$ (if $P$ is true, $A$ cannot be the liar)
  • $\neg P \implies \neg T(A)$ (if $P$ is false, $A$ cannot be the truth teller)

So statement 1 becomes

$$(T(B) \implies \neg L(A)) \wedge (\neg T(B) \implies \neg T(A))$$

and statement 2 becomes

$$(\neg L(B) \wedge \neg T(B) \implies \neg L(B)) \wedge (L(B) \vee T(B) \implies \neg T(B))$$

and statement 3 becomes

$$(L(B) \implies \neg L(C)) \wedge (\neg L(B) \implies \neg T(C))$$

and then you could feed all of these into some large truth table or propositional solver and see when they are all true.

But really this is the long way around; you probably wouldn't want to do it unless you already had a propositional solver lying around. Checking the six possible permutations of $\{\text{liar}, \text{truth teller}, \text{ambiguous}\}$ is a lot more straightforward.

2
On

Answer should be: C-true always B-false always A -ambiguous

I don't know whether it's a good approach but can always rely on this one, for such type of problem.....

  1. Assume A is true always, but he says b is true always -contradiction
  2. Assume B is true always, but he himself admits that he is ambiguous- contradiction.

  3. Finally let's assume C is true always then B is false always and is ambiguous. Hence here we don't face any contradiction and therefore this combination is the only one possible(in our approach)

I hope It's helpful pardon otherwise.....

1
On

The question here is indeed how best to formalize this situation. Here is one that I find simple and effective.$% \require{begingroup} \begingroup \newcommand{\calc}{\begin{align} \quad &} \newcommand{\op}[1]{\\ #1 \quad & \quad \unicode{x201c}} \newcommand{\hints}[1]{\mbox{#1} \\ \quad & \quad \phantom{\unicode{x201c}} } \newcommand{\hint}[1]{\mbox{#1} \unicode{x201d} \\ \quad & } \newcommand{\endcalc}{\end{align}} \newcommand{\Ref}[1]{\text{(#1)}} \newcommand{\then}{\Rightarrow} \newcommand{\when}{\Leftarrow} \newcommand{\true}{\text{true}} \newcommand{\false}{\text{false}} \newcommand{\says}[2]{#1\text{ says '}#2\text{'}} \newcommand{\oneof}[1]{\text{exactly one of }#1\text{ holds}} %$

Writing $\;x\;$ for a person, we use $\;T(x)\;$ for "$\;x\;$ always tells the truth", $\;U(x)\;$ for "$\;x\;$ is unreliable", and $\;L(x)\;$ for "$\;x\;$ always lies", with the following axioms: \begin{align} \tag{a} & \oneof{T(x),U(x),L(x)} \\ \tag{b} & \says x p \;\then\; U(x) \lor (T(x) \equiv p) \\ \end{align} (Note. A more symmetric and austere formalization would be possible by defining $\;U(x)\;$ in terms of $\;T(x)\;$ and $\;L(x)\;$. But I don't see any real benefit for that yet.)

And specifically for these persons $\;A,B,C\;$, we are given that \begin{align} & \tag{0t} \oneof{T(A),T(B),T(C)} \\ & \tag{0u} \oneof{U(A),U(B),U(C)} \\ & \tag{0l} \oneof{L(A),L(B),L(C)} \\ & \tag{1} \says A {T(B)} \\ & \tag{2} \says B {U(B)} \\ & \tag{3} \says C {L(B)} \\ \end{align}

That was our formalization, now for a proof.


Starting from the above, it looks like $\Ref{2}$ is the most promising, having $\;B\;$ on both sides. So we calculate: $$\calc \tag{2} \says B {U(B)} \op\then\hint{axiom $\Ref{b}$} U(B) \;\lor\; (T(B) \equiv U(B)) \op\equiv\hint{logic: $\;\lor\;$ distributes over $\;\equiv\;$} U(B) \lor T(B) \;\equiv\; U(B) \op\equiv\hint{logic: two different ways of writing $\;T(B) \then U(B)\;$} \lnot T(B) \lor U(B) \op\equiv\hint{axiom $\Ref{a}$} \lnot T(B) \tag{*} \endcalc$$

So we learned that $\;B\;$ is not the truth-teller. We can use that fact in simplifying $\Ref{1}$, which also contains $\;T(B)\;$: $$\calc \tag{1} \says A {T(B)} \op\then\hint{axiom $\Ref{b}$} U(A) \;\lor\; (T(A) \equiv T(B)) \op\equiv\hint{using $\Ref{*}$; logic: simplify} U(A) \lor \lnot T(A) \op\equiv\hint{axiom $\Ref{a}$} \lnot T(A) \tag{**} \endcalc$$

From $\Ref{*}$ and $\Ref{**}$ we can use $\Ref{0t}$ to conclude $$ \tag{***} T(C) $$ i.e., $\;C\;$ is the truth-teller.

Finally we need to use $\Ref{3}$ to complete the picture: $$\calc \tag{3} \says C {L(B)} \op\then\hint{axiom $\Ref{b}$} U(C) \;\lor\; (T(C) \equiv L(B)) \op\equiv\hint{LHS: using $\Ref{***}$ and axiom $\Ref{a}$; RHS: using $\Ref{***}$} \false \;\lor\; (\true \equiv L(B)) \op\equiv\hint{logic: simplify} L(B) \endcalc$$

So $\;B\;$ is the liar. And therefore by $\Ref{0u}$ we have $\;U(A)\;$, in other words $\;A\;$ is the unreliable one.


Note how this proof was largely shaped by the shapes of the logical formulas, together with our desire to simplify.

Of course, once this proof is known, it can easily be translated into a few sentences:

$B$ cannot be the truth-teller, since in that case statement 2 would make him the unreliable person instead. Therefore $A$ did not speak the truth (statement 1), and therefore $A$ is not the truth-teller either. There being exactly one, $C$ is the truth-teller. Therefore (statement 3) $B$ is indeed the liar. Therefore the third person, $A$, is the unreliable person.

But to me, presenting such a solution 'ex nihilo' is like pulling a rabbit out of a hat: it is a nice surprise, but it doesn't provide much insight into solving similar problems.

Perhaps my formalization and proof gives some such insight...

$% \endgroup %$