述語論理 Predicate Logic


|| 述語を数学的な観点から扱ってみた

「命題論理」を『述語で具体化』したもの

スポンサーリンク

 

 


目次

 

述語論理「述語を数学的に考えてみる」

量化「量という概念は明らかに数的な概念」

基本量化子「数学的に整備された量化子」

   全称量化「全ての(何か)は(条件)を満たす」

   存在量化「(条件)を満たす(何か)は存在する」

 

一階述語論理「量化して良いのは個体変数だけ」

二階述語論理「個体変数より広い範囲へ拡張したもの」

高階述語論理「量化範囲を好きなだけ拡張したもの」

無限論理「記述量を無限方向に拡張したもの」

 

 

 

 

 


述語論理 Predicate Logic

 

|| 命題を具体化した述語に注目した数学の分野

「AはBである」とかを数学的に扱うためのもの

 

\begin{array}{ccc} 命題 &\to& 命題の中身 \end{array}

 

命題論理」を具体化する形で

(命題は欲しい性質しか要求してないので中身が不明)

 

\begin{array}{ll} 主語 & 述語 \\ \\ \\ 私は & 元気である \\ \\ 彼は & 神だ \\ \\ それは & 違う \\ \\ \\ 0は & 最小の自然数である \\ \\ 1は & 自然数である \\ \\ πは & 実数である \end{array}

 

こういったものから出発していった結果

(述語の中で特に数学的に扱えるものを調査)

 

\begin{array}{llc} n は & 全て自然数である \\ \\ x は & 全て実数である \end{array}

 

こういうやつが発見されて

 

\begin{array}{lcl} 命題の具体化 && 命題の中身を考える \\ \\ 具体例の提示 && 主張は「~である」という形 \\ \\ 変数が主語なら && 述語が変数の状態を表現 \\ \\ \\ 調査段階 && 真か偽か分かる述語を求める \\ \\ 発見段階 && 量の表現の中で「全て~である」を発見 \\ \\ \\ 精査段階 && 性質を色々調べる \\ \\ 形式化段階 && 述語論理の概形が得られる \end{array}

 

厳密化していった結果得られた成果が「述語論理」です。

(これは「全て~である」という表現について調べた結果)

 

 

 


 


量化子 Quantifier

 

|| 量を表現するような言語

なにかの「量を指定する言い回し」

 

\begin{array}{ll} 少なくとも&~だ \\ \\ 全て&~である \\ \\ ほとんど&~です \\ \\ 何個かは&~になる \end{array}

 

こういうものを「量化子」と言います。

(述語論理のメイントピックとして扱われる)

 

 

 

 

 

述語と量化子

 

「量化子」を見れば分かるように

 

\begin{array}{ll} 全て~である & \mathrm{All} \\ \\ ほとんど~です & \mathrm{Almost} \\ \\ いくつかは~だ & \mathrm{Some} \end{array}

 

これらは「述語」であり

『量』について言及するものです。

 

 

そしてこの中でも

特に「全」を用いた述語は

 

\begin{array}{lcl} 全て &\to& 変数指定無し \\ \\ ほとんど &\to& 変数指定あり \\ \\ いくつか &\to& 変数指定あり \end{array}

 

『どの中身かを問わない』ため

(真になる x を指定する必要があるか無いか)

 

\begin{array}{lcl} 全て正しい &\to& 中身が全て真 \\ \\ ほとんど正しい &\to& 中身がほぼ全て真 \\ \\ いくつか正しい &\to& 中身が何個か真 \end{array}

 

非常に扱いやすいと言えます。

(全が特別な量化子であることが分かる)

 

 

 

 

 

全と存在

 

この「全」の性質を調べた結果得られたのが

 

\begin{array}{lcl} \mathrm{All} &\to& \forall \\ \\ \mathrm{Exist} &\to& \exists \end{array}

 

「述語論理」のメインであるこれで

 

\begin{array}{ccc} 全て正しい &\to& 例外が無い \end{array}

 

このような言い換えから

(否定のこの表現がうまく噛み合う)

 

\begin{array}{lcl} 例外が無い &\to& 例外が存在しない \\ \\ 全て正しいわけではない &←& 例外が存在する \end{array}

 

「存在」との繋がりは推定されます。

(言語の解釈から全と対になる存在が予想される)

 

 

 

 

 

基本量化子

 

|| 真偽が確定する量についての言い回し

「自然言語」の範囲だと色々ありますが

 

\begin{array}{lll} \forall x \,\, P(x) & 全てのxはPである \\ \\ \exists x \,\, P(x) & Pを満たすxは存在する \end{array}

 

「厳密な数学の範囲」では

これらだけが「量化子」になります。

 

 


 

 

全称量化 \mathrm{All,Any}

 

|| ある範囲のものは全部そうだよ

「全ての xA である」みたいな「量化子」のこと

 

\begin{array}{l} ∀x&A \\ \\ ∀x&A(x) \\ \\ ∀x&(A) \\ \\ ∀x& \Bigl[ A(x) \Bigr] \end{array}

 

記号ではこんな感じに書かれることが多くて

 

\begin{array}{llc} 全てのxは &条件Aを満たす \\ \\ 全てのxは &Aという条件を満たす \\ \\ 全てのxについて & xはAである \\ \\ 全てのxに対して & Aが成立する \end{array}

 

その「記号が意味する内容」はこんな感じになってます。

(下2つをよく見ますが上2つで覚えることを推奨)

 

 


 

 

存在量化 \mathrm{Exist}

 

|| 条件を満たす何かが存在するよ

「少なくとも1つはあるよ」みたいな量化子のこと

 

\begin{array}{l} ∃x&A \\ \\ ∃x&A(x) \\ \\ ∃x&(A) \\ \\ ∃x&\Bigl[ A(x) \Bigr] \end{array}

 

記号での表現はこんな感じで

 

\begin{array}{llc} 条件Aを満たす & xが存在する \\ \\ 条件Aに合う & xがある \\ \\ Aを満たす & xは存在する \\ \\ Aを成立させる & xが存在する \end{array}

 

「記号が意味する内容」はこんな感じです。

(より詳しい話は「量化子」の記事で扱います)

 

 

 


 


一階述語論理 First-Order PL

 

|| 数学で使うアルファベット的なもの

個体(変数)」の「量化」だけ許す

 

\begin{array}{ccc} \forall x & P\Bigl( f(x) \Bigr) && 〇 \\ \\ \forall f & P\Bigl( f(x) \Bigr) && × \end{array}

 

そういう『制限が掛かっている述語論理』のこと

(述語論理の基礎に位置する概念)

 

 

 

 

 

全称量化の解釈と一階が意味するところ

 

これの発端は「量化範囲の考察」で

 

\begin{array}{cccl} \forall x & P\Bigl( f(x) \Bigr) && 〇? \\ \\ \forall f & P\Bigl( f(x) \Bigr) && ? \end{array}

 

↑ で軽く紹介したように

『量化して良い範囲』を考えてみると

 

\begin{array}{ccc} 全てのx が & P\Bigl( f(x) \Bigr)を満たす && 分かる \\ \\ 全てのfが & P\Bigl( f(x) \Bigr)を満たす && ??? \end{array}

 

その必要性が推測できると思います。

(量化範囲に縛りが無いとよく分からなくなる)

 

 


 

 

二階述語論理 Second-Order PL

 

|| 一階の範囲より範囲が広い述語論理

「関数」「述語」も『量化』して良いとする述語論理

 

\begin{array}{lcl} f(x) &\to& \forall f \\ \\ P(x) &\to& \forall P \\ \\ R(x,y) &\to& \forall R \end{array}

 

ここまではそこそこ実用的で

ちゃんと納得できる解釈が可能な範囲になります。

(しかしこれを考えると問題が生じる)

 

 


 

 

高階述語論理 Higher-Order PL

 

|| 量化可能な範囲に制限が無いやつ

↑ の「量化範囲」を『そもそも考えない』のがこれで

 

\begin{array}{ccc} S \left( g\Bigl( f(x) \Bigr) \right) \end{array}

 

こういう意味があるんだか無いんだか

 

\begin{array}{rlc} t \mathrm{\,\, is \,\, Term} \\ \\ &\displaystyle \forall f\Bigl( g(t) \Bigr) &&\displaystyle 0<f\Bigl( g(t) \Bigr) <1 \end{array}

 

『よく分からない量化』も許容します。

(順番的にはこれが一階述語論理の原型です)

 

 

 

 

 

述語論理の最初期

 

以上のことを踏まえれば

 

\begin{array}{ccc} 命題の具体化 &\to& 述語へ注目 \end{array}

 

なんとなく分かると思うんですが

 

\begin{array}{ccc} 述語の解析 &\to& なんでも表現できる \end{array}

 

最初の述語論理は「高階述語論理」ベースでした。

(厳密には量化範囲を意識していなかった)

 

\begin{array}{lcc} 全ての関数 && \forall f \\ \\ 全ての条件 && \forall P \\ \\ 全ての関係 && \forall R \end{array}

 

実際、これらの言葉自体は理解可能ですし

「理解できるから」良しとするのは

そんなに変な話ではありません。

 

 

 

 

 

よく分からないことも表現できる

 

しかし「分かる」というのが事実であるように

 

\begin{array}{lcc} 全ての関数 && \forall f \\ \\ 全ての条件 && \forall P \\ \\ 全ての関係 && \forall R \end{array}

 

『よく分からないものが存在する』のも事実で

 

\begin{array}{ccc} \forall R \,\, \lnot R(R) && 全ての関係は関係を引数に持たない \end{array}

 

中には「真か偽か分からない」ものが存在します。

(命題論理の要請から逸脱してしまう)

 

 

 

 

 

無制限の内包を否定できない

 

また「量化範囲に制限が無い」ということは

 

\begin{array}{ccc} \forall φ & \exists S & \forall x & x\in S⇔φ(x) \end{array}

 

「どこからでも x がとれる」ということなので

(無制限の内包を認める命題を否定できない)

 

\begin{array}{ccc} X &=& \{ x \mid x≠x \} \end{array}

 

このような集合を定義できます。

(定義できないという根拠がこの時点では無い)

 

\begin{array}{ccc} X\in X &\to& X\not\in X & \because X=\{ x \mid x≠x \} \\ \\ X\not\in X &\to& X\in X & \because X=\{ x \mid x≠x \} \end{array}

 

しかしこれは「ラッセルのパラドックス」という

「明確な矛盾」を導出してしまうので

(これの詳細はクラスの記事で)

 

\begin{array}{ccc} Xが作れるルール &\to& \{ x \mid x≠x \} \\ \\ × &←& × \end{array}

 

『このような集合が存在する』という仮定は

「明確な間違い」になります。

 

 

 

 

 

矛盾の排除と制限

 

『変数がとれる範囲(ドメイン)』を

 

\begin{array}{lcl} なんでも \in なんでも &\to& なんでも\in 問題無い \\ \\ 問題無い \in 問題無い &←& なんでも\in 問題無い \end{array}

 

「問題が出ない範囲に制限する」必要がある

(分からないので問題無さそうな範囲に狭めてみる)

 

 

この中でも

 

\begin{array}{ccc} 問題無い範囲 &\to& 集合 \end{array}

 

この部分を具体的に整備できたのが「集合論」で

(この成果は公理的集合論の整備と同時)

 

\begin{array}{ccc} なんでも &\in & 集合 \end{array}

 

これはそのまま「述語論理」に採用されました。

(この時点では個体変数に限定されてない)

 

 

 

 

 

個体変数以外への量化

 

「個体変数まで」という制限の根元は

 

\begin{array}{ccc} S\in S &\to& 自己参照はダメ \end{array}

 

「自己参照(クラス問題)の禁止」で

(変数の階層を意識した型理論が生まれる)

 

\begin{array}{ccc} S(x) &\Longleftrightarrow& 変数xを要素に持つ集合S \end{array}

 

こういう集合を禁止するために存在しています。

(ドメインを集合に制限しても S\in S が作れる)

 

 

整理すると

 

\begin{array}{ll} 述語論理の原型 & 無制限内包 \\ \\ 素朴集合論 & ラッセルのパラドックス \\ \\ 型理論 & 自己参照を階層化して考察 \\ \\ 公理的集合論 & 変数がとれる範囲を制限 \\ \\ 一階述語論理 & 個体変数の量化のみ許可 \end{array}

 

順番的にはこんな感じです。

(この制限により一階の述語論理が整備された)

 

 

 


 


無限論理 Infinitary Logic

 

|| その点々のとこどうなってんの?

「一階述語論理」の「有限性」に関わるもの

 

\begin{array}{llllll} 1&2&3&\cdots \\ \\ a_0&a_1&a_2&\cdots \\ \\ x_0&x_1&x_2&\cdots \end{array}

 

「高階述語論理」とはまた違う意味で

「述語論理を拡張する」概念になります。

(無限論理では論理式の長さに制限が無い)

 

 

 

 

 

有限長の論理式しか扱えない

 

「一階述語論理」は

 

\begin{array}{ccc} 記述量 &\to& 無限個でもいける? \end{array}

 

「記号の有限列(無限個の文字じゃない)」という

「論理式への制限」も持っていて

 

\begin{array}{ccc} 人が扱える &\to& 有限個で表現可能 \end{array}

 

これは「構成可能宇宙」でも出てくる

『人間が扱える範囲』に由来する制限になります。

(ここまでの制限が一階述語論理を形作る)

 

 

 

 

 

無限論理が許すこと

 

「無限論理」が許す操作については

 

\begin{array}{ccccl} |I|<κ &&\to&& \displaystyle \bigvee_{i\in I} φ_i \\ \\ |I|<κ &&\to&& \displaystyle \bigwedge_{i\in I} φ_i \end{array}

 

「原子論理式 φ 」を基礎として

κ は任意の基数λ は任意の順序数

 

\begin{array}{ccc} \{x_α\}_{α<β<λ} &&\to && \forall x_0\forall x_1\forall x_2\cdots φ \\ \\ \{x_α\}_{α<β<λ} &&\to && \exists x_0\exists x_1\exists x_2 \cdots φ \end{array}

 

こんな感じになっています。

(一階述語論理の範囲では許されない)

 

 

そしてその中身には

 

\begin{array}{ccc} \displaystyle\bigvee_{n<ω} φ_n &\Longleftrightarrow& あるnでφが成立する \end{array}

 

実は「理解できるもの」が存在します。

(ただし有限記述による証明が可能とは限らない)