设Px为图灵机:
输入w:
现在考虑机器B,它本质上是一个Px生成器。
输入w:
接下来,我们考虑由其他图灵机组成的机器。例如,假设N和M是图灵机。组合物NM是做以下事情的机器。
输入w:
使用上面定义的机器和思想,我们现在可以构造一台打印自己描述的机器。机器的组成是PB。这台机器是这样做的:
递归定理建立了内省作为图灵机使用的有效技术。在内省技术中,图灵机获得自己的描述,然后使用该描述作为它正在进行的计算的一部分。
这是递归定理的形式表述。
设T是计算函数T的图灵机:Σ*×Σ*→Σ*。有一个图灵机R,它计算函数R: Σ*→Σ*,使得
r(w) = t(< r >,w)
对于赢博体育w∈Σ*。
证明递归定理的一种方法是构造。我们演示了如何将任何图灵机T转换为定理中描述的新机器R。
我们需要的机器是一个组合:PB
T。机器的第一部分是稍作修改的版本Px:
输入w:
同样的,B是稍作修改的版本B:
对于输入x,w:
下面的序列显示了运行时磁带的样子R =PB
T对于任何输入w:
在开始:w后P运行:<B
T>,w后B
运行:<P
B
T>,w后T运行:t(<P
B
T>,w)
我们现在有一台机器R,当它在任意输入w上运行时,计算出t(
正如我上面提到的,递归定理提供的主要新功能是自省功能。这意味着我们可以制造出似乎能够看到并使用自己的描述的机器。当然,机器不能做到这一点,但递归定理给了我们下一个最好的东西:机器表现得好像它们能够看到自己的描述。
这里有一个例子。假设我们想用递归定理来制造一台可以打印自己的机器。我们先构造一个合适的T:
当输入
这个机器T实现了映射T (
以下是R所做的:
输入w:
这台机器似乎能够获得并使用自己的描述。它实际上并不能看见自己,但它至少表现得好像它能看见自己。一旦我们有了一台机器,它表现出我们想要的行为,我们就可以稍微改变一下术语,用这种方式重写R的描述。
输入w:
递归定理的一个主要赢博体育是,它使计算理论中常见结果的证明更容易构造。一个经典的例子是反证法,证明ATM是不可判定的,构造起来要容易得多。
假设ATM可由某台机器H决定,我们用H构造一台机器B:
输入w:
不管我们给B的输入是什么,B的行为都会和H预测的相反当它在这个输入上运行时。
另一个有趣的赢博体育是证明不可能确定某个图灵机T是否是接受L(T)的最小可能图灵机。为了证明这个结果,我们引入了语言
MINTM = {
这里有一个矛盾的证据,证明这种语言是不可判定的。我们利用递归定理构造了一个特殊的机器C:
输入w:
我们刚刚构造的机器接受与大机器D相同的语言,这是一个矛盾,因为集合MINTM, D来自,应该由接受他们语言的最小机器组成。