更改

添加61字节 、 2026年9月7日 (星期一)
第6行: 第6行:  
== 总览:两个定理各说了什么 ==
 
== 总览:两个定理各说了什么 ==
   −
'''Kleene 递归定理'''是关于'''自指(self-reference,即一个系统"谈论"自身)'''与'''不动点(fixed point,即变换后保持不变的点)'''的两个基本定理的合称。先用日常语言各说一遍,再给出精确表述。
+
'''Kleene 递归定理'''是关于'''自指(self-reference,即一个系统"谈论"自身)'''[[不动点]](fixed point,即变换后保持不变的点)两个基本定理的合称。先用日常语言各说一遍,再给出精确表述。
   −
'''第二递归定理(日常语言版)''':''对任何可计算的全函数 f(一个对任何输入都停机的"程序变换"),总存在一个源程序 c,使得执行 c 的效果,等同于执行 f(c)——即 f 拿着 c 自己的源代码算出来的那个程序。'' 用符号写就是:<math>\phi_c = \phi_{f(c)}</math>。<ref name="rogers1967" />
+
'''第二递归定理(日常语言版)''':''对任何可计算的全函数 <math>f</math>(一个对任何输入都停机的"程序变换"),总存在一个源程序 <math>c</math>,使得执行 <math>c</math> 的效果,等同于执行 <math>f(c)</math>——即 <math>f</math> 拿着 <math>c</math> 自己的源代码算出来的那个程序。'' 用符号写就是:<math>\phi_c = \phi_{f(c)}</math>。<ref name="rogers1967" />
   −
'''第一递归定理(日常语言版)''':''任何递归定义——即把一个函数在某处的值,写成它自己在其他输入上的值(比如阶乘 fac(n) = n<math>\cdotfac(n−1)</math>)——都必然有解,而且其中"最小"的那个解一定能被机器算出。'' 换句话说,'''机械式的递归定义永远合法、永远有解'''。<ref name="rogers1967" />
+
'''第一递归定理(日常语言版)''':''任何递归定义——即把一个函数在某处的值,写成它自己在其他输入上的值(比如阶乘 <math>fac(n) = n\cdot fac(n−1)</math>)——都必然有解,而且其中"最小"的那个解一定能被机器算出。'' 换句话说,'''机械式的递归定义永远合法、永远有解'''。<ref name="rogers1967" />
    
两个定理的对照表(其中涉及的符号会在第二节逐一解释,此处可先跳过细节):
 
两个定理的对照表(其中涉及的符号会在第二节逐一解释,此处可先跳过细节):