2014 年度 情報論理学 第 9 回講義 2014 年 6 月 24 日 (火) 青戸等人 (東北大学 電気通信研究所) 目次 - 変数の自由出現と 束縛出現 - 代入と 代入の記法 - 述語論理式に対す る 代入 量化子と そ のス コ ープ 定義 1. ∀ x や ∃ x を 量化子と い う . 述語論理式に ∀ xA や ∃ xA の形が含ま れる と き , A の部分を 量化子 ∀ x や ∃ x のス コ ープと よ ぶ. 例. 述語論理式 ∀x (∀y P(x, y) ∧ Q(x)) を 考え る . こ の述語論 理式には, ∀x と ∀y の 2 つの量化子が出現する . ∀x のスコ ー プは, ∀y P(x, y) ∧ Q(x). ∀y のス コ ープは, P(x, y). 例. 述語論理式 ∀x (∀x P(x) ∧ ∀x Q(x) ∧ R(x)) を 考え る . こ の述語論理式には, 量化子 ∀x が 3 箇所に出現す る . そ のス コ ープは左から 順に, ∀x P(x) ∧ ∀x Q(x) ∧ R(x), P(x), Q(x). 1 変数の束縛出現と 自由出現 定義 2. 変数 x の原子論理式に お け る 出現が量化子 ∀ x や ∃ x のスコ ープに入っ て いないと き , そ の出現を 自由出現と よ び, 量化子 ∀ x や ∃ x のス コ ープに入っ て いる と き , そ の 出現を 束縛出現と よ ぶ. 例. 述語論理式 ∀x P(x, y) において , 変数 x の出現は束縛出 現, 変数 y の出現は自由出現. 例. 述語論理式 ∀x (∀y P(x, y) ∧ Q(x, y)) を 考え る . P(x, y) に 現われる 変数 x, y の出現は束縛出現. Q(x, y) に現われる 変数 x, y の出現について は, 変数 x の方は束縛出現だが, 変数 y の方は自由出現. 2 述語論理式に含ま れる 自由変数の集合 自由出現を も つ変数を 自由変数と よ ぶ. 定義 3. A を 述語論理式と す る と き , A に 含ま れる 自由変 数集合 FV(A) を 以下のよ う に定義す る . FV(A) = S V(ti) (A = P (t1, . . . , tn) のと き ) 1≤i≤n V(s) ∪ V(t) (A = s ≈ t のと き ) ∅ (A ∈ {⊥, ⊤} のと き ) FV(B) (A = ¬B のと き ) FV(B) ∪ FV(C) (A = B ◦ C, ◦ ∈ {∧, ∨, →} のと き ) FV(B) \ {x} (A = QxB, Q ∈ {∀, ∃} のと き ) V(t) は項 t に含ま れる 変数集合を 表わす こ と に注意. 3 例. 述語論理式 A = ∀y (x ≈ y ∧ P(y, z)) を 考え る . こ のと き , FV(A) = {x, z}. つま り , 自由変数は x と z. 例. 述語論理式 A = ∀y (x ≈ y) ∧ P(x, y) を 考え る . こ のと き , FV(A) = {x, y}. (左側の y は束縛出現だが, 右側の y は自由出現である こ と に注意. ) 演習 4. 以下を 求めよ . (1) FV(f(x) ≈ g(x, y)) (2) FV(∀x ∀y P(f(x), g(y, z))) (3) FV(∀y (x + y ≤ 10) ∧ ∀x P(x, y)) 4 (解答) (1) FV(f(x) ≈ g(x, y)) = V(f(x)) ∪ V(g(x, y)) = V(x) ∪ (V(x) ∪ V(y)) = {x, y} (2) FV(∀x ∀y P(f(x), g(y, z))) = FV(∀y P(f(x), g(y, z))) \ {x} = (FV(P(f(x), g(y, z))) \ {y}) \ {x} = ({x, y, z} \ {y}) \ {x} = {z} (3) FV(∀y (x + y ≤ 10) ∧ ∀x P(x, y)) = FV(∀y (x + y ≤ 10)) ∪ FV(∀x P(x, y)) = (FV(x + y ≤ 10) \ {y}) ∪ (FV(P(x, y)) \ {x}) = ((V(x + y) ∪ V(10)) \ {y}) ∪ ((V(x) ∪ V(y)) \ {x}) = (((V(x) ∪ V(y)) ∪ ∅) \ {y}) ∪ ({x, y} \ {x}) = ({x, y} \ {y}) ∪ ({x, y} \ {x}) = {x} ∪ {y} = {x, y} 5 述語論理式の解釈と 自由変数 自由変数に関連し て , 述語論理式の解釈は以下のよ う な 性質を も つ. 証明は付録に示す. 補題 5. M を L-構造, v, v ′ を M 上の付値と す る . (1) 任意の変数 x ∈ V(t) について v(x) = v ′(x) が成立す る と き , [[t]]v = [[t]]v′ . (2) 任意の自由変数 x ∈ FV(A) について v(x) = v ′(x) が 成立す る と き , [[A]]v = [[A]]v′ . つま り , 異なる 付値であっ て も , 自由に出現す る 変数に ついて の値が等し ければ, 述語論理式の解釈は等し く なる . 6 束縛の導入・ 消去 自由変数集合を 利用し た次の同値式が成立す る . 束縛の導入・ 消去 (x ∈ / FV(C) と す る ) ∀x C ∼ ∃x C ∼ = C, =C 例. ∀y P(x) ∼ = P(x) ∀y ∀x P(x) ∼ = ∀x P(x) ∃y (∀x P(x) ∧ ∀y Q(y)) ∼ = ∀x P(x) ∧ ∀y Q(y) 7 (証明) ∀x C ∼ / FV(C) と す る ) = C (x ∈ C を シ グ ニチャ L 上の述語論理式と し , x ∈ / FV(C) と す る . こ のと き , 任意の L-構造 M と , L-構造 M への任意の付値 v について , [[∀x C]]v = [[C]]v と なる こ と を 示せばよ い. 条件 x ∈ / FV(C) から , 補題 5(2) よ り , [[C]]v[a/x] = [[C]]v が 成立す る こ と に注意す る と , [[∀x C]]v = T ⇔ 任意の a ∈ |M| について ,[[C]]v[a/x] = T ⇔ 任意の a ∈ |M| について ,[[C]]v = T ⇔ [[C]]v = T よ っ て , [[∀x C]]v = [[C]]v . ∃x C ∼ = C . 省略. 8 変数の束縛 定義 6. 変数 x の A に お け る 自由出現は, ∀ x A や ∃ x A に おいて , 量化子 ∀ x や ∃ x によ っ て 束縛さ れる と いう . “束縛さ れて いる ” と いう 関係 (束縛関係) を 矢印で表わし て みる . 例. ∀y (∀x Q(x, y) ∧ Q(x, y)) 変数 x のど ん な束縛出現も , あ る 量化子 ∀ x や ∃ x のス コ ープにある が, そ の出現を ス コ ープにも つ量化子の中で 1 番内側の ∀ x A や ∃ x A を 考え る と , A で変数 x は自由に出 現し て いる はず. 従っ て , ど んな束縛出現も , ある 量化子に よ り 束縛さ れて いる . 9 例. ∀x (∀x P(x) → ∃x R(x) → Q(x)) 先頭の ∀x によ り 束縛さ れて いる のは, ∀x P(x) → ∃x R(x) → Q(x) で自由な出現のみ. つま り , Q(x) の x のみ. 逆に , 出現す る 変数の方から 見る と , 1 番近い量化子に 束縛さ れる . 演習 7. 次の述語論理式におけ る 束縛関係を 図示せよ . ∀y (∀x (x + y ≥ 0) → ∀x (|x + y| ≈ x + y)) 10 (解答) ∀y (∀x (x + y ≥ 0) → ∀x (|x + y| ≈ x + y)) 11 束縛変数の名前替え 自由変数でない変数を 束縛変数と よ ぶこ と がある . し か し , 変数の束縛出現では, ど こ に束縛さ れて いる かが重要 で, そ の変数が何かと いう こ と は重要でない. 従っ て , 量 化子 Q x と そ れに よ り 束縛さ れて いる 変数出現を 一斉に 他 の変数に置き かえ て も 論理的には同値である . こ の変数置 き 換え 操作を 束縛変数の名前替え と よ ぶ. 以下の述語論理式は全て 論理的に同値であり , 相互に変 換し て も よ い. ∀y (∀x (x + y ≥ 0) → ∀x (|x + y| ≈ x + y)) ∀z (∀x (x + z ≥ 0) → ∀x (|x + z| ≈ x + z)) ∀z (∀y (y + z ≥ 0) → ∀x (|x + z| ≈ x + z)) ∀z (∀y (y + z ≥ 0) → ∀y (|y + z| ≈ y + z)) 12 ∀y (∀x (x + y ≥ 0) → ∀x (|x + y| ≈ x + y)) ∀z (∀x (x + z ≥ 0) → ∀x (|x + z| ≈ x + z)) ∀z (∀y (y + z ≥ 0) → ∀x (|x + z| ≈ x + z)) ∀z (∀y (y + z ≥ 0) → ∀y (|y + z| ≈ y + z)) 13 束縛変数の名前替え の正し さ 補題 8. 項 t に お け る 変数 x の出現す べて を 変数 y ∈ / V(t) に 置き 替え て 得ら れる 項を t′ と お き , 述語論理式 A に お け る 変数 x の自由出現す べて を 変数 y ∈ / FV(A) に置き 替え て 得ら れる 述語論理式を A′ と おく . ま た, M を L-構造, v を M 上の付値と す る . (1) 任意の a ∈ |M| について , [[t]]v[a/x] = [[t′]]v[a/y]. (2) 任意の a ∈ |M| について , [[A]]v[a/x] = [[A′]]v[a/y]. (3) [[∀x A]]v = [[∀y A′]]v , [[∃x A]]v = [[∃y A′]]v . こ の補題から , 以下が導かれる . 定理 9. A を 述語論理式, A′ を A から 束縛変数の名前替え で得ら れる 述語論理式と す る . こ のと き , A ∼ = A′ . 14 目次 - 変数の自由出現と 束縛出現 - 代入と 代入の記法 - 述語論理式に対す る 代入 14 代入 定義 10. 変数集合 V から 項集合 T(F, V ) への関数を 代入と よ ぶ. 代入の例 1. +(xi−1, xi+1) −(xi) (i が奇数のと き ) (そ れ以外のと き ) −(0) σ(xi) = −(+(0, x0)) xi (i = 0 のと き ) (i = 1 のと き ) (そ れ以外のと き ) σ(xi) = 代入の例 2. 15 代入の準同型拡張 定義 11. σ を 代入と す る . σ を 項 t に 適用し た結果 σ(t) を 次のよ う に定義す る . σ(t) t ∈ V のと き σ(t) = f (σ(t1), . . . , σ(tn)) t = f (t1, . . . , tn) のと き 2 番目の場合分け は f が定数の場合も 含むこ と に注意. 演習 12. σ(xi) = +(xi−1, xi+1) xi (i が奇数のと き ) (そ れ以外のと き ) と す る と き , σ(+(−(x3), −(0))) を 計算せよ . 16 σ(xi) = +(xi−1, xi+1) xi (i が奇数のと き ) (そ れ以外のと き ) のと き , σ(+(−(x3), −(0))) = = = = = +(σ(−(x3)), σ(−(0))) +(−(σ(x3)), σ(−(0))) +(−(σ(x3)), −(σ(0))) +(−(+(x2, x4)), −(σ(0))) +(−(+(x2, x4)), −(0)) σ は, 項の変数の部分だけを σ で変更し , 残り はそ のま ま に す る よ う な関数になっ て いる . 17 代入の記法 代入が有限個の変数し か変更し ないと き , つま り , t1 (i = k1 のと き ) (i = k2 のと き ) t2 σ(xi) = .. ............. tm (i = km のと き ) x (そ れ以外のと き ) i (ただし , ti = 6 xki (1 ≤ i ≤ m)) と 書け る と き , こ の代入 σ を [xk1 := t1, xk2 := t2, . . . , xkm := tm] と 書く . 18 演習 13. σ = [x1 := +(x1, x2), x2 := −(x1)] と す る . こ の と き , 以下を 求めよ . (1) σ(−(−(0))) (2) σ(+(x1, x1)) (3) σ(+(x2, x3)) 19 (1) σ(−(−(0))) = −(σ(−(0))) = −(−(σ(0))) = −(−(0)) σ(0) = 0 と なる こ と に注意. (2) σ(+(x1, x1)) = +(σ(x1), σ(x1 )) = +(+(x1, x2), +(x1, x2)) x1 が 2 箇所あっ て も 定義通り に計算す ればよ い. σ(+(x2, x3)) = +(σ(x2), σ(x3 )) = +(−(x1), x3) x3:= は代入 [. . .] の中に現わないので, σ(x3) = x3 と なる こ と に注意 (3) 20 代入の制限 定義 14. σ を 代入, x を 変数と する と き , σ|x を 以下によ り 与え ら れる 代入と 定義す る : x (x = y のと き ) σ|x(y) = σ(y) (x 6= y のと き ) つま り , σ|x は, x 以外について , σ と 同じ よ う に代入す る . 例. σ = [x := a, y := b, z := c] と す る . こ のと き , σ|x(f(x, y, z)) = f(x, b, c) σ|y(f(x, y, z)) = f(a, y, c) σ|z(f(x, y, z)) = f(a, b, z) 21 目次 - 変数の自由出現と 束縛出現 - 代入と 代入の記法 - 述語論理式に対す る 代入 21 述語論理式に対す る 代入のア イ デア 代入を 述語論理式に適用する . 述語論理式に対する 代入 の適用は, 変数の自由な出現だけ を 項に置き かえ る . 例. σ = [x := s(y)] と す る . こ のと き , σ(x < 0 ∧ ∀x (x ∈ u)) = s(y) < 0 ∧ ∀x (x ∈ u) こ のよ う に, 束縛出現は代入によ り 置き 代わら ない. し かし , こ のア イ デア だけ で は問題があり , も う ひと 工夫 す る (次ページ ). 22 素朴な代入の問題点 代入さ れる 項に, 量化子のスコ ープにある 変数が存在す る と , 束縛関係を 破壊し て し ま う . 例 (誤り ). σ = [x := y + 1] と す る . こ のと き , σ(∀y (y ∈ u → x < y)) = ∀y (y ∈ u → y + 1 < y) と し て し ま う と , ∀y に対す る 束縛関係が変わっ て し ま う ! ∀y (y ∈ u → x < y) ∀y (y ∈ u → y + 1 < y) そ こ で, 束縛関係を 保存し て 代入を 行う ために次に説明 す る 便宜法を 用いる . 23 束縛変数の名前替え の便宜法 約束 15. [束縛変数の名前替え の便宜法] 述語論理式の 代 入において は, 代入す る 項にある 自由変数と 代入さ れる 項 にある 束縛変数が代入によ っ て 重なる 場合は, 代入の前に 束縛変数の名前替え を 行っ て 重なり を なく し た後, 代入を 行う . 正し い代入 σ = [x := y + 1] と す る . σ(∀y (y ∈ u → x < y)) = σ(∀z (z ∈ u → x < z)) = ∀z (z ∈ u → y + 1 < z) こ の約束に従え ば, 束縛関係は代入によ っ て 変わら ない. 24 述語論理式に対す る 代入 束縛変数の名前替え の便宜法のも と で, 代入の定義を 行 う. 定義 16. 述語論理式 A へ代入 σ を 行っ て 得ら れる 述語論理 式 σ(A) を 次のよ う に定義す る . σ(A) = P (σ(t1), . . . , σ(tn)) (σ(s) ≈ σ(t)) A (¬σ(B)) (σ(B) ◦ σ(C)) (Qxσ| (B)) x (A = P (t1, . . . , tn) のと き ) (A = (s ≈ t) のと き ) (A ∈ {⊥, ⊤} のと き ) (A = ¬B のと き ) (A = (B ◦ C), ◦ ∈ {∧, ∨, →} のと き ) (A = (QxB), Q ∈ {∀, ∃} のと き ) 25 代入の制限 |x を 用いる こ と によ り , 変数の束縛出現は代 入によ っ て 置き 換わら ないこ と に注意. 例. σ = [x := s(y)] と す る . = = = = = = σ(∀y (x ≈ y × x) ∧ ∀x (x ≈ y + 0)) σ(∀y (x ≈ y × x))∧σ(∀x (x ≈ y + 0)) σ(∀w (x ≈ w × x))∧σ(∀x (x ≈ y + 0)) (束縛変数の名前替え ) ∀w (σ|w(x ≈ w × x))∧σ(∀x (x ≈ y + 0)) ∀w (s(y) ≈ w × s(y))∧σ(∀x (x ≈ y + 0)) ∀w (s(y) ≈ w × s(y))∧∀x (σ|x(x ≈ y + 0)) ∀w (s(y) ≈ w × s(y))∧∀x (x ≈ y + 0) 定義 16 自体には記述さ れて いないが, 束縛変数の名前替 え を 用いる こ と に注意. 26 演習 17. 以下で与え ら れる σ に対し て σ(∀z(x×z ≈ y×z)) を 計算せよ . (1) σ = [x := 0], (2) σ = [u := 0], (3) σ = [z := 0], (4) σ = [x := z]. 27 解. (1) (2) (3) (4) ∀z (0 × z ≈ y × z) ∀z (x × z ≈ y × z) ∀z (x × z ≈ y × z) ∀w (z × w ≈ y × w) (4) は,「 束縛変数の名前替え の便宜法」 によ り , 代入を 行う 前に, 束縛変数の名前替え を 行う 必要がある . 名前替 え に用いる 変数は, z, y 以外なら , w でなく て も よ い. 28 述語論理式の解釈と 代入 代入に関連し て , 述語論理式の解釈は以下のよ う な性質 を も つ. 証明は付録に示す. 補題 18. s を シ グニチャ L 上の項, x を 変数, v を L-構造 M への付値と す る . (1) 任意の項 t について , [[[x := s]t]]v = [[t]]v[[[s]]v /x]. (2) 任意の述語論理式 A について , [[[x := s]A]]v = [[A]]v[[[s]]v /x]. 29 代入と 全称/存在 代入を 用いた次の恒真式が成立す る . 代入と 全称/存在 ∀x A → [x := t](A), [x := t](A) → ∃x A (証明) ∀x A → [x := t](A) A を シ グ ニチャ L 上の述語論理式と す る . M を 任意の L-構 造, v を L-構造 M への任意の付値と し , [[∀x A]]v = T と 仮 定す る . 解釈の定義から , 任意の a ∈ |M| について , [[A]]v[a/x] = T. 従っ て , [[t]]v ∈ |M| である から , [[A]]v[[[t]]v /x] = T. 30 こ こ で, 補題 18(2) よ り , [[[x := t]A]]v = [[A]]v[[[t]]v /x] である から , [[[x := t]A]]v = T. [x := t](A) → ∃x A A を シ グニチャ L 上の述語論理式する . M を 任意の L-構造, v を L-構造 M への任意の付値と し , [[[x := t]A]]v = T と 仮 定す る . 補題 18(2) よ り , [[[x := t]A]]v = [[A]]v[[[t]]v /x] で あ る から , [[A]]v[[[t]]v /x] = T. よ っ て , [[t]]v ∈ |M| で あ る から , あ る a ∈ |M| が存在し て [[A]]v[a/x] = T. 従っ て , [[∃A]]v = T. 31 ∀x A → [x := t](A) の逆向き の含意, つま り , [x := t](A) → ∀x A は一般には成立し ない. 演習 19. シ グ ニチャ を h{a0}, {P1}i と す る と き , P(a) → ∀x P(x) の反例を 与え よ . 同様に , [x := t](A) → ∃x A の逆向き の含意, つま り , ∃x A → [x := t](A) は一般には成立し ない. 演習 20. シ グニチャ を h{a0}, {P1}i と する と き , ∃ xP(x) → P(a) の反例を 与え よ . 32 全称一般化 ∀x A → [x := t](A) の特殊形である ∀x A → A も , 一般 には成立し ない. し かし , 次の命題は成立す る . 定理 21. 任意の述語論理式 A と 任意の変数 x について , A が恒真であれば, ∀x A も 恒真. (証明) A を 恒真な述語論理式と す る . す る と , 定義よ り , 任意の L-構造 M, L-構造 M への任意の付値 v に つい て , [[A]]v = T. 従っ て , 特に , 任意の a ∈ |M| に つい て , [[A]]v[a/x] = T. よ っ て , 定義から , [[∀x A]]v = T. よ っ て , 任意の L-構造 M について , [[∀x A]]M = T と なる . ゆえ に, ∀x A は恒真. 33 まとめ • 変数の自由出現と 束縛出現 自由変数集合 束縛関係と 束縛変数の名前替え • 述語論理式におけ る 代入 代入は自由変数のみを 置き 換え る 束縛変数の名前替え の便宜法 連絡: 7 月 15,22 日は休講, 期末試験は 7 月 29 日の予定です. 34 (補題 5 の証明) (1) t に関する 帰納法で, 任意の x ∈ V(t) に ついて v(x) = v ′(x) なら ば, [[t]]v = [[t]]v′ と なる こ と を 示す. t = x ∈ V の場合. こ のと き , V(t) = {x} である から , 仮定よ り , [[t]]v = v(x) = v ′(x) = [[t]]v′ . t = f (t1, . . . , tn) の場合. Sn こ のと き , 定義から V(t) = i=1 V(ti). よ っ て , 1 ≤ i ≤ n と する と き , V(ti) ⊆ V(t). 従っ て , 仮定 よ り , 任意の x ∈ V(ti) について v(x) = v ′(x). よ っ て , 帰 納法の仮定から , [[ti]]v = [[ti]]v′ が成立す る . 以上よ り , [[f (t1, . . . , tn)]]v = f M([[t1]]v , . . . , [[tn]]v ) = f M([[t1]]v′ , . . . , [[tn]]v′ ) = [[f (t1, . . . , tn)]]v′ 35 (2) 述語論理式 A に関す る 帰納法で, 任意の x ∈ FV(A) に ついて v(x) = v ′(x) なら ば [[A]]v = [[A]]v′ と なる こ と を 示す. A = P (t1, . . . , tn) の場合. Sn こ のと き , 定義から FV(A) = i=1 V(ti). よっ て , 仮定よ り , 任意の x ∈ V(ti) について , v(x) = v ′(x). 従っ て , (1) から , [[ti]]v = [[ti]]v′ . よ っ て, [[P (t1, . . . , tn)]]v = T ⇔ h[[t1]]v , . . . , [[tn]]v i ∈ P M ⇔ h[[t1]]v′ , . . . , [[tn]]v′ i ∈ P M ⇔ [[P (t1, . . . , tn)]]v′ = T よ っ て , 解釈の取り 得る 値は T, F である から , [[P (t1, . . . , tn)]]v = [[P (t1, . . . , tn)]]v′ . A = s ≈ t の場合. 省略 36 A ∈ {⊥, ⊤}, A = ¬B の場合. 省略 A = B ∧ C の場合. こ のと き , 定義から , FV(A) = FV(B) ∪ FV(C). よって , 仮定よ り , 任意の x ∈ FV(B) について v(x) = v ′(x), ま た, 任意の x ∈ FV(C) について v(x) = v ′(x). よ っ て , 帰納法の仮定よ り , [[B]]v = [[B]]v′ かつ [[C]]v] = [[C]]v . よ っ て, [[B ∧ C]]v = T ⇔ [[B]]v = T かつ [[C]]v = T ⇔ [[B]]v′ = T かつ [[C]]v′ = T ⇔ [[B ∧ C]]v′ = T よ っ て , 解釈の取り 得る 値は T, F である から , [[B ∧ C]]v = [[B ∧ C]]v′ . 37 A = B ∨ C , A = B → C の場合. 省略. A = ∀y B の場合. こ のと き , 定義から FV(A) = FV(B) \ {y}. よ っ て , 仮定よ り , 任意の x ∈ FV(B) と 任意の a ∈ |M| に ついて , v[a/y] = v ′[a/y] が成立す る . よ っ て , 帰納法の仮 定よ り , [[B]]v[a/y] = [[B]]v′[a/y]. 従っ て , [[∀y B]]v = T ⇔ 任意の a ∈ |M| について ,[[B]]v[a/y] = T ⇔ 任意の a ∈ |M| について ,[[B]]v′[a/y] = T ⇔ [[∀y B]]v′ = T よ っ て , 解釈の取り 得る 値は T, F で ある から , [[∀x B]]v = [[∀x B]]v′ . A = ∃y B の場合. 省略. 38 (補題 8 の証明) (1) t に関する 帰納法で, [[t]]v[a/x] = [[t′]]v[a/y] と なる こ と を 示す. t が変数の場合. t = x の場合は, [[t]]v[a/x] = a = [[t′]]v[a/y] よ り 明ら か. t = y の場合は, y ∈ V(y) と なる から 仮定に矛盾. t = z ∈ / {x, y} の場合は, [[t]]v[a/x] = v(z) = [[t′]]v[a/y] よ り 明ら か. t = f (t1, . . . , tn) の場合. こ のと き , 項 ti における 変数 x の出現すべて を 変数 y に置き 替え て 得ら れる 項を t′i と す る と , t = f (t′1, . . . , t′n) と お け, 帰納法の仮定よ り [[ti]]v[a/x] = [[t′i]]v[a/y] が成立する . よ っ て , [[f (t1, . . . , tn)]]v[a/x] = f M([[t1]]v[a/x] , . . . , [[tn]]v[a/x] ) = f M([[t′1]]v[a/y], . . . , [[t′n]]v[a/y]) = [[f (t′1, . . . , t′n)]]v[a/y] 39 (2) 述語論理式 A に 関す る 帰納法で , 任意の付値 v に つい て , [[A]]v[a/x] = [[A′]]v[a/y] と なる こ と を 示す. A = P (t1, . . . , tn) の場合. こ のと き , 項 ti における 変数 x の出現すべて を 変数 y に置き 替え て 得ら れる 項を t′i と する と , A′ = P (t′1, . . . , t′n) と おけ, (1) から , [[ti]]v[a/x] = [[t′i]]v[a/y]. よ っ て, [[P (t1, . . . , tn)]]v[a/x] = T ⇔ h[[t1]]v[a/x] , . . . , [[tn]]v[a/x] i ∈ P M ⇔ h[[t′1]]v[a/y], . . . , [[t′n]]v[a/y]i ∈ P M ⇔ [[P (t′1, . . . , t′n)]]v[a/y] = T よ っ て , 解釈の取り 得る 値は T, F である から , [[P (t1, . . . , tn)]]v = [[P (t1, . . . , tn)]]v′ . A = s ≈ t の場合. 省略 40 A ∈ {⊥, ⊤}, A = ¬B の場合. 省略 A = B ∧ C の場合. こ のと き , B お よ び C に お け る 変数 x の自由出現す べて を 変数 y に 置き 替え て 得ら れる 項を そ れぞれ B ′, C ′ と す る と , A′ = B ′ ∧ C ′ と お け る . よ っ て , 帰納法の仮定よ り , [[B]]v[a/x] = [[B ′]]v[a/y] かつ [[C]]v[a/x] = [[C ′]]v[a/y] . よ っ て, [[B ∧ C]]v[a/x] = T ⇔ [[B]]v[a/x] = T かつ [[C]]v[a/x] = T ⇔ [[B ′]]v[a/y] = T かつ [[C ′]]v[a/y] = T ⇔ [[B ′ ∧ C ′]]v[a/y] = T よ っ て , 解釈の取り 得る 値は T, F である から , [[B ∧ C]]v[a/x] = [[B ′ ∧ C ′]]v[a/y]. A = B ∨ C , A = B → C の場合. 省略. 41 A = ∀z B の場合. x = z のと き は, A′ = A と なり 自明. y = z のと き は, y ∈ FV(A) に 矛盾. z ∈ / {x, y} のと き . こ のと き , B に お け る 変数 x の自由出現す べて を 変数 y に 置き 替 え て 得ら れる 項を そ れぞれ B ′ と す る と , A′ = ∀z B ′ と お け る . よ っ て , 帰納法の仮定よ り , 任意の b ∈ |M| に つ いて , [[B]]v[b/z][a/x] = [[B ′]]v[b/z][a/y] が成立す る . 従っ て , [[B]]v[a/x][b/z] = [[B ′]]v[a/y][b/z] が成立. 以上よ り , [[∀z B]]v[a/x] = T ⇔ 任意の b ∈ |M| について ,[[B]]v[a/x][b/z] = T ⇔ 任意の b ∈ |M| について ,[[B ′]]v[a/y][b/z] = T ⇔ [[∀z B ′]]v[a/y] = T よ っ て , [[∀x B]]v = [[∀x B]]v′ . A = ∃y B の場合. 省略. 42 (3) (2) よ り , 任意の a [[A′]]v[a/y]. よ っ て , ∈ |M| に つ い て [[A]]v[a/x] = [[∀x A]]v = T ⇔ 任意の a ∈ |M| について ,[[A]]v[a/x] = T ⇔ 任意の b ∈ |M| について ,[[A′]]v[a/y] = T ⇔ [[∀y A′]]v = T [[∃x A]]v = T ⇔ ある a ∈ |M| が存在し て ,[[A]]v[a/x] = T ⇔ ある a ∈ |M| が存在し て ,[[A′]]v[a/y] = T ⇔ [[∃y A′]]v = T よ っ て , [[∀x A]]v = [[∀y A′]]v およ び [[∃x A]]v = [[∃y A′]]v が成 立す る . 43 (定理 9 の証明) A′ を A から 束縛変数の名前替え で得ら れる 述語論理式と する と , A′ は, A から 補題 8 の操作を 何回か繰 り 返し て 得ら れる . よ っ て , 補題 8(3) と ∼ = の合同関係性か ら, A ∼ = A′ . 44 (補題 18 の証明) (1) t に 関す る 帰納法で , [[[x := s]t]]v = [[t]]v[[[s]]v /x] を 示す. t が変数の場合. t = x の場合. [[[x := s]x]]v = [[s]]v = v(x) = [[x]]v[[[s]]v /x] よ り 成立. t = y 6= x の場合. [[[x := s]y]]v = [[y]]v = v(y) = [[y]]v[[[s]]v /x] よ り 成立. t = f (t1, . . . , tn) の場合. こ のと き , 帰納法の仮定よ り , 任意の 1 ≤ i ≤ n について , [[[x := s]ti]]v = [[ti]]v[[[s]]v /x] が成立す る . 従っ て , 45 [[[x := s](f (t1, . . . , tn))]]v = [[f ([x := s](t1), . . . , [x := s](tn)]]v = f M([[[x := s](t1)]]v , . . . , [[[x := s](tn)]]v ) = f M([[t1]]v[[[s]]v /x], . . . , [[tn]]v[[[s]]v /x]) = [[f (t1, . . . , tn)]]v[[[s]]v /x] (2) 述語論理式 A に 関す る 帰納法で , [[[x := s]A]]v = [[A]]v[[[s]]v /x] と なる こ と を 示す. A = P (t1, . . . , tn) の場合. (1) よ り , [[[x := s]ti]]v = [[ti]]v[[[s]]v /x]. よ っ て, [[[x := s]A]]v = T ⇔ [[[x := s]P (t1, . . . , tn)]]v = T ⇔ [[P ([x := s]t1, . . . , [x := s]tn)]]v = T 46 ⇔ h[[[x := s]t1]]v , . . . , [[[x := s]tn]]v i ∈ P M ⇔ h[[t1]]v[[[s]]v /x], . . . , [[tn]]v[[[s]]v /x]i ∈ P M ⇔ [[P (t1, . . . , tn)]]v[[[s]]v /x] = T よ っ て , 解釈のと る 値は T, F である から , [[[x := s]ti]]v = [[ti]]v[[[s]]v /x]. A = s ≈ t の場合. 省略 A ∈ {⊥, ⊤} の場合. 省略 A = ¬B の場合. 帰納法の仮定よ り , [[[x := s]B]]v = [[B]]v[[[s]]v /x]. よ っ て, [[[x := s]¬B]]v = T ⇔ [[[x := s]B]]v = F ⇔ [[B]]v[[[s]]v /x] = F ⇔ [[¬B]]v[[[s]]v /x] = T. よ っ て , 解釈のと る 値は T, F である から , [[[x := s]A]]v = [[A]]v[[[s]]v /x]. 47 A = B ∧ C , A = B ∨ C , A = B ∧ C の場合. 省略. A = ∀y B の場合. x = y の場合. こ のと き , 解釈の定義から , [[[x := s](∀x B)]]v = [[∀x B]]v . こ こ で, x ∈ / FV(∀x B) である こ と から , 補題 5(2) よ り , [[∀x B]]v = [[∀x B]]v[[[s]]v /x]. よ っ て , [[[x := s]∀x B]]v = [[∀x B]]v[[[s]]v /x]. x 6= y の場合. こ のと き , [[[x := s]∀y B]]v = [[∀y [x := s]B]]v . よ っ て, [[[x := s]∀y B]]v = T ⇔ [[∀y [x := s]B]]v = T ⇔ 任意の a ∈ |M| について , [[[x := s]B]]v[a/y] = T こ こ で, b = [[s]]v[a/y] と おく と , 48 帰納法の仮定よ り , [[[x := s]B]]v[a/y] = [[B]]v[a/y][b/x] . ま た, x 6= y よ り , [[B]]v[a/y][b/x] = [[B]]v[b/x][a/y] . 一方, 束縛変数の名前替え の便宜法よ り , y ∈ / V(s). よ っ て , 補題 5(2) よ り , b = [[s]]v[a/y] = [[s]]v . 以上よ り , 任意の a ∈ |M| について , [[[x := s]B]]v[a/y] = T ⇔ 任意の a ∈ |M| について , [[B]]v[a/y][b/x] = T ⇔ 任意の a ∈ |M| について , [[B]]v[b/x][a/y] = T ⇔ 任意の a ∈ |M| について , [[B]]v[[[s]]v /x][a/y] = T ⇔ [[∀y B]]v[[[s]]v /x] = T よ っ て , 解釈のと る 値は T, F である こ と から , [[[x := s]∀y B]]v = [[∀y B]]v[[[s]]v /x]. A = ∃y B の場合. 省略. 49
© Copyright 2024 ExpyDoc