我有这三种语言,我不知道如何确定该语言是R还是RE或coRE
L1={<M>| epsilon belongs to L(M)}
L2={<M><w>|M doesn't accept any prefix of w}
L3={<M>|there exists w where M accepts all the prefixes of w}
答案 0 :(得分:1)
对于前两个,称为dovetailing的技术可以帮助您证明这些语言是可枚举的。 对于L_1: 给定所有图灵机的哥德尔编号,计算M1(eps)的步骤1, 然后是M2(eps)的第1步,然后是M1(eps)的第2步, M3(eps)中的1个,M2(eps)中的2个,M1(eps)中的3个 ... 换句话说,以“步数”和“车床编号x”为轴的坐标系统的左下三角形。
如果epsilon在L(Mx)中,则将以n个步骤接受它。使用您的方法,当您到达坐标[x,n]时,您将检测到这一点。每个[x,n]都是如此,因此您可以通过这种方式枚举所有机器。
由于单词仅具有有限数量的前缀,因此您还可以通过对每个前缀进行上述坐标系操作(不适用于顺序,也可以交织),从而对L2应用此方法。所以L2也可以枚举。
对于L3,存在w,其中M接受w的所有前缀,那么对于仅包含w的第一个字母的字符串也是如此。因此,您只需要检查字母表中是否有多少个符号即可,就像L2一样。
关于这三种语言的递归性,请阅读例如处理您的L1的answer。