“Lambda-Calculus and Combinators: An Introduction”メモ(その3)

Lemma 1.16

$1.12(g)$ is never used in the substitunion.

Lemma 1.16(a)

$\mbox{(a) } [P/v][v/x]M ≡ [P/x]M \mbox{ if } v \notin FV(M);$

$1.12$ をあてはめます。

$\begin{array} & \mbox{(1) } M=x \mbox{ の時 (1.12(a))} \\ \mbox{左辺 } [P/v][v/x]x = [P/v]v = P \\ \mbox{右辺 } [P/x]x = P \\ \therefore \mbox{(1)の時、左辺 ≡ 右辺} \\ \mbox{(2) } M=a \mbox{ の時 (1.12(b)) } \\ \mbox{左辺 } [P/v][v/x]a = [P/v]a = a \\ \mbox{右辺 } [P/x]a = a \\ \therefore \mbox{(2)の時、左辺 ≡ 右辺} \\ \mbox{(3) } M=(RS) \mbox{ の時 (1.12(c))} \\ \mbox{左辺 } [P/v][v/x](RS) = [P/v]([v/x]R [v/x]S) \\ = ([P/v][v/x]R [P/v][v/x]S) \\ \mbox{;; ここで帰納法により } \\ \mbox{;; } [Z/w][w/u]N ≡ [Z/u]N \\ \mbox{;; が正しいと仮定して以下を導きます} \\ = ([P/x]R \, [P/x]S) \\ \mbox{右辺 } [P/x](RS) = ([P/x]R \, [P/x]S) \\ \therefore \mbox{(3)の時、左辺 ≡ 右辺} \\ \mbox{(4) } M=λx.L \mbox{ の時 (1.12(d))} \\ \mbox{左辺 } [P/v][v/x](λx.L) = [P/v](λx.L) \\ \mbox{;; ここで条件 } v \notin FV(M) \mbox{ より} \\ \mbox{;; } v \notin FV(λx.L) \Rightarrow v \notin FV(L) \mbox{ だから } \\ = λx.L \\ \mbox{右辺 } [P/x](λx.L) = λx.L \\ \therefore \mbox{(4)の時、左辺 ≡ 右辺} \\ \mbox{(5) } M=λy.L, \; x \notin FV(L) \mbox{ の時 (1.12(e))} \\ \mbox{左辺 } [P/v][v/x](λy.L) = [P/v](λy.L) \\ \mbox{;; ここで条件 } v \notin FV(M) \mbox{ より} \\ \mbox{;; } v \notin FV(λy.L) \Rightarrow v \notin FV(L) \mbox{ だから } \\ = λy.L \\ \mbox{右辺 } [P/x](λy.L) = λy.L \\ \therefore \mbox{(5)の時、左辺 ≡ 右辺} \\ \mbox{(6) } M=λy.L, \; x \in FV(L) \mbox{ and } y ≠ x \mbox{ (1.12(f)) では} \\ \mbox{;; “and let no variable bound in M be free in vPQ.” つまり} \\ \mbox{;; } y \notin FV(vPQ) \mbox{ より} \\ \mbox{;; 特に } y \notin FV(PQ) \mbox{ より} \\ \mbox{左辺 } [P/v][v/x](λy.L) = [P/v](λy.[v/x]L) = λy.[P/v][v/x]L \\ \mbox{;; ここで帰納法により } \\ \mbox{;; } [Z/w][w/u]N ≡ [Z/u]N \\ \mbox{;; が正しいと仮定して以下を導きます} \\ = λy.[P/x]L \\ \mbox{右辺 } [P/x](λy.L) \\ \mbox{;; (6)の左辺と同様に} \\ \mbox{;; “and let no variable bound in M be free in vPQ.” つまり} \\ \mbox{;; } y \notin FV(vPQ) \mbox{ より} \\ = λy.[P/x]L \\ \therefore \mbox{(6)の時、左辺 ≡ 右辺} \\ \mbox{(1) 〜 (6) より } [P/v][v/x]M ≡ [P/x]M \mbox{ if } v \notin FV(M). \end{array}$

Lemma 1.16(b)

$\mbox{(b) } [x/v][v/x]M ≡ M \mbox{ if } v \notin FV(M);$

Part $(b)$ follows from $(a)$ and $1.15(a)$

$\begin{array} & \mbox{(a) より} \\ \mbox{左辺 } [x/v][v/x]M = [x/x]M \\ \mbox{1.15(a) より } [x/x]M ≡ M \mbox{ だから} \\ = M \\ \therefore \mbox{左辺 ≡ 右辺 なので} \\ [x/v][v/x]M ≡ M \mbox{ if } v \notin FV(M);. \end{array}$

Lemma 1.16(c)

$\mbox{(c) } [P/x][Q/y]M ≡ [([P/x]Q)/y][P/x]M \mbox{ if } y \notin FV(P);$

$1.12$ をあてはめます。

$\begin{array} & \mbox{(1) } M=x \mbox{ の時 (1.12(a))} \\ \mbox{左辺 } [P/x][Q/y]x = [P/x]x = P \\ \mbox{右辺 } [([P/x]Q)/y][P/x]x = [([P/x]Q)/y]P \\ \mbox{;; ここで } y \notin FV(P) \mbox{ なので } \\ = P \\ \therefore \mbox{(1)の時、左辺 ≡ 右辺} \\ \mbox{(1)' } M=y \mbox{ の時 (1.12(a))} \\ \mbox{左辺 } [P/x][Q/y]y = [P/x]Q \\ \mbox{右辺 } [([P/x]Q)/y][P/x]y = [([P/x]Q)/y]y = [P/x]Q \\ \therefore \mbox{(1)'の時、左辺 ≡ 右辺} \\ \mbox{(2) } M=a \mbox{ の時 (1.12(b))} \\ \mbox{左辺 } [P/x][Q/y]a = [P/x]a = a \\ \mbox{右辺 } [([P/x]Q)/y][P/x]a = [([P/x]Q)/y]a = a \\ \therefore \mbox{(2)の時、左辺 ≡ 右辺} \\ \mbox{(3) } M=(RS) \mbox{ の時 (1.12(c))} \\ \mbox{左辺 } [P/x][Q/y](RS) = [P/x]([Q/y]R [Q/y]S) \\ = ([P/x][Q/y]R \, [P/x][Q/y]S) \\ \mbox{;; ここで帰納法により } \\ \mbox{;; } [V/w][Z/u]N ≡ [([V/w]Z)/u][V/w]N \mbox{ if } u \notin FV(V); \\ \mbox{;; が正しいと仮定して以下を導きます} \\ = ([([P/x]Q)/y][P/x]R \, [([P/x]Q)/y][P/x]S) \\ \mbox{右辺 } [([P/x]Q)/y][P/x](RS) = [([P/x]Q)/y]([P/x]R [P/x]S) \\ = ([([P/x]Q)/y][P/x]R \, [([P/x]Q)/y][P/x]S) \\ \therefore \mbox{(3)の時、左辺 ≡ 右辺} \\ \mbox{(4) } M=λx.L \mbox{ の時 (1.12(d), 1.12(f))} \\ \mbox{左辺 } [P/x][Q/y](λx.L) \\ \mbox{;; 1.12(f) より} \\ = [P/x](λx.[Q/y]L) \\ \mbox{;; 1.12(d) より} \\ = λx.[Q/y]L \\ \mbox{右辺 } [([P/x]Q)/y][P/x](λx.L) \\ \mbox{;; 1.12(d) より} \\ = [([P/x]Q)/y](λx.L) \\ \mbox{;; 1.12(f) より} \\ = λx.[([P/x]Q)/y]L \\ \mbox{;; ここで定義} \\ \mbox{;; “and let no variable bound in M be free in vPQ.” つまり} \\ \mbox{;; } x \notin FV(vPQ) \mbox{ 特に } x \notin FV(Q) \mbox{ より} \\ = λx.[Q/y]L \\ \therefore \mbox{(4)の時、左辺 ≡ 右辺} \\ \mbox{(4)' } M=λy.L \mbox{ の時 (1.12(d), 1.12(f))} \\ \mbox{左辺 } [P/x][Q/y](λy.L) \\ \mbox{;; 1.12(d) より} \\ = [P/x](λy.L) \\ \mbox{;; 1.12(f) より} \\ = λy.[P/x]L \\ \mbox{右辺 } [([P/x]Q)/y][P/x](λy.L) \\ \mbox{;; 1.12(f) より} \\ = [([P/x]Q)/y](λy.[P/x]L) \\ \mbox{;; 1.12(d) より} \\ = λy.[P/x]L \\ \therefore \mbox{(4)'の時、左辺 ≡ 右辺} \\ \mbox{(5) } M=λz.L, x \notin FV(L), y \notin FV(L) \mbox{ の時 (1.12(e)))} \\ \mbox{左辺 } [P/x][Q/y](λz.L) = λz.L \\ \mbox{右辺 } [([P/x]Q)/y][P/x](λz.L) = λz.L \\ \therefore \mbox{(4)''の時、左辺 ≡ 右辺} \\ \mbox{・1.12(g) について} \\ (g) [N/x](λy.P) ≡ λz.[N/x][z/y]P \mbox{ if } x \in FV(P), y \in FV(N) \\ \mbox{ここで定義 “and let no variable bound in M be free in vPQ.” つまり} \\ x \notin FV(vPQ) \mbox{ 特に } x \notin FV(PQ) \mbox{ より} \\ \mbox{1.12(g) は成り立たない.} \\ \therefore \mbox{(1)〜(5) より} \\ [P/x][Q/y]M ≡ [([P/x]Q)/y][P/x]M \mbox{ if } y \notin FV(P);. \end{array}$

Lemma 1.16(d)

$\mbox{(d) } [P/x][Q/y]M ≡ [Q/y][P/x]M \mbox{ if } y \notin FV(P), x \notin FV(Q);$

$(d)$ follows from $(c)$ and $1.15(b)$

$\begin{array} & \mbox{左辺 } [P/x][Q/y]M \\ \mbox{(c) } [P/x][Q/y]M ≡ [([P/x]Q)/y][P/x]M \mbox{ if } y \notin FV(P); \mbox{ より} \\ = [([P/x]Q)/y][P/x]M \\ \mbox{;; ここで 1.15(b): } \\ x \notin FV(M) \Rightarrow [N/x]M ≡ M \mbox{ より} \\ \mbox{;; 特に } x \notin FV(Q) \Rightarrow [P/x]Q ≡ Q \\ = [Q/y][P/x]M \mbox{;; これは右辺に等しい} \\ \therefore [P/x][Q/y]M ≡ [Q/y][P/x]M \mbox{ if } y \notin FV(P), x \notin FV(Q);. \end{array}$

Lemma 1.16(e)

$\mbox{(e) } [P/x][Q/x]M ≡ [([P/x]Q)/x]M$

$1.12$ をあてはめます。

$\begin{array} & \mbox{(1) } M=x \mbox{ の時 (1.12(a))} \\ \mbox{左辺 } [P/x][Q/x]x = [P/x]Q \\ \mbox{右辺 } [([P/x]Q)/x]x = [P/x]Q \\ \therefore \mbox{(1)の時、左辺 ≡ 右辺} \\ \mbox{(2) } M=a \mbox{ の時 (1.12(b))} \\ \mbox{左辺 } [P/x][Q/x]a = [P/x]a = a \\ \mbox{右辺 } [([P/x]Q)/x]a = a \\ \therefore \mbox{(2)の時、左辺 ≡ 右辺} \\ \mbox{(3) } M=(RS) \mbox{ の時 (1.12(c))} \\ \mbox{左辺 } [P/x][Q/x](RS) = [P/x]([Q/x]R [Q/x]S) \\ = ([P/x][Q/x]R \, [P/x][Q/x]S) \\ \mbox{;; ここで帰納法により } \\ \mbox{;; } [V/w][Z/w]N ≡ [([V/w]Z)/w]N \\ \mbox{;; が正しいと仮定して以下を導きます} \\ = ([([P/x]Q)/x]R \, [([P/x]Q)/x]S) \\ \mbox{右辺 } [([P/x]Q)/x](RS) \\ = ([([P/x]Q)/x]R \, [([P/x]Q)/x]S) \\ \therefore \mbox{(3)の時、左辺 ≡ 右辺} \\ \mbox{(4) } M=λx.L \mbox{ の時 (1.12(d))} \\ \mbox{左辺 } [P/x][Q/x](λx.L) = [P/x](λx.L) = λx.L \\ \mbox{右辺 } [([P/x]Q)/x](λx.L) = λx.L \\ \therefore \mbox{(4)の時、左辺 ≡ 右辺} \\ \mbox{(5) } M=λy.L, \; x \notin FV(L) \mbox{ の時 (1.12(e))} \\ \mbox{左辺 } [P/x][Q/x](λy.L) = [P/x](λy.L) = λy.L \\ \mbox{右辺 } [([P/x]Q)/x](λy.L) = λy.L \\ \therefore \mbox{(5)の時、左辺 ≡ 右辺} \\ \mbox{(6) } M=λy.L, \; x \in FV(L) \mbox{ and } y ≠ x \mbox{ (1.12(f))} \\ \mbox{;; “and let no variable bound in M be free in vPQ.” つまり} \\ \mbox{;; } y \notin FV(PQ) \mbox{ より} \\ \mbox{左辺 } [P/x][Q/x](λy.L) = [P/x](λy.[Q/x]L) = λy.[P/x][Q/x]L \\ \mbox{;; ここで帰納法により } \\ \mbox{;; } [V/w][Z/w]N ≡ [([V/w]Z)/w]N \\ \mbox{;; が正しいと仮定して以下を導きます} \\ = λy.[([P/x]Q)/x]L \\ \mbox{右辺 } [([P/x]Q)/x](λy.L) \\ \mbox{;; (6)の左辺と同様に} \\ \mbox{;; “and let no variable bound in M be free in vPQ.” つまり} \\ \mbox{;; } y \notin FV(vPQ) \mbox{ より} \\ \mbox{;; 特に } y \notin FV(PQ) \mbox{ より} \\ = λy.[([P/x]Q)/x]L \\ \therefore \mbox{(6)の時、左辺 ≡ 右辺} \\ \mbox{(1) 〜 (6) より } [P/x][Q/x]M ≡ [([P/x]Q)/x]M. \end{array}$