III. 命題論理の意味論(その1)

一般に,論理の体系化には「意味論」(セマンティクス) と「構文論」(シンタクス)の二つの立場がある. 意味論の立場では,論理式に対して適当な解釈を用意し, それに基づいて議論を進める.解釈を与えるために さまざまな集合や代数が用いられる.これに対して, 構文論の立場では論理式の意味には立ち入らず, 論理式の構文上の構造に注目する.そこでは「公理」 や「推論規則」と呼ばれるものによって論理体系を 記述する(論理体系の「公理化」あるいは「形式化」).

この章からしばらくは古典論理の意味論を紹介する. その導入部として,この章では命題論理の論理式の概念と 真理値による意味解釈の方法を扱う.前半ではパズルや 論理回路を例に選んで記号化の考え方を説明する.後半では, 論理式の構文や意味解釈をきちんと定式化し,それに基づいて 「同値性」,「恒真性」,「充足関係」,「モデル」などの 基本的概念を導入する.同値式や恒真式の基本的な例も示す.

目次

1. 命題論理は何を記号化したものか
2. 命題変数と論理演算子
3. 論理式の構文と真理値割り当てによる意味解釈
4. 同値性・恒真性・充足関係

総目次に戻る


1. 命題論理は何を記号化したものか

1.1 命題とは何か

論理学で言う「命題」とは真偽が確定した言明のこと である.たとえば「1 は偶数である」,「2 は偶数である」 などは命題である(前者は偽,後者は真).これに対して 「x は偶数である」のように不定の x が入ったものを 「述語」という.

この言葉遣いは普通の数学での慣用とはかなり違うことに 注意されたい.数学ではひとまとまりの言明を内容の重みや 説明のなかの位置づけに応じて命題・定理・系・補題などと 呼ぶ.論理学の考え方に従えばこれらはすべて「定理」, すなわち証明された言明(従ってすべて真)である.

1.2 論理パズルと命題論理

命題論理では「命題」の真偽のみに注目する.第 I 章で 「箱とボール」のパズルに触れたが,これは典型的な 命題論理の問題である.命題論理で定式化するには,
a = 「箱Aにボールが入っている」
b = 「箱Bにボールが入っている」
c = 「箱Cにボールが入っている」
などの「命題変数」(「真」あるいは「偽」の値をもつ) を用意する.たとえば「箱AとBにはボールが入っているが, 箱Cにはボールが入っていない」という状況は各変数が
a = 真, b = 真, c = 偽
という値をもつことに対応する.

なお,ここでは命題の内容そのものに立ち入る必要はないから, 「箱」と「ボール」を「子供」と「帽子」に置き換えて 「子供と帽子」のパズルにしても同じことである.実際,

a = 「子供Aが帽子をかぶっている」
b = 「子供Bが帽子をかぶっている」
c = 「子供Cが帽子をかぶっている」
というように記号化した段階でそのような違いはなくなる. ボールや帽子に色の区別がある場合には,たとえば
aRed = 「箱Aに赤色のボールが入っている」
aYellow = 「箱Aに黄色のボールが入っている」
aGreen = 「箱Aに緑色のボールが入っている」
などの命題変数を用意すればよい(もっとも,この場合は むしろ「箱 x には y 色のボールが入っている」 という述語を用意して考える方が効率がよい). 命題論理とはこのように物事を割り切る論理である.

パズルでは一連の条件を与えてそれを満足する状況 (ボールの入れ方)を見つけることを問う.条件は 命題変数を「論理演算子」(「真」と「偽」 の値に対する論理演算をあらわす)で組み合わせた 「論理式」の形に表わすことができる. 条件を論理式の形で表現すれば,パズルはその論理式が 真となるような命題変数の値の割り当て方を見つける 問題に帰着する.これは「充足問題」と呼ばれる 問題であり,解法が知られている.

1.3 論理回路と命題論理

命題論理のもう一つの典型的な応用は論理回路である.

情報科学の視点から見れば,命題とは「ビット」 に他ならない.ビットとは要するに,二つの状態だけを とり得るような量のことである.通常,この二つの状態 を 0 と 1 で表わすことが多い.これらを

1 = 真
0 = 偽
というように対応付ければ,ビットは前述の意味での 命題と見ることができる.

このようなビットを入出力する回路を「論理回路」と いう.論理回路は図式的に

circuit
という形で表現される.x1,...,xn は n ビットの入力,y1,...,ym は m ビットの出力を表わす.これは抽象的に言えば
f: {0,1}n --> {0,1}m
という写像に他ならない.あるいは {0,1}n で定義されて {0,1} に値をもつ m 個の函数
y1 = f1(x1,...,xn),
...
ym = fm(x1,...,xn),
の組と考えることもできる.このような函数を(ブール代数 とやや紛らわしいが)「ブール函数」という.

実はこのようなブール函数は,x1,..., xn を命題変数とみなせば,命題論理の論理式 として必ず書ける(これは次の章で示す).命題論理は このように論理回路やその動作を抽象化したものと考える こともできる.


2. 命題変数と論理演算子

2.1 真理値

「命題変数」がとる真・偽の二つの値「真理値」という. 以下では真(true)と偽(false)に対応する値を T, F と表わす ことにするが,ブール代数との関係からT,⊥と表わしたり, あるいは論理回路に習って 1, 0 と表わすこともある.
真理値
真:T(あるいは T, 1 )
偽:F(あるいは ⊥, 0 )

n 個の命題変数 x1, ..., xn があれば, 全部で 2n 通りの真理値の組み合わせが生じる.

2.2 論理演算子

基本的な論理演算子には∧(連言あるいは論理積), ∨(選言あるいは論理和),¬(否定),→(含意,⊃ともあらわす), ↔(同値)がある.これらはそれぞれ「かつ」,「または」, 「でない」,「ならば」,「と同値である」という意味をもつ. これらは真理値集合 {T,F} 上の演算として定義される.
論理演算子種別 使い方意味
連言∧2項演算 P∧QPかつQ
選言∨2項演算 P∨QPまたはQ
否定¬1項演算 ¬PPでない
含意→2項演算 P→QPならばQ
同値↔2項演算 P↔QPはQと同値である
→と↔は誤解しやすいものなので注意を喚起しておきたい. これらは二つの命題の間を結ぶ前提と帰結の関係(それに ついてはあとで触れる)ではなくて,あくまで新しい一つの 命題をつくるための演算子である.単一の命題としての P→Qは,いわば,「PならばQである」という文自体の真偽 (前提から帰結を導くことの是非)を問うているのである.

2.3 演算の定義

演算の正確な定義は以下の通り:
連言∧

T∧T = T, T∧F = F∧T = F∧F = F

選言∨

T∨T = T∨F = F∨T = T, F∨F = F

否定¬

¬T = F, ¬F = T

含意→

T→T = F→T = F→F = T, T→F = F

同値↔

T↔T = F↔F = F, T↔F = F↔T = F

この定義を次のような表(「真理表」)の 形で示すことも多い:

pq p∧qp∨q p→qp↔q
TT TT TT
TF FT FF
FT FT TF
FF FF TT
p¬p
TF
FT

実はこれは2個の要素からなるブール代数 {T, F} を考えていることに他ならない. これによって連言∧と選言∨はブール代数の演算∧, ∨に対応する. また否定¬p はブール代数での補要素 x'に対応する.

2.4 なぜこのように定義するのか?

これらはそのまま覚えてしまうべき数学的定義であるが, なぜこのように定義するか,ということを理解しないで 扱うことは(少なくとも人間には)やはり難しいので, 少し説明しておく.このうち∧,¬,↔については文字通り の意味なので説明は要らないだろう.説明が必要なのは ∨と→である.

2.5 論理演算子の間の関係

以上の説明でも出て来たように,論理演算子の定義は まったく独立ではなくて,一部のものを使えば他のものが 表せる.いくつか例を示す(自分で確かめてみよ):
  1. p∨q = ¬((¬p)∧(¬q))
  2. p∧q = ¬((¬p)∨(¬q))
  3. p→q = (¬p)∨q
  4. p↔q = (p→q)∧(q→p)
右辺の意味は説明するまでもないだろう(p, q の真理値が 与えられれば計算できる).

ちなみに,右辺に現れているものはすべて命題論理の 論理式の例でもある.左辺ももちろん論理式である (論理式についてはこのあとで詳しく説明する).


3. 論理式の構文と真理値割り当てによる意味解釈

3.1 構文規則

論理式は記号化された文の一種である.文とは文字の並びであり, どのような文字の並びが文として認められるかを定めるのが 構文規則である.同様の考え方で論理式にも通用する.

命題論理の論理式を構成するのは次のような記号である.