論理式を代数に変換する 2
pがTつまり1とすると、¬p=p+1です。
p∧q=pq
p∧qがTとなるのは、pとqが1であるときで、どちらかが0つまり偶数であると、p∨qはFとなります。その条件を満たす計算はp*qですね。
p∨q=pq+p+q
p∨q=¬(¬p∧¬q)
なので、
(p+1)*(q+1)+1
を展開して、
pq+p+q+1+1
最後の1+1=2は、なくても偶奇に影響はないので、消します。
p+1=1となるので
¬p=p+1=1ということですかね。
p∨q=pq+p+q
=p(q+1)+q
=p+q
としてブール代数に持ってくることができそうですが。
ブール代数は、真偽表を使わずに、偶奇の代数で論理式の真偽(1か0か)を計算する方法ですね。
pqを説明するにしても、「pqは真偽不明の命題」と「pqは変数」は、同じことです。
ここで説明されている体系はちょっとブール代数に似ているけれどブール代数そのものではないわけですね。
ブール代数とは、命題真偽を偶奇に置き換えて、論理式の真偽を機械的な計算で導く方法だと、考えたのです。御光堂さんの理解と異なりますか?
ちなみにこの連載内容は、「スマリヤン先生のブール代数」第17章から、取り上げました。 同項には「代数的手法」とはありますが、「ブール代数である」とは書いていないなあ・・僕の勘違いだったか?
ブール代数の基本は、∧(かつ)を*(掛ける)にして、∨(または)を+(足す)にします。そして、使用する数字は01のふたつだけ。
1*1=1
1*0=0
0*1=0
0*0=0
1+1=1
1+0=1
0+1=1
0+0=0
上で、1+1が偶数ではない1になるのが、僕の体系(キンシャチ代数と呼びます)との違いです。これを、定義として
1∨1=1+1=1
(ブール代数)
とするか、1+1のメカニズムを詳細に
1∨1=1*1+1+1
(キンシャチ代数)
とするか、の違いでしかありません。キンシャチ代数は、ブール代数のメカニズムです。