モデル理論 Model Theory


|| 判断基準の集まりを扱う感じ

ここでは、主に『意味』について扱っていきます。

スポンサーリンク



言語学の大分野になる『意味論 Semantics』と考えて良いです。

まあ、よく分からん人は『意味』についてって考えて良いと思います。

(自分もそんな感じの認識)





目次


モデル「これはこう、と決める判断基準の集まり」

   真理値「真偽を表す値のこと( 0,1 とか)」

   真理値割り当て「真理値を命題に割り当てる関数」


解釈「基準に、判断されるもの(文)を入力する感じ」


まとめ








なんとなく見て分かる通り『哲学』っぽいです。

実際、下半身は『哲学』にずっぽりです。

まあ上半身は『数学』に飲み込まれてるわけですが。






モデル Model


|| 判断基準の塊

モデルって何? という感じだと思うんで、

とりあえずこれについての説明を行っていきます。




結論だけを述べると、これは「基準(付値)」のことです。

情報が入ってきたら、その基準を使ってどっちか判断します。



具体的には「分かるもの」と「分からないもの」の二つに。

真理値割り当てるもの」と言い換えても良いでしょう。




直観的な話をすると『意味』を与える枠のようなものです。

この最低限の基準である「分かる」「分からない」がメイン。

それを決定する「判断の基準」が大量に詰まってます。

(例えば法律とか個人の価値観とか)



プログラミング的な感じで言うなら、

なにか情報が入ってきたら「Yes,No」のどっちかを返す感じ。




感覚的な話をすると、いわゆる人の判断がこれの一部です。

金銭に余裕があれば、誰かに施しをする人もいます。

しかし、同じような条件でも施しをしない人もいる、と。




プログラミングで言うなら「 \mathrm{if} 文の塊」ですね。

そのときはそれ、このときはこれ、とする基準が詰まってます。

その塊のことを「モデル」と呼んでるわけです。




これの作られ方はいろいろ考えられますが、

その作り方は、基本的に『構造』と言われます。

これについての詳細は別の記事で。






充足する Satisfy


この「充足する」という言葉の意味は、

モデルである」ということと同じ意味になります。




単なる用語です。

なので、とりあえずその内訳をざっと見ていきましょう。




そのために、いくつか決まりを用意します。

まずなんらかの「論理式」を「 ( ゚Д゚) 」と置きます。(なんでもいい)

次に「真を示す値」を「 」とします。

(真を「正しいと分かる」と考えて良いです)






ここから、未だに紹介していないものになります。

ともあれ、先に大枠を見せるためにこんな感じに書きます。



ある「モデル」を「 M\,(Model) 」と表します。




これを使って、実際にどういう振る舞いをするか見てみましょう。

その振る舞いから「モデル理論」の大雑把な感じを掴んでください。




というわけで、実際に「真理値を割り当て」てみましょう。



結論としては「 M[( ゚Д゚)]=⊤ 」となります。



これがなにを表しているかというと、

意訳すると↓みたいな感じ。



『文 ( ゚Д゚) 』は、この『モデル』の『解釈』によると『真』




ここでの「 M 」が『モデル』のことで、

M[( ゚Д゚)] 」を『解釈』と言います。(?)




これが『モデル理論』の、全体像の感覚になります。

はい、まあよく分からんですよね。

(自分は最初 は? ってなりました)



ともかく用語が多くてあれなので、

一つずつじっくりと見ていきましょうか。







真理値 Truth Value


|| 正しいか変かを表すなにか

主に「真」「偽」を表す「値」のことです。

詳しくは『真理値』の記事を参考にしてください。






真理値割り当て Truth Assignment


|| 真理値の割り当てをするやつ

「なにか(論理式とか)」に「真理値」を割り当てるものです。

『モデル』の一種と思って良いです。




こんだけじゃ、まあそうだろってなると思います。

けど、だからそれどういうことなの? となると思うので、

どんな感じのものなのか見ていきましょう。






実際に真理値を割り当ててみる


なにか「文」だったり「論理式」だったりがあるとします。

これを「 φ 」としましょう。(お好きに)




この時点では、まだ「 φ 」には「真偽」が定まってません。

でも、なんとかして「真偽を定めたい」ので、

φ 」に、その値を割り当てる「付値 M 」を用意します。

(要するに真偽を定める基準を持ってくるということ)




これを使って「 φ 」を「真( 1 )」だと示してみましょう。

すると「 M[φ]=1 」という感じになります。はい。

そして、この「 M 」こそが「真理値割り当て」の正体なわけです。

MModelM




以上、詳細は『真理値割り当て』にて。







解釈 Interpretation


|| これはこれだという判断

要は『文』を『モデル』にぶち込んだ『結果を返す』もののこと。

形式的には「 M[φ] 」のことです。

M をモデル、 φ を文とします )




直観的には「判断」のようなものと考えて良いと思います。

これを詳しく理解するためには『論証』の知識が必要ですが。




ともかく大枠としては↓みたいな。

直観を形式にしたものが「 M[φ] 」です。



なんか「基準(モデル) M 」があって、

「主張(文) φ 」が与えられて、

「真」にするか「偽」にするか迷うような感じ。




感覚的な「解釈」とそう違いは無いように感じます。

ですから、この形式的な表現で特に問題ないでしょう。

実際、今までこれで特に問題らしい問題は無かったので。






厳密な定義


形式としては、これは「帰納的に定義」されています。

ざっくり言えば「命題論理」を元に定義されてる感じです。

厳密に、数学的に扱いたいんで。




ともかく、まずは「定義」に必要な材料を並べてみましょうか。

ざっと用語について見てみましょう。






命題変数


P 」を、なにかを主張する『文』としておきます。

この「 P 」が命題変数です。

P 』を和訳すると「~は~だよ」「~は~です」みたいな。






真理値割り当て


記号「 M 」としておきます。

M[φ] 」は「真か偽」を出力します。






論理式


「命題変数」から作られた「式」として「 φ,ψ 」とします。

この「 φ,ψ 」がいわゆる論理式です。



その中身を、例えば 3 個のものから作られたなら、

A(P_1,P_2,P_3) 」と表します。






解釈の定義


大きく分けて4つ、それを分けて2ブロックで構成されてます。

繰り返しますが、あくまで「形式的な表現」であることに注意。




この構成をざっと説明すると、

「命題定数」についてと「命題変数」について。

「アリティ 1 の記号」についてと「アリティ 2 の記号」について。



分けてこの四つで、

「命題について」と「記号について」で二つです。






1. 「命題定数」と「命題変数」


つまり「原子命題・原子式」について。




1.1 「命題定数」について


原子式「 ⊤,⊥ 」(真もしくは偽)とすると、

M[⊤]=⊤,M[⊥]=⊥ 』であるとする。



(要は正しけりゃ正しくて、変なら変って言ってるだけ)




1.2 「命題変数」について


原子式「 P_i 」とすると( i は変数じゃなくて添え字)

M[P_i] 』は、P_i の「真理値割り当て M 」が決める、

「値(真か偽)」である。



(要は『解釈』は『モデル』によって決まるってこと)




「 解釈 閉論理式 」となってしまうことを覚えておきましょう。

(真偽が確定するので)






2. 「論理式」と「命題記号」について


当然に感じられることを決めています。

(真理値を見れば明らか)




2.1 「否定」の「記号」について(アリティ 1 の記号)


論理式を「 φ 」とすると、

M[¬φ]=¬M[φ] 』である。



(要は「真偽の入れ替え」なので、直観的に納得できます)




2.2 「結合」の「記号」について(アリティ 2 の記号)


論理式を「 φ,ψ 」とすると、


M[φ∧ψ]=M[φ]∧M[ψ]

M[φ∨ψ]=M[φ]∨M[ψ]

M[φ→ψ]=M[φ]→M[ψ]

M[φ↔ψ]=M[φ]↔M[ψ]




以上が『解釈の形式的な表現』になります。

どれも特別なことを言ってるわけではありませんので、

単にこういう感じだと思っておけば良い感じです。







まとめ


「真理値割り当て M 」が「論理式」の「モデル」である。

もしくは「真理値割り当て」が「論理式」を「充足する」とは、

どういうことか整理してみます。




これを意訳すると↓のようなことを言ってます。



命題変数「 P_1 」に、真理値「 M[P_1] 」を割り当てる。

命題変数「 P_2 」に、真理値「 M[P_2] 」を割り当てる。

命題変数「 P_n 」に、真理値「 M[P_n] 」を割り当てる。



こうすると、論理式「 A(P_1,P_2,...,P_n) 」の、

『真理値』が「真になる」ということ。




要は「その論理式のモデル」なら、

「そのモデルでは、その論理式は正しいよ」ってことです。




もっとふわっといくなら、

「その中じゃ、正しいってことにしました(根拠なし)」みたいな。






「正しい」じゃなくて「間違ってる」じゃいけないのか?

となると思うので、ちょっとこれについても話します。



「正しい」ことにする理由というのは、当然あります。

というのも、「正しい」と「正しくない」の二つは、

厳密には正反対ではないのです。




というのも、「正しくない」とは、

「確実に間違っている」ことを表すか、

「正しいかどうか分からない」ことを表しています。



ここで曲者なのが「分からないやつ」です。

これは「正しいかも間違ってるかも分からない」んです。




ですから、「とりあえず分かりやすい」から、

「正しいと分かる」ものと、

「分からないから偽にしておく」ものに分けるわけです。




つまり「間違っていることが分かる」なら、

単にこれを「否定」して「正しい」とできます。

なら、わざわざ二通りでやる理由も無いでしょう。







成果


この『モデル理論』で発見されたすげえのをざっくり紹介します。



『集合論』の知識やらなんやらがいるので説明は省きますが、

その一つが『レーヴェンハイム・スコーレムの定理』です(別記事で)

他にも『コンパクト性定理』なんかがあります(これも別記事)