跳转至

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

19

习题3.19

\(\text{Exp}\equiv \lambda xy.yx\),证明:对于任意的 \(n\in\mathbb{N}\)\(m\in\mathbb{N}^*\), $$ \text{Exp}\ulcorner n\urcorner\ulcorner m\urcorner =_{\beta} \ulcorner n^m\urcorner. $$ (Exp由Rosser教授作出)

证:

\(m\)作数学归纳。

\(m=1\) 时,

\[ \begin{align} \text{Exp}\ulcorner n\urcorner\ulcorner 1\urcorner &= \ulcorner 1\urcorner\ulcorner n\urcorner \\\\ &= (\lambda fx. fx)\ulcorner n\urcorner \\\\ &= \lambda x. \ulcorner n\urcorner x \\\\ &= \lambda x. (\lambda fy. f^ny) x \\\\ &= \lambda x. (\lambda y. x^ny) \\\\ &= \lambda xy. x^ny\\\\ &= \ulcorner n\urcorner \end{align} \]

假设 \(m=k\) 时成立,

\[ \begin{align} {}&{}& \text{Exp}\ulcorner n\urcorner\ulcorner k\urcorner &= \ulcorner n^k\urcorner\\\\ \Rightarrow&& \ulcorner k\urcorner\ulcorner n\urcorner &= \lambda fy. f^{n^k}y \\\\ \Rightarrow&& (\lambda fy. f^ky)\ulcorner n\urcorner &= \lambda fy. f^{n^k}y \\\\ \Rightarrow&& \lambda y. \ulcorner n\urcorner^ky &= \lambda fy. f^{n^k}y \\\\ \Rightarrow&& (\lambda y. \ulcorner n\urcorner^ky)x &= (\lambda fy. f^{n^k}y)x \\\\ \Rightarrow&& \ulcorner n\urcorner^kx &= \lambda y. x^{n^k}y \\\\ \end{align} \]

\(m=k+1\) 时,

\[ \begin{align} \text{Exp}\ulcorner n\urcorner\ulcorner k+1\urcorner &= \ulcorner k+1\urcorner\ulcorner n\urcorner \\\\ &= (\lambda fx. f^{k+1}x)\ulcorner n\urcorner \\\\ &= \lambda x. \ulcorner n\urcorner^{k+1} x \\\\ &= \lambda x. \ulcorner n\urcorner(\ulcorner n\urcorner^{k} x) \\\\ &= \lambda x. \ulcorner n\urcorner(\lambda y. x^{n^k}y) \\\\ &= \lambda x. (\lambda fz. f^nz)(\lambda y. x^{n^k}y) \\\\ &= \lambda x. (\lambda z. (\lambda y. x^{n^k}y)^nz) \\\\ &= \lambda xz. (\lambda y. x^{n^k}y)^nz \\\\ &= \lambda xz. (\lambda y. x^{n^k}y)^{n-1} x^{n^k}z \\\\ &= \lambda xz. (\lambda y. x^{n^k}y)^{n-2} x^{n^k}x^{n^k}z \\\\ &\cdots \\\\ &= \lambda xz. (x^{n^k})^nz \\\\ &= \lambda xz. x^{n^{k+1}}z \\\\ &= \ulcorner n^{k+1}\urcorner \end{align} \]

20

习题3.20

构造 \(F\in\Lambda^{\circ}\),使得对于任意 \(n\in\mathbb{N}\), $$ F\ulcorner n\urcorner =_{\beta} \ulcorner 2^n\urcorner. $$

解:

解法一:

易见 \(F\) 对应的数论函数为:

\[ \begin{cases} f(0) &=1,\\\\ f(n+1) &=2f(n). \end{cases} \]

故首先构造 \(G\in\Lambda^{\circ}\),使得 \(G\ulcorner n\urcorner =\ulcorner 2n\urcorner\),则 \(\begin{cases}F\ulcorner 0\urcorner&=\ulcorner 1\urcorner\\ F\ulcorner n+1\urcorner&=G(F\ulcorner n\urcorner) \end{cases}\).

\[ \begin{align} \ulcorner 2n\urcorner &=\lambda fx. f^{2n}x \\\\ &=\lambda fx. f^n(f^nx)\\\\ &=\lambda fx. f^n(\ulcorner n\urcorner fx) \\\\ &=\lambda fx. \ulcorner n\urcorner f(\ulcorner n\urcorner fx) \\\\ &=(\lambda afx. a f(a fx))\ulcorner n\urcorner \end{align} \]

\(G\equiv \lambda afx. a f(a fx)\).

$$ F\ulcorner n\urcorner=G^{n}\ulcorner 1\urcorner=\ulcorner n\urcorner G\ulcorner 1\urcorner=(\lambda x. xG\ulcorner 1\urcorner)\ulcorner n\urcorner $$ 故 \(F\equiv \lambda x. xG\ulcorner 1\urcorner\).

解法二:

利用习题3.19中的Exp函数,有

\[ \ulcorner 2^n\urcorner= \begin{cases} \ulcorner 1\urcorner,&n=0\\\\ \text{Exp}\ulcorner 2\urcorner\ulcorner n\urcorner,&n>0 \end{cases} \]

\[ \ulcorner 2^n\urcorner=D\ulcorner n\urcorner \ulcorner 1\urcorner (\text{Exp}\ulcorner 2\urcorner\ulcorner n\urcorner) \]

\(F\equiv \lambda x.Dx \ulcorner 1\urcorner (\text{Exp}\ulcorner 2\urcorner x)\)

21

习题3.21

\(f,g:\mathbb{N}\rightarrow\mathbb{N}\), \(f=\text{Itw}[g]\),即 $$ \begin{align} f(0)&=0,\\ f(n+1)&=g(f(n)), \end{align} $$ 且 \(G\in\Lambda^{\circ}\) \(\lambda\)-定义函数 \(g\). 试求 \(F\in\Lambda^{\circ}\) 使得\(F\) \(\lambda\)-定义函数 \(f\).

解:

\[ F\ulcorner n\urcorner=G^n\ulcorner 0\urcorner=\ulcorner n\urcorner G \ulcorner 0\urcorner \]

\(F\equiv \lambda x. xG\ulcorner 0\urcorner\).

22

习题3.22

证明引理3.39:

存在一般递归函数var, app, abs, num: \(\mathbb{N}\rightarrow \mathbb{N}\)使得:

(1) \(\forall n\in \mathbb{N}. \text{var}(n) = \sharp (v^P={(n)})\);

(2) \(\forall M, N \in \Lambda. \text{app}(\sharp M, \sharp N) = \sharp (MN)\);

(3) \(\forall x \in \nabla, M\in\Lambda. \text{abs}(\sharp x, \sharp M) = \sharp (\lambda x. M)\);

(4) \(\forall n \in \mathbb{N}. \text{num}(n) = \sharp \ulcorner n \urcorner\).

证:

我们取 \([x,y]=2^{x}\cdot 3^y, \Pi_1=\text{ep}_0, \Pi_2=\text{ep}_1\), 从而\([\cdot, \cdot], \Pi_1, \Pi_2\in\mathcal{EF}\).

(1)

\(\forall x\in\mathbb{N}\), \(\text{var}(x)=[0,x]\).

故var是一般递归函数。

(2)

\(\forall x,y\in\mathbb{N}\), \(\text{app}(x, y)=[1, [x, y]]\).

故app是一般递归函数。

(3)

\(\forall x,y\in\mathbb{N}\), \(\text{abs}(x, y)=[2, [\text{var}(x), y]]\).

故abs是一般递归函数。

(4)

\(\forall n\in\mathbb{N}\),

\[ \begin{align} \text{num}(n+1) &=\sharp \ulcorner n+1 \urcorner \\\\ &=\sharp (\lambda fx. f^{n+1} x)\\\\ &=[2, [\sharp f, \sharp (\lambda x. f^{n+1}x)]] \\\\ &=[2, [\sharp f, [2, [\sharp x, \sharp f^{n+1}x]]]] \\\\ &=[2, [\sharp f, [2, [\sharp x, [1, [\sharp f, \sharp f^{n}x]]]]]] \end{align} \]

同理可得\(\sharp \ulcorner n \urcorner = [2, [\sharp f, [2, [\sharp x, \sharp f^{n}x]]]]\).

\(\sharp f^{n}x=\Pi^4_2(\sharp \ulcorner n \urcorner)\)

因此\(\sharp \ulcorner n+1 \urcorner=[2, [\sharp f, [2, [\sharp x, [1, [\sharp f, \Pi^4_2(\sharp \ulcorner n \urcorner)]]]]]]\)

\(h(z)=[2, [\sharp f, [2, [\sharp x, [1, [\sharp f, \Pi^4_2(z)]]]]]]\)

\(x\)\(v^{(0)}\), \(f\)\(v^{(1)}\)时,\(h(z)\in\mathcal{EF}\).

\[ \begin{cases} \text{num}(0) = \sharp \ulcorner 0 \urcorner,\\\\ \text{num}(n+1) = h(\text{num}(n)). \end{cases} \]

故有\(\text{num}(n)=\sharp \ulcorner n \urcorner\).

易见\(\text{num}\in\mathcal{PRF}\)

23

习题3.23

\(f(n)\)习题1.16中定义的函数,试构造 \(F\in\Lambda^{\circ}\)使 \(F\ulcorner n\urcorner = \ulcorner f(n)\urcorner\)\(n\in\mathbb{N}^+\)成立.

解:

对于 \(n\in\mathbb{N}^+\),

\[ \begin{align} f(1) &= 1, \\\\ f(2) &= 2^2, \\\\ f(3) &= 3^{3^3}, \\\\ \cdots & \cdots \\\\ f(n) &= \underbrace{n^{\cdot^{\cdot^{\cdot^n}}}}_{n个n}, \end{align} \]

\(g(m,n)=\underbrace{n^{\cdot^{\cdot^{\cdot^n}}}}_{m个n}\),其中 \(m,n\in\mathbb{N}^+\)

\[ \begin{cases} g(1,n)&=n\,,\\\\ g(m+1,n)&=n^{g(m,n)}\,. \end{cases} \]

构造 \(G\ulcorner m\urcorner\ulcorner n\urcorner=\ulcorner g(m,n)\urcorner=\ulcorner \underbrace{n^{\cdot^{\cdot^{\cdot^n}}}}_{m个n}\urcorner\).

\[ \begin{align} G\ulcorner m\urcorner\ulcorner n\urcorner &= \text{IF } \ulcorner m\urcorner=\ulcorner 1\urcorner \text{ THEN } \ulcorner n\urcorner \text{ ELSE } \ulcorner n^{g(m-1, n)}\urcorner\\\\ &= \text{IF } \ulcorner m\urcorner=\ulcorner 1\urcorner \text{ THEN } \ulcorner n\urcorner \text{ ELSE Exp} \ulcorner n\urcorner\ulcorner g(m-1, n)\urcorner\\\\ &= \text{IF } \ulcorner m\urcorner=\ulcorner 1\urcorner \text{ THEN } \ulcorner n\urcorner \text{ ELSE Exp} \ulcorner n\urcorner(G\ulcorner m-1\urcorner\ulcorner n\urcorner)\\\\ &= D(\text{Pred}\ulcorner m\urcorner)\ulcorner n\urcorner (\text{Exp} \ulcorner n\urcorner(G(\text{Pred}\ulcorner m\urcorner)\ulcorner n\urcorner))\\\\ &= (\lambda fxy. D(\text{Pred}x)y (\text{Exp} y(f(\text{Pred}x)y)))G\ulcorner m\urcorner\ulcorner n\urcorner\\\\ \end{align} \]

\(G\equiv \mathbb{Y}(\lambda fxy. D(\text{Pred}x)y (\text{Exp} y(f(\text{Pred}x)y)))\).

\(F\ulcorner n\urcorner=G\ulcorner n\urcorner\ulcorner n\urcorner\),故 \(F\equiv \lambda x. Gxx\).

24

习题3.24

构造 \(H\in\Lambda^{\circ}\),使得对于任意 \(n\in\mathbb{N}\),\(x_1,\cdots,x_n\in\Lambda\),有 $$ H\ulcorner n\urcorner x_1\cdots x_n=_{\beta} \lambda z.zx_1\cdots x_n. $$

解:

\(M_n\equiv \lambda x_1\cdots x_nz.zx_1\cdots x_n\),易见 \(g(n)=\sharp M_n\) 是递归的. 设 \(G\in\Lambda^{\circ}\) \(\lambda\)-定义了 \(g\),从而 \(G\ulcorner n\urcorner =_{\beta}\ulcorner M_n \urcorner\),因此

\[ E(G\ulcorner n\urcorner)=_{\beta} E\ulcorner M_n \urcorner=_{\beta}M_n. \]

\(H\equiv \lambda x.E(Gx)\)即可。

25

习题3.25

证明:存在 \(\varTheta_2\in\Lambda^{\circ}\),使得对于任意 \(F\in\Lambda^{\circ}\),有 $$ \varTheta_2\ulcorner F\urcorner =_{\beta} F\ulcorner \varTheta_2\ulcorner F\urcorner\urcorner. $$

证:

\(A\equiv \lambda xy. (Ey)(\text{App}x(\text{App}(\text{Num}x)(\text{Num}y)))\),其中 App,Num在命题3.40中定义,E在定理3.41中定义。

\(\varTheta_2\equiv A\ulcorner A\urcorner\).

\[ \begin{align} \varTheta_2\ulcorner F\urcorner &=A\ulcorner A\urcorner\ulcorner F\urcorner \\\\ &=(\lambda xy. (Ey)(\text{App}x(\text{App}(\text{Num}x)(\text{Num}y))))\ulcorner A\urcorner\ulcorner F\urcorner \\\\ &=(E\ulcorner F\urcorner)(\text{App}\ulcorner A\urcorner(\text{App}(\text{Num}\ulcorner A\urcorner)(\text{Num}\ulcorner F\urcorner))) \\\\ &=F(\text{App}\ulcorner A\urcorner(\text{App}\ulcorner\ulcorner A\urcorner\urcorner\ulcorner\ulcorner F\urcorner\urcorner)) \\\\ &=F(\text{App}\ulcorner A\urcorner\ulcorner\ulcorner A\urcorner\ulcorner F\urcorner\urcorner) \\\\ &=F\ulcorner A\ulcorner A\urcorner\ulcorner F\urcorner\urcorner \\\\ &=F\ulcorner \varTheta_2\ulcorner F\urcorner\urcorner \end{align} \]