2014年度情報論理学 第 9回講義

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