递归可枚举语言的闭包属性

时间:2015-07-09 06:28:30

标签: algorithm product difference turing-machines set-theory

请考虑以下问题:

L1L2成为两种语言。证明或反驳r.e.类的封闭性。

下的语言
  1. 差异(L1 - L2)

  2. 产品(L1 x L2) (尝试在L1的单词结束的假设下,以及不知道的情况下证明产品。

  3. 此处,封闭性意味着如果漫游机可以接受L1L2,那么(L1 - L2)(L1 x L2)

    备注

    我能够找到联合和补充的解决方案(联合:关闭;补充:未关闭),但不能用于上述(差异或产品)。

1 个答案:

答案 0 :(得分:1)

1)RE没有因差异而关闭。

证明: 假设它是。

Sigma为任意RE语言L的字母表。 Sigma^*是RE(TM只检查输入字符串是否仅包含来自Sigma的符号,否则为空)。如果RE在差异下被关闭,特别是Sigma^* - L将是RE。但是任何RE语言都是递归的(可判定的)。但是,有不可判定的RE语言(参见暂停问题)。

2)RE在笛卡儿积之下关闭

证明草图: 首先假设oracle将输入字符串的正确分区提供为来自L1L2的单词。 在这种情况下,运行TM T1T2以检查L1L2中的包含,依次对其输入进行检查。如果两个TM都终止,则此设置终止。

接下来假设没有oracle。对于任何给定的输入字符串w,有length(w)+1个可能的分区。在相应分区的输入上并行运行连接的TM length(w)+1T1的{​​{1}}个副本,每个分区一个。如果至少有一个克隆的TM连接终止,则此设置终止,这相当于输入字符串部分是T2L1的成员,分别为