ある神域に、三柱の神がいる。 真神。偽神。乱神。
真神はいかなる問いにも常に真実を語り、偽神はいかなる問いにも常に虚偽を語り、乱神は真実と虚偽をランダムに語る。三柱は外見から区別できず、互いの正体を知っている。こちらに使える質問は三回だけであり、返答は「ダー」または「ヤー」のどちらかに限られる。しかも「ダー」と「ヤー」がそれぞれ「はい」「いいえ」のどちらを意味するかは知らされていない。この条件下で、三回の質問だけで三柱すべての正体を完全に特定せよ。
George Boolos が 1996 年に提示したこの「神々のパズル」(The Hardest Logic Puzzle Ever)が特別に難解なのは、単に「誰が正直者か」という問題ではなく、三重の不確定性を同時に抱えているからである。
普通に「あなたは真神ですか?」と聞いても解釈不能である。真神が「ダー」と答えたとしても、それが「はい」なのか「いいえ」なのかわからない。偽神が「ダー」と答えたとしても、そもそも嘘をついている。さらに乱神ならば返答はランダムであり、情報として信頼できない。
したがって、この問題の本質は「どんな質問をするか」ではない。問いそのものを、真神・偽神・未知言語・乱神というノイズを突破できる形式に変換する必要がある。本稿はその変換の論理的構造を解明し、論理学・計算機科学・情報理論への射程を論じる。
神 $g \in \{T, F, R\}$(真神 $T$・偽神 $F$・乱神 $R$)のうち、非乱神($g \in \{T, F\}$)を考える。$A_g(P)$ を「神 $g$ が命題 $P$ に対して返す語」と定義する。返す語は必ず「ダー($D$)」または「ヤー($Y$)」のいずれかである。
通常の質問(直接質問)では:
$$A_T(P) \neq A_F(P) \qquad \text{(真神と偽神の返答は逆になる)}$$真神は $P$ が真なら「はい」と答え、偽神は $P$ が真なら「いいえ」と答える。言語の意味不明性($D$/$Y$ のどちらが「はい」か不明)と虚偽性の組み合わせにより、直接質問から確定的情報を引き出すことはできない。
ここで着目すべき核心的な問いの形式を導入する:
「もし私があなたに『$P$ ですか?』と聞いたら、あなたは『ダー』と答えますか?」
たとえば $P$=「地球は青い」なら、質問は次のようになる。
「もし私があなたに『地球は青いですか?』と聞いたら、あなたは『ダー』と答えますか?」
これは $P$ を直接問うのではなく、「$P$ に対する相手自身の返答行動」を問う質問である。この形式の問いが、本稿の核心をなす。
通常の質問では命題 $P$ をそのまま神に投げる。すなわち:
$$P \;\longrightarrow\; \text{返答}$$しかし、新たな形式の質問では:
$$P \;\longrightarrow\; \bigl[\,P \text{ にダーと答えるか?}\,\bigr] \;\longrightarrow\; \text{返答}$$命題 $P$ が、返答行動に関する命題の中に内包されている。この構造を形式的に書けば、新たな命題 $\Phi(P)$ を次のように定義する:
$$\Phi(P) \;:=\; \bigl[A_g(P) = D\bigr]$$$\Phi(P)$ は「神 $g$ は命題 $P$ を聞かれたときにダーと答えるか?」という命題である。$P$ そのものではなく、$P$ に対する相手の返答行動についての命題であることに注意されたい。
この定義のもとで、驚くべき事実が成立する:
$$\boxed{\;A_T\bigl(\Phi(P)\bigr) \;=\; A_F\bigl(\Phi(P)\bigr)\;}$$真神と偽神の応答が一致するのである。直接質問で常に逆になっていた二者の返答が、$\Phi$ を経由することで揃う。これがこの手法の出発点であり、核心である。
この操作を一文で表現するならば:
命題 $P$ を直接問わず、「$P$ に対して自分がダーと答えるか」というメタ命題 $\Phi(P)$ に変換することで、真神と偽神の返答を強制的に一致させる操作
これにより、従来の論理パズルが抱える二つの障壁が同時に解消される。
なぜ言語の不明性まで吸収されるのか。質問文が「ダーと答えますか?」という形で構成されているため、こちらは「ダー」の意味を知る必要がない。神自身は「ダー」の意味を知っており、その神が返答行動を問われたとき、自らの言語体系の中で答えを導く。こちらは「ダー」を翻訳しようとしているのではなく、「ダー」という未知語をそのまま論理回路の固定記号として使っているのである。
この一段の持ち上げによって、真実と虚偽、はいといいえ、ダーとヤーの混乱は、すべて構造の中に吸収される。このパズルの心臓部はここにある。
真神の場合: 真神に「$P$ ですか?」と聞けば、$P$ は真なので「はい」=「ダー」と答える。したがって $\Phi(P) = [A_T(P) = D]$ は真。真神は真実を語るので、$\Phi(P)$ に対しても「はい」=「ダー」と答える。
偽神の場合: 偽神に「$P$ ですか?」と聞けば、$P$ は真だが偽神は嘘をつくため「いいえ」=「ヤー」と答える。したがって $\Phi(P) = [A_F(P) = D]$ は偽。しかし偽神はこの $\Phi(P)$ にも嘘をつく。$\Phi(P)$ は偽なので、偽神は「はい」=「ダー」と答える。
結果として $P = \mathrm{true}$ のとき、真神も偽神も「ダー」を返す。「ダー」が「いいえ」を意味する場合も、構造が対称的に保持されるため同様に成立する。$P = \mathrm{false}$ の場合も同様に示せる。
この構造を論理回路にたとえれば、偽神の嘘は NOT ゲートである。通常の質問では偽神には NOT が一つだけ入る:
$$P \;\longrightarrow\; \neg P$$しかしメタ質問では、偽神に NOT が二つ入る:
$$P \;\longrightarrow\; \neg P \;\longrightarrow\; \neg\neg P \;=\; P$$これにより、偽神の答えは真神の答えと一致する。
この問題の中心は「嘘つきを見破る」ことではない。嘘つきに、嘘をつかせたまま、出力を真実と一致させることである。
偽神の嘘は除去されているのではなく、二重に発生させることで相殺されている。嘘を一回だけつかせると答えは反転するが、嘘を二回つかせると答えは元に戻る。この二重反転を質問文の構造に埋め込むことで、真神と偽神の返答を強制的に一致させている。
この操作に名前をつけるならば:
応答関数の内包化(Internalization of the Response Function)
あるいは:
返答行動のメタ命題化(Meta-Propositional Encoding of Response Behavior)
通常は命題の真偽を問うが、この操作では「命題に対する応答行動それ自体」を命題の対象に据える。対象命題 $P$ を、応答関数 $A_g$ に関するメタ命題へ持ち上げる操作である。言わば問いの対象を一階から二階へ引き上げる操作であり、これがまさに「命題に命題を内包する」という本稿タイトルの意味するところである。
$\Phi(P)$ が確立したことで、実際にどう三柱を特定するかを示す。
神 $A$、$B$、$C$ とする。$A$ に対して $B$ を指しながら問う:
「もし私があなたに『$B$ は乱神ですか?』と聞いたら、あなたは『ダー』と答えますか?」
なぜか。$A$ が非乱神ならメタ質問が有効に機能し、返答は命題の真偽を正しく反映する。$A$ 自身が乱神だった場合でも、その場合は $B$ と $C$ の両方が非乱神であるため、どちらの返答であっても必ず一柱の非乱神を確定できる。
第一問で確定した非乱神を $X$ とし、$X$ に問う:
「もし私があなたに『あなたは真神ですか?』と聞いたら、あなたは『ダー』と答えますか?」
$X$ は非乱神なのでメタ質問が有効に機能する。ダーなら $X$ は真神、ヤーなら $X$ は偽神と確定する。
正体が確定した $X$ に、残り二柱のうち一方 $Y$ を指しながら問う:
「もし私があなたに『$Y$ は乱神ですか?』と聞いたら、あなたは『ダー』と答えますか?」
$X$ はすでに信頼可能な情報源(オラクル)として機能する。ダーなら $Y$ が乱神。ヤーなら残るもう一柱が乱神。乱神が確定すれば、全体が自動的に完成する。
三段構成を論理的に整理すると:
この問題の本質は、「正直者に聞けばよい」という単純な話ではない。そもそも、誰が正直者かわからない。また「はい」と「いいえ」の言語対応すらわからない。必要なのは、相手の性質を前提にすることではなく、相手の性質によらず同じ出力を生む質問形式を設計することである。
これは論理パズルというより、情報抽出プロトコルの設計に近い。相手が真実を語るか嘘を語るか、言語の対応が既知か未知か、返答がランダムか非ランダムか、それらの不確定性を、質問の構文そのものによって正規化する。
$\Phi$ は、真神・偽神・未知言語という3つの不確定性を、真偽判定可能な安定出力へ変換する演算子である。
これは認識不可能な相手から信頼できる情報を抽出するための「メタ論理プロトコル」と呼ぶべきものである。
本稿で論じた5つの Take-Home Message を改めて整理する。
▶ Point 1:応答の対称性崩壊と $\Phi$ の着想 直接質問では真神・偽神の応答は逆転する。$P \to \Phi(P) := [A_g(P) = D]$ という変換の導入により、逆転が相殺される。
▶ Point 2:一文で言うと ― この操作の本質 $\Phi(P)$ は「$P$ への自己応答行動」をメタ命題化することで、真偽・言語不明性の両障壁を同時に消去する。未知語を翻訳するのではなく、未知語を固定記号として論理構造に組み込む。
▶ Point 3:最重要公式 ― 形式的証明 $P = \mathrm{true} \Rightarrow A_g(\Phi(P)) = D$、$P = \mathrm{false} \Rightarrow A_g(\Phi(P)) = Y$ が成立する。偽神の嘘は NOT ゲートとして $P \to \neg P \to \neg\neg P = P$ と相殺される。
▶ Point 4:操作の命名 ― 応答関数の内包化 「応答関数の内包化」または「返答行動のメタ命題化」と呼ぶ。嘘つきを見破るのではなく、嘘をつかせたまま出力を真実と一致させる。
▶ Point 5:$\Phi$ はメタ論理プロトコルである 3問の質問戦略(①非乱神確保→②正体判定→③オラクル活用)によって三柱を完全特定できる。$\Phi$ は3つの不確定性を安定出力に変換するメタ論理プロトコルである。
Boolos のパズルは表面上は謎解きゲームであるが、その内部構造には「問いの自己参照的変換」という深遠な論理操作が潜んでいる。「未知の相手から、どのようにして信頼可能な情報を抽出するか」という問いは、論理学・計算機科学・情報理論・認識論にまたがる普遍的な問いである。本稿がその美しさの一端を伝えることができたなら幸いである。
本稿で論じた「応答関数の内包化」という操作は、論理学・計算機科学・情報理論のそれぞれに対応する概念や問題設定が存在することが示唆される。以下に関連キーワードを分野別に整理する。これらは今後の探索における出発点として位置づけるものであり、各キーワードがどのように $\Phi$ の構造と共鳴するかは引き続き検討に値する。
特に、計算機科学における「高階関数」との類比は示唆に富む。$\Phi$ は命題 $P$ を受け取り、$P$ そのものではなく「$P$ への応答行動」を対象とする新たな命題を返す。これは関数を引数に取る高階関数の論理的類縁であり、プログラム意味論における継続渡しスタイル(CPS 変換)とも構造的な共鳴が見られる。
情報理論の観点では、ダー/ヤーの意味不明性は「未知の符号化規則」に相当し、嘘つき性は「敵対的ノイズ源」に相当する。$\Phi$ はその両者を単一の変換で吸収するという点で、キャリブレーション付き通信路モデルとしても再解釈できる可能性がある。