跳转至

《计算模型导引》第三章习题

12

习题3.12

证明:对于任何 M,N\in \Lambda,若 M =_{\beta} N,则存在 T 使 M\twoheadrightarrow_{\beta} TN \twoheadrightarrow_{\beta} T. 这就是对于 =_{\beta} 的CR性质.

证:

M=_{\beta} N,由习题3.9知,存在 P_0,\cdots, P_n\in\nabla 使得 M\equiv P_0N\equiv P_n\forall i < n, P_i\rightarrow_{\beta} P_{i+1}P_i\leftarrow_{\beta} P_{i+1}.

以下对 i 归纳证明,存在 T_i 使得 P_0\twoheadrightarrow_{\beta} T_iP_n\twoheadrightarrow_{\beta} T_i.

奠基:i=0,取 T_0M 即可.

假设 i=k 时结论成立.

i=k+1 < n 时,由归纳假设,P_0\twoheadrightarrow_{\beta} T_kP_k\twoheadrightarrow_{\beta} T_k.

P_k\rightarrow_{\beta} P_{k+1},从而由CR性质,存在 T_{k+1} 使得 T_k\twoheadrightarrow_{\beta} T_{k+1}P_{k+1}\twoheadrightarrow_{\beta} T_{k+1},从而结论成立.

P_k\leftarrow_{\beta} P_{k+1},取 T_{k+1}P_k 即可,这时结论成立。

综上,有 T_n 使得 P_0\twoheadrightarrow_{\beta} T_nP_n\twoheadrightarrow_{\beta} T_n. 取 TT_0,即有 M\twoheadrightarrow_{\beta} TN \twoheadrightarrow_{\beta} T.

13

习题3.13

证明:若在系统 \lambda\beta 中加入下述公理 $$ (A)\qquad \lambda xy. x = \lambda xy. y, $$ 则对任何M,N\in \Lambda\lambda\beta + (A) \vdash M = N.

证:

对任何 M,N\in\Lambda

\begin{align} (\lambda xy. x) MN &=(\lambda xy. y) MN \\\\ M &= N \end{align}

14

习题3.14

证明命题3.14:

R\nabla 上的一个二元关系,M\in NF_R,则

(1) 不存在 N\in\nabla 使得 M\rightarrow_R N;

(2) M\twoheadrightarrow_R N \Rightarrow M\equiv N.

证:

(1)

若存在 N\in\nabla, M\rightarrow_R N,则由定义知 M 为 R-可约式,矛盾.

(2)

假设 M\not\equiv NM\twoheadrightarrow_R N 表示存在 M = P_0\rightarrow_R P_1\rightarrow_R\cdots\rightarrow_R P_n = N,使得对于 i < nP_i\rightarrow_R P_{i+1}. 因为 M\not\equiv N,我们有 n\geq 1,但是这样存在 N,使得 M\rightarrow_R N,与(1)结论矛盾.

15

习题3.15

证明引理3.16:

M\vartriangleright_{mcd} M'N\vartriangleright_{mcd} N',则 M'N' \vartriangleright_{mcd} M'N'.

证:

M 通过 P_1, P_2, \cdots, P_{n1} 收缩到 M′, N 通过 R_1, R_2, \cdots, R_{n2} 收缩到 N′, 如果将这种极小规约过程看成大小关系的话, 那么 P_1,P_2,\cdots, P_{n1}R_1, R_2, \cdots, R_{n2} 都可以视为按照非降序来排列. 那么现在只需要用任意一种排序算法将 P_1, P_2, \cdots, P_{n2}, R_1, R_2, \cdots, R_{n2}, 按照非降序排列, 则可以通过该序列将 MN 收缩到 M′N′.

16

习题3.16

试找出 A\in\Lambda^{\circ}使A \lambda-定义函数 f(x,y)=x+y.

解:

解法一:

\begin{align} \ulcorner x+y \urcorner &=S^y\ulcorner x\urcorner \\\\ &=\ulcorner y\urcorner S \ulcorner x\urcorner \\\\ &=(\lambda uv. vSu)\ulcorner x\urcorner\ulcorner y\urcorner \end{align}

其中 S 为后继函数,定义在引理3.30,为\lambda xyz.y(xyz).

解法二:

\begin{align} \ulcorner x+y \urcorner &=\lambda uv. u^{x+y}v \\\\ &=\lambda uv. u^{x}(u^yv) \\\\ &=\lambda uv. u^{x}(\ulcorner y\urcorner uv) \\\\ &=\lambda uv. \ulcorner x\urcorner u(\ulcorner y\urcorner uv) \\\\ &=(\lambda abuv. a u(b uv))\ulcorner x\urcorner\ulcorner y\urcorner \end{align}

解法三:

f(x,y)=\text{if }y=0\text{ then }x\text{ else }f(x+1,y-1)

故定义 F\in\Lambda^{\circ}

\begin{align} F\ulcorner x\urcorner\ulcorner y\urcorner &=D(\ulcorner y\urcorner)\ulcorner x\urcorner(F\ulcorner x+1\urcorner\ulcorner y-1\urcorner)\\\\ &=(\lambda zxy. D(y)x(z(Sx)(\text{pred } y)))F\ulcorner x\urcorner\ulcorner y\urcorner \end{align}

F=\mathbb{Y}(\lambda zxy. D(y)x(z(Sx)(\text{pred } y)))

17

习题3.17

试找出 F\in\Lambda^{\circ}使F \lambda-定义函数 f(x)=3x.

解:

\begin{align} \ulcorner 3x \urcorner &=\lambda uv. u^{x+x+x}v \\\\ &=\lambda uv. u^{x}(u^x(u^xv)) \\\\ &=\lambda uv. u^{x}(u^x(\ulcorner x\urcorner uv)) \\\\ &=\lambda uv. u^{x}(\ulcorner x\urcorner u(\ulcorner x\urcorner uv)) \\\\ &=\lambda uv. \ulcorner x\urcorner u(\ulcorner x\urcorner u(\ulcorner x\urcorner uv)) \\\\ &=(\lambda xuv. x u(x u(x uv)))\ulcorner x\urcorner \end{align}

18

习题3.18

D\equiv \lambda xyz.z(Ky)x,证明:对于任意的 X,Y\in\Lambda, $$ \begin{align} DXY\ulcorner 0\urcorner &= X,\\ DXY\ulcorner n+1\urcorner &= Y. \end{align} $$ 这里K\equiv \lambda xy.x\ulcorner n\urcorner\equiv \lambda fx.f^n x.

证:

\begin{align} DXY\ulcorner 0\urcorner &=(\lambda xyz. z(Ky)x)XY\ulcorner 0\urcorner \\\\ &=\ulcorner 0\urcorner(KY)X \\\\ &=(\lambda fx. x)(KY)X \\\\ &=X \end{align}
\begin{align} DXY\ulcorner n+1\urcorner &=(\lambda xyz. z(Ky)x)XY\ulcorner n+1\urcorner \\\\ &=\ulcorner n+1\urcorner(KY)X \\\\ &=(\lambda fx.f^{n+1} x)(KY)X \\\\ &=(KY)^{n+1}X \\\\ &=(KY)^nY \\\\ &\cdots \\\\ &=Y \end{align}