What is the name of the logical puzzle, where one always lies and another always tells the truth? So i was solving exercises in propositional logic lately and stumbled upon a puzzle, that goes like this:

Each inhabitant of a remote village always tells the truth or always lies. A villager will only give a "Yes" or a "No" response to a question a tourist asks. Suppose you are a tourist visiting this area and come to a fork in the road. 
  One branch leads to the ruins you want to visit; the other branch leads deep into the jungle. A villager is standing at the fork in the road. What one question can you ask the villager to determine which branch to take? 

I intuitively guessed the answer is "If I asked you this path leads to the ruins, would you say yes?". So my questions are:


*

*What is the name and/or source of this logical riddle?

*How can i corroborate my answer with mathematical rigor?


$
\newcommand{\cansay}[2]{#1\text{ can say }\unicode{0x2018}#2\unicode{0x2019}}
\newcommand{\says}[2]{#1\text{ says }\unicode{0x2018}#2\unicode{0x2019}}
$Here is a way to construct a solution to this puzzle, and many like it.
We want to know whether some specific $\;P\;$ (e.g., "Does this path lead to the ruins?") is true, from the answer $\;a\;$ ($\;\text{true}\;$ for yes, $\;\text{false}\;$ for no) to a question $\;q\;$.
Formally, for some specific villager $\;x\;$, we are asked to find a $\;q\;$ that makes
$$
(0) \;\;\; \says x {q \equiv a} \;\Rightarrow\; (P \equiv a)
$$
true for all $\;a\;$.  And we are given that
\begin{align}
(1) \;\;\; & \says x  P \;\Rightarrow\; \cansay x P \\
(2) \;\;\; & \cansay x P \;\equiv\; T(x) \equiv P \\
\end{align}
where $\;T(x)\;$ means that $\;x\;$ is a truth-teller.
(Note that in $(2)$ I use the fact that $\;\equiv\;$ is associative, so that I can leave out the parentheses.)

With the above, we can calculate
\begin{align}
& \says x {q \equiv a} \;\Rightarrow\; (P \equiv a) \;\;\;\;\;\text{-- $(0)$} \\
\Leftarrow & \;\;\;\;\;\text{"by $(1)$ -- the only thing we know about $\;\says{\cdot}{\ldots}\;$"} \\
& \cansay x {q \equiv a} \;\Rightarrow\; (P \equiv a) \\
= & \;\;\;\;\;\text{"by $(2)$ -- the only other thing we know about $\;\cansay{\cdot}{\ldots}\;$"} \\
& (T(x) \equiv q \equiv a) \;\Rightarrow\; (P \equiv a) \\
\Leftarrow & \;\;\;\;\;\text{"weaken -- the only way forward, as far as I can see"} \\
& T(x) \equiv q \equiv a \equiv P \equiv a \\
= & \;\;\;\;\;\text{"reorder using symmetry of $\;\equiv\;$; simplify"} \\
& q \;\equiv\; T(x) \equiv P \\
= & \;\;\;\;\;\text{"by $(2)$ -- to turn $\;q\;$ in to a real question"} \\
& q \;\equiv\; \cansay x P \\
\end{align}
So we ask the villager, "Can you say that this path leads to the ruins?"  An answer of "yes" means it does lead there, an answer of "no" means it doesn't.
