Turing Machine如何不接受任何递归枚举?

时间:2017-09-10 13:00:23

标签: computation-theory turing-machines

图灵机如何不接受任何不是递归可枚举的。

1 个答案:

答案 0 :(得分:2)

我们将使用间接参数来证明图灵机器的编码语言不能以递归方式枚举。

引理1 :如果L及其补码是递归可枚举的,则L是递归的。

证明:让M成为枚举L和M&#39的TM。是一个枚举L的补码的TM。给定任何字符串s,我们可以判断s是否在L中,如下所示。开始运行M和M',交错执行它们,以便每个人最终获得任意数量的运行时间。如果s在L中,M最终将列出它,此时我们知道s在L中并且我们停止接受。如果s不在L中,则M'最终会列出它,此时我们知道s不在L中,我们停止拒绝。因此,对于任何s,我们可以停止接受,如果s在L或否则停止拒绝。因此,L及其补码是递归的。

引理2 :图灵机的编码语言可以递归地枚举。

证明:所有图灵机编码的集合都是可数的,所有可能的磁带输入也是如此。因此,机器和输入对的集合(M,s)是可数的。因此,我们可以假设这些对的顺序为p1,p2,...,pk,...对于每对p =(M,s),开始在输入s上执行机器M,交错对p1,p2的执行, ...,pk,...所以每个人最终都获得了任意数量的运行时间。如果pk进入暂停接受状态,我们可以立即将M列为接受某些东西的TM(即相应的s),我们甚至可以终止检查相同M的所有其他运行实例(并放弃启动任何新的实例)。任何接受某些输入的机器M最终都会被启动并最终停止接受输入,因此所有机器最终都会被枚举。

引理3 :不接受任何事情的图灵机编码语言不是递归的。

证明:这是赖斯定理的直接结果。该物业"什么都不接受"是语言本身的语义属性,对于某些语言而不是所有语言都是如此;因此,没有TM可以决定另一个TM是否接受该财产的语言。

定理:不接受任何内容的图灵机编码语言不能递归枚举。

证明:假设此语言是递归可枚举的。我们已经在引理2中证明了它的补码是递归可枚举的。通过引理1,两种语言都是递归的。然而,引理3证明了语言不是递归的。这是一个矛盾。唯一的假设是语言是递归可枚举的,因此假设必须是假的:所以语言不是递归可枚举的。