表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
エルフに数学を装備するだけ  作者: めいぜんおーえす
三章:一階述語論理
33/51

代入

2017/4/3

代入の定義を変更しました。

〇健全な研究室


さトぅー

「命題論理なら論理式を定義してすぐに論理的公理と推論規則の話ができた。

 でも、一階述語論理は代入と自由変数の話をしないと先に進めない」


エーリル

「代入は今まで使ってきたのじゃダメなの?」


さトぅー

「ダメってわけじゃないんだけど、今ならそれなりに定義できる。ちょっと準備がいるけどね」




■項tに含まれる変数の集まりtv(t)の定義

nを1以上の自然数(1,...)とする。


(1) tが定数記号 ならば tv(t):={}

(2) tが変数記号 ならば tv(t):={t}

(3) t = f(t_1,...,t_n)のとき、fが項数nの関数記号でt_1,...,t_nが項 ならば

 tv(t) := tv(t_1)∪...∪tv(t_n)

と定義し、tv(t)を項tに含まれる変数の集まり、と読むことにする。




エーリル

「{}や∪はわかるけど、:=ってなに?」


さトぅー

「:=の右側の記号列を使って、左側に右側と等しいって意味で記号列を定義するって意味」


エーリル

「へー、:⇔と似たような感じか。

 じゃあ、= はなに?」


さトぅー

「えっ、天々城から教えてもらってない?」


エーリル

「教えてもらってない」


さトぅー

「 = は『等しい』って意味の記号。

 一階述語論理だと項数2の関係記号なんだけど、今使った = はメタな記号ね」


エーリル

「使い方よくわからないから、例がほしい」


さトぅー

「いいわよ」




■例

耳,鼻:定数記号

y_1:変数記号

長い:項数1の関数記号

混ぜた:項数2の関数記号


・tv(耳)

 = {} [tvの定義(1)]


・tv(y_1)

 = {y_1} [tvの定義(2)]


・tv(長い(耳))

 = tv(耳) [tvの定義(3)]

 = {} [tvの定義(1)]


・tv(混ぜた(y_1,長い(耳)))

 = tv(y_1)∪tv(長い(耳)) [tvの定義(3)]

 = {y_1}∪{} [tvの定義(2)とtv(長い(耳))={}]

 = {y_1} [集まりの中身を合わせた]




エーリル

「あ、なるほど。

 等しいものを論理式みたいに並べて、ゴールまで行く感じか」


さトぅー

「そんな感じ。

 とりあえず、これで代入の準備ができた」




■代入[ / ]の定義


tは項、xは変数記号、nを1以上の自然数(1,...)とする。


(1) cが定数記号 ならば (c[t/x]) := c


(2) (x[t/x]) := t


(3) yが変数記号でx = yでないならば (y[t/x]) := y


(4) fが項数nの関数記号でt_1,...,t_nが項 ならば

 (f(t_1,...,t_n)[t/x]) := f((t_1[t/x]),...,(t_n[t/x]))


(5) Rが項数nの関係記号でt_1,...,t_nが項 ならば

 (R(t_1,...,t_n)[t/x]) := R((t_1[t/x]),...,(t_n[t/x]))


φ,ψは論理式とする。


(6) ((φ⇒ψ)[t/x]) := ((φ[t/x])⇒(ψ[t/x]))


(7) ((¬φ)[t/x]) := (¬(φ[t/x]))


(8) 変数記号yがx = yでない かつ tv(t)に含まれない ならば

  ((∀y φ)[t/x]) := (∀y (φ[t/x]))


(9) 変数記号yがx = y または tv(t)に含まれる ならば

  ((∀y φ)[t/x]) := (∀y φ)




エーリル

「(9)まであるんだけど……」


さトぅー

「とりあえず、例をあげていくわ」



■例

耳,鼻:定数記号

y_1,x_0,z:変数記号

長い:項数1の関数記号

混ぜた:項数2の関数記号


・((耳)[鼻/y_1])

 = 耳 [代入の定義(1)]


・((y_1)[鼻/y_1])

 = 鼻 [代入の定義(2)]


・(x_0[鼻/y_1])

 =x_0 [代入の定義(3)]


・(長い(y_1)[鼻/y_1])

 = 長い((y_1[鼻/y_1])) [代入の定義(4)]

 = 長い(鼻) [代入の定義(2)]


・(混ぜた(y_1,長い(耳))[鼻/y_1])

 = 混ぜた((y_1[鼻/y_1]),(長い(耳)[鼻/y_1])) [代入の定義(5)]

 = 混ぜた(鼻,長い((耳[鼻/y_1]))) [代入の定義(2),(4)]

 = 混ぜた(鼻,長い(耳)) [代入の定義(1)]



・((混ぜた(y_1,長い(耳))⇒混ぜた(y_1,長い(耳)))[鼻/y_1])


 = ((混ぜた(y_1,長い(耳))[鼻/y_1])⇒(混ぜた(y_1,長い(耳))[鼻/y_1]))

[代入の定義(6)]


 = (混ぜた(鼻,長い(耳))⇒混ぜた(鼻,長い(耳)))

 [(混ぜた(y_1,長い(耳))[鼻/y_1]) = 混ぜた(鼻,長い(耳)を2回使う] 



・((¬混ぜた(y_1,長い(耳)))[鼻/y_1])

 = (¬(混ぜた(y_1,長い(耳))[鼻/y_1])) [代入の定義(7)]

 = (¬混ぜた(鼻,長い(耳)))

 [(混ぜた(y_1,長い(耳))[鼻/y_1]) = 混ぜた(鼻,長い(耳)を使う]



・((∀x_0 混ぜた(y_1,長い(耳)))[鼻/y_1])

 = (∀x_0 (混ぜた(y_1,長い(耳))[鼻/y_1])) [代入の定義(8)]

 = (∀x_0 混ぜた(鼻,長い(耳)))

 [(混ぜた(y_1,長い(耳))[鼻/y_1]) = 混ぜた(鼻,長い(耳)を使う]



・((∀y_1 混ぜた(y_1,長い(耳)))[鼻/y_1])

 = (∀y_1 混ぜた(y_1,長い(耳))) [代入の定義(9)]




エーリル

「あれ、(9)って代入してないよね。

 文字列そのままだし」


さトぅー

「(9)のときに論理式の文字を入れ替えると、大変なことになるの。

 今はわからないと思うから、道具が揃ったら見せてあげる」


エーリル

「楽しみー」

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ