|| 述語を数学的な観点から扱ってみた
「命題論理」を『述語で具体化』したもの
スポンサーリンク
目次
述語論理「述語を数学的に考えてみる」
量化「量という概念は明らかに数的な概念」
基本量化子「数学的に整備された量化子」
全称量化「全ての(何か)は(条件)を満たす」
存在量化「(条件)を満たす(何か)は存在する」
一階述語論理「量化して良いのは個体変数だけ」
二階述語論理「個体変数より広い範囲へ拡張したもの」
高階述語論理「量化範囲を好きなだけ拡張したもの」
無限論理「記述量を無限方向に拡張したもの」
述語論理 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}
|| ある範囲のものは全部そうだよ
「全ての x は A である」みたいな「量化子」のこと
\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}
実は「理解できるもの」が存在します。
(ただし有限記述による証明が可能とは限らない)