请考虑以下问题:
让L1
和L2
成为两种语言。证明或反驳r.e.类的封闭性。
差异(L1 - L2)
产品(L1 x L2)
(尝试在L1
的单词结束的假设下,以及不知道的情况下证明产品。
此处,封闭性意味着如果漫游机可以接受L1
和L2
,那么(L1 - L2)
或(L1 x L2)
备注
我能够找到联合和补充的解决方案(联合:关闭;补充:未关闭),但不能用于上述(差异或产品)。
答案 0 :(得分:1)
1)RE没有因差异而关闭。
证明: 假设它是。
让Sigma
为任意RE语言L
的字母表。 Sigma^*
是RE(TM只检查输入字符串是否仅包含来自Sigma
的符号,否则为空)。如果RE在差异下被关闭,特别是Sigma^* - L
将是RE。但是任何RE语言都是递归的(可判定的)。但是,有不可判定的RE语言(参见暂停问题)。
2)RE在笛卡儿积之下关闭
证明草图:
首先假设oracle将输入字符串的正确分区提供为来自L1
,L2
的单词。
在这种情况下,运行TM T1
,T2
以检查L1
,L2
中的包含,依次对其输入进行检查。如果两个TM都终止,则此设置终止。
接下来假设没有oracle。对于任何给定的输入字符串w
,有length(w)+1
个可能的分区。在相应分区的输入上并行运行连接的TM length(w)+1
,T1
的{{1}}个副本,每个分区一个。如果至少有一个克隆的TM连接终止,则此设置终止,这相当于输入字符串部分是T2
,L1
的成员,分别为