| 第1行: |
第1行: |
| − | '''递归定理(recursion theorem)'''是递归函数论——即可计算性理论(computability theory,研究"什么问题原则上可以被机械地计算"的学科)——中的一组基本定理,由 Stephen Cole Kleene 提出,合称 '''Kleene 递归定理''',包括两条:'''第一递归定理'''说,任何用递归方式定义的函数方程都有可计算的(最小)解——机械式的递归定义永远合法、永远有解;'''第二递归定理'''说,对任何可计算的全函数 f,总存在源程序 c,使得执行 c 与执行 f(c) 效果完全相同(<math>\phi_c = \phi_{f(c)}</math>)——程序可以合法地引用自己的代码。 | + | '''递归定理(recursion theorem)'''[[递归函数论]]——即[[可计算性理论]](computability theory,研究"什么问题原则上可以被机械地计算"的学科)——中的一组基本定理,由[[Stephen Cole Kleene]]提出,合称 '''Kleene 递归定理''',包括两条:'''第一递归定理''': 任何用递归方式定义的[[函数方程]]都有可计算的(最小)解——机械式的递归定义永远合法、永远有解;'''第二递归定理''': 对任何可计算的全函数 <math>f</math>,总存在源程序<math>c</math>,使得执行<math>c</math>与执行<math>f(c)</math> 效果完全相同(<math>\phi_c = \phi_{f(c)}</math>)——程序可以合法地引用自己的代码。 |
| | | | |
| − | 两条之中,第二递归定理尤为重要,它是数学中对"自指"(self-reference)现象最简洁、最有力的统一陈述:它只有一步对角线证明 `c = S(e, e)`(S 是"把程序的部分输入写死、生成新程序"的柯里化操作,详见 §2.3),却统一了从罗素悖论(1901)、Gödel 不完备定理(1931)、Turing 停机问题(1936)、von Neumann 自复制自动机(1948)到今天的 quine 程序(1960s)等全部自指现象——它们本质上是同一种对角线/自指结构的不同化身(详 §5.7)。 | + | 两条之中,第二递归定理尤为重要,它是数学中对[[自指]](self-reference)现象最简洁、最有力的统一陈述:它只有一步对角线证明 `<math>c = S(e, e)</math>`(<math>S</math> 是"把程序的部分输入写死、生成新程序"的[[柯里化操作]],详见 §2.3),却统一了从[[罗素悖论]](1901)、[[Gödel不完备定理]](1931)、[[Turing停机问题]](1936)、[[von Neumann 自复制自动机]](1948)到今天的[[Quine程序]](1960s)等全部自指现象——它们本质上是同一种对角线/自指结构的不同化身(详 §5.7)。 |
| − | [[文件:自指家族.png|替代=自指家族|缩略图|图1:六个经典自指现象——Cantor 对角线(1891)、Russell 悖论(1901)、Gödel 不完备定理(1931)、Turing 停机问题(1936)、von Neumann 自复制(1948)、Quine(自打印程序,1960s)——都源于同一种对角线/自指原理;Kleene 第二递归定理是这一原理最一般的陈述。]] | + | [[文件:自指家族.png|替代=自指家族|缩略图|图1:六个经典自指现象——[[Cantor对角线]](1891)、[[Russell悖论]](1901)、[[Gödel不完备定理]](1931)、[[Turing停机问题]](1936)、[[von Neumann自复制]](1948)、[[Quine]]([[自打印程序]],1960s)——都源于同一种对角线/自指原理;Kleene 第二递归定理是这一原理最一般的陈述。]] |
| | | | |
| | | | |