私は数理論理学の初心者だが、当書籍の練習問題19(3)を自力で解くことはできなかったので解答を参照しました。
その内容が、自分にとってはあまりに天才的な解答で、発想の起点のようなものが見えなかったので、
gemini等を使って調べたことをここに補足します。
解答の(3)は、かなりテクニカルで「ひらめき」を要求する構成になっていますね。
特に「なぜいきなり矛盾式($\bot$)を作ろうとしたのか」という点が、初見では飛躍して見える原因かと思います。
この証明の「発想の起点」と、論理のつながりを整理して解説します。
証明の目的は「$\{\land, \underline{\lor}, \leftrightarrow\}$ を使って NAND ($A|B$) を作ること」です。
テキストにある通り、$A|B \equiv \neg(A \land B)$ です。
ここで、手持ちの道具 $\{\land, \underline{\lor}, \leftrightarrow\}$ を見渡すと、「否定 ($\neg$)」を単独で表現する手段がないことに気づきます。もし「矛盾($\bot$)」さえ作ることができれば、以下を使って否定が作れます。
$$\neg A \equiv A \leftrightarrow \bot$$
https://mathlog.info/articles/g0BcRjqSEUdwK0iAiKMM
上記参照して下さい。
つまり、「どうにかして矛盾式(常に偽になる式)を合成できないか?」というのが、この解答の戦略的な起点です。
ここで解答にある「ひらめき」の部分です。
排他的論理和 ($\underline{\lor}$) と同値 ($\leftrightarrow$) の真理値表を比較してみましょう。
ちなみに、上記の発想すら思いつきはしないと思いますが、実際は問題文で与えられた結合子で様々な論理式を作って真理値表で遊んでみるという実験が大事だと思います。
| $A$ | $B$ | $A \underline{\lor} B$ | $A \leftrightarrow B$ |
|---|---|---|---|
| 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 |
| 0 | 0 | 0 | 1 |
表を見ると、この2つは常に反対の結果を返していることがわかります。
つまり、一方が「1」のときはもう一方が必ず「0」です。
「常に一方が 0 である」という性質を利用して、「両方が同時に 1 になることはない」という式を立てれば、それは常に「0」になります。
$$(A \underline{\lor} B) \land (A \leftrightarrow B) \equiv \bot$$
これで、手持ちの記号だけで「矛盾($\bot$)」を生成することに成功しました。
解答の最後の一行 $A|B \dashv\vdash (A \land B) \leftrightarrow ((A \underline{\lor} B) \land (A \leftrightarrow B))$ は、以下のステップを凝縮したものです。
この解答が不親切に感じるのは、「否定を作りたい → 否定を作るには矛盾が必要 → 矛盾を作るには XOR と同値をぶつければいい」という逆算のプロセスを説明せずに、いきなり結論の式を提示しているからです。
目標: $\neg(A \land B)$ を作りたい。
課題: $\neg$ がない。
解決策: $\bot$ を使って $\neg P \equiv P \leftrightarrow \bot$ とする。
手段: $A \underline{\lor} B$ と $A \leftrightarrow B$ は「矛と盾」の関係なので、$\land$ で繋げば必ず $\bot$ になる。
この流れが見えると、解答の式が「ひらめき」ではなく、必然的な組み合わせであることが理解しやすくなるはずです。