20201218『数理論理学』輪講のノート

先生のおっしゃっていた方法\[S_0=\{Pの真偽表\begin{pmatrix}1\\1\\0\\0\end{pmatrix},Qの真偽表\begin{pmatrix}1\\0\\1\\0\end{pmatrix}\}\]\[S_{n+1}=\{\alpha\rightarrow\betaの真偽表\mid \alpha,\betaの真偽表\in S_n\}\]
において、\(S_n\)は「\(P,Q\)を\(n\)個以下の\(\rightarrow\)で結んで作れる論理式の真偽表の全体」という集合になります。この方法で実際に列挙してみたところ、意外に早く「頭打ち」を迎えてしまい、全16通りの真偽表のうち、表せるのはごくわずかであることに気づきました。プログラムを組むのが大変そうでも、手作業でじゅうぶん遊べる規模なので、いちど試してみてはいかがでしょうか。

別な角度から考えてみると、\(P,Q\)がともに真であるという解釈のもとでは、\(P,Q\)をどのように\(\rightarrow\)で複雑に結合してみても、どこまで行っても真になります。したがって\(P,Q\)が真のときに偽になるような論理式(NANDやNOR、XORなど)の真偽表は全滅で、早くも16通りから8通りに絞られます。この時点では\(P\wedge Q\)はまだ望みがありますが、実際に作れるものはさらに少なくなり、そこには\(P\wedge Q\)は含まれません。