論理学FAQのブログ

授業でもらったコメントに対して書いたリプライを、ブログ形式に編集しました。

0項述語

とつぜん論理学ネタに復帰しますが。動画で言えばこのあたりです。

youtu.be

述語の項数

述語論理の原子式は項と述語からなるわけですが、述語には1項述語、2項述語、3項述語…と項数 (arity) が決められています。

日本語と対応させるなら「…は人間である」なんかが1項、「…は…を尊敬している」なんかが2項、「…は…と…の間にある」なんかが3項述語でしょうか。4項以上になると、さすがに自然言語には自然な対応物がなさそうですが、数学的にはいくらでも増やすことができます。

で、学生さんから、

では0項述語ってあるんでしょうか、あるとすればどういうものでしょう

という質問が来ました(意訳)。

答え:0項述語は、古典命題論理で出てきた命題変項のことです。日本語で言えば、文ですね。今回はこれを、モデルにおける付値の観点から説明します。

1項述語に対する付値

述語論理のモデルは、個体領域  D (空でない集合)とその上の付値 v からなります*1。付値は、述語論理の言語中の各語彙に、モデル中の何らかの数学的対象を割り当てます。

例えば1項述語 ( P とします) には、 Dの部分集合を割り当てます。要するに  D 中の個体のうち P を満たすものの集合ですね。つまり、

(*)  v(P) \subseteq D (1項述語の付値は D の部分集合)

です。ここではこれからの議論のために、これに対して別の見方をします。D の部分集合を1つ決めることは、 D から真理値  \{1,0\} への写像を1つ決めることにほかなりません (こういうのに慣れている人はしばらくスキップしてください)。

例えば、 D=\{a,b,c\}として、その部分集合を1つ、これも例えば

 X=\{a,b\} \subseteq D

と決めることは、D の要素のうち a b には「Yes (入っていいよ)」、 c には「No (入ってはいけないよ)」と決めることにほかなりません。そして、Yesを1、Noを0とするなら、これは

  •  a\mapsto 1
  •  b\mapsto 1
  •  c \mapsto 0

という写像を定めることにほかなりません。もちろん、反対に  D から  \{1,0\} への写像が1つ与えられたら、そこから  D の部分集合(yesと言われているやつら)を1つ決めることができます。

とすると、上の(*)は次のように書き換えることができます。

(**)  v(P)\in D\to \{1,0\} (1項述語の付値は D から \{1,0\}への写像)

ただし、 X\to YX から Y への写像全体の集合を表すものとします。すでに確認したように、(*)と(**)は同じことをちがう仕方で言っているだけです。

まあ、「…は人間である」という述語は「…」に入るモノに対して、「Yes」と「No」を返す関数ですよね (オオニシに対しては「Yes」、MacBookに対しては「No」等々)。だから、(**)の見方はごく自然なもののはずです。

n項述語に対する付値

2項述語の付値は  D^2=D\times D の部分集合、つまり、 D の要素のペアの集合でした。つまり、2項述語 P に対しては、

(*2)  v(P) \subseteq D^2

でした。先ほどと同じ見方の転換をすれば、これは

(**2)  v(P)\in D^2\to \{1,0\}

と言い換えることができます。つまり、各ペアに対して「Yes」と「No」を返す関数です。

もうおわかりかと思いますが、一般に  n 項述語 P に対しては、

(*n)  v(P) \subseteq D^n

であり、

(**n)  v(P)\in D^n\to \{1,0\}

です。先ほどの1項述語のときの (**) はこれの  n=1 の場合、すなわち、

(**1)  v(P)\in D^1\to \{1,0\}

に当たります。

0項述語に対する付値

さて、よくわからないながらも記号的に進めていけるのが数学のいいところです。以上を踏まえると、0項述語 (というものがあるとして) に対する付値は、

(**0)  v(P)\in D^0\to \{1,0\}

となるはずです。

集合の0乗

この  D^0 とは数の0乗 ( =1) と同じようなもので、あるいみ特別な集合です。すなわち、

 D^0=\{*\}

です。 * は何でもいいんだけど何らかの要素 ( D の要素とは関係ない) で、 \{ *\} とはその  * からなるシングルトン (単元集合) です。これは、この D に限った話ではなく、任意の集合  X に対して、

 X^0=\{ *\}

とすることができます *2

 \{*\} からの写像

さてでは次は、 D^0=\{*\} から \{1,0\} への写像とはどのようなものか考えてみましょう。2つしかないはずです。すなわち、

  •  f_1: *\mapsto 1 と割り当てる写像  f_1 か、
  •  f_0: *\mapsto 0 と割り当てる写像  f_0

しかありません。つまり、

 D^0\to \{1,0\} = \{ f_1, f_0\}

ですね。で、これって、

 D^0\to \{1,0\} = \{ f_1, f_0\}\cong \{1,0\}

ですね ( \cong は集合の同型)。

一般に、 \{*\} から集合  X への写像を1つ決めることは、(\{*\} に割り当てられる値として) 値域集合  X の要素を1つ決めることにほかならず、その逆も同様です。つまり、

 \{*\}\to X \cong X

です。 \{*\} から集合  X への写像の集合は、 X そのものと同一視できます。

0項述語=命題変項

これを踏まえると、(**0)は次のように書き換えられます。

(***0)  v(P)\in \{1,0\}

つまり、あるモデルにおける付値  vは、0項述語  P に対して1か0を割り当てる、ということです。付値によって1か0を割り当てられるものって何だったかと言うと、命題変項にほかなりません。ということで、0項述語とは命題変項のことやんかということになります。

 

以上は、0項述語というものがあるとすればそれは何かということを、述語論理のモデルの枠組みの中で数学的に整理しただけです。命題変項に対応する日本語の文というカテゴリーを「0項述語」と呼ぶことで何かおもしろいことがあるかというと、どうでしょう。無いんじゃないかなあ。

*1:このあたりはだいたい標準的な定義ですが、正確な定義はレジュメを見てください。

*2:この  \{ *\} は何かと言うと「掛け算の単位元」です。上で述べたとおり  1 です。というのは、任意の集合  X について、  \{*\} \times X\cong X\cong X\times \{*\} が成り立つからです ( \cong は集合としての同型関係、すなわち、全単射が存在するということを表します)。数の掛け算について  1\times x=x=x\times 1 が成り立つのと同じです。