递归可枚举语言是接受每个字符串的语言,否则不接受。如果一种语言在每个字符串上都停止,那么我们将其称为递归语言。
我们需要证明所有在 {a} 上不可递归枚举的语言的集合是不可数的。
首先让我们看看递归可枚举语言是什么 -
递归可枚举语言
如果 L 是某个 TM 接受的字符串集,则语言 L 是递归可枚举的。
如果 L 是递归可枚举语言,则 -
如果 w ∈ L 那么 TM 在最终状态停止,
如果 w ∉ L 则 TM 在非最终状态中停止或永远循环。
如果 L 是递归语言,则 -
如果 w ∈ L 那么 TM 在最终状态停止,
如果 w ∉ L 则 TM 停止在非最终状态。
现在,通过理解递归可枚举语言的定义,证明所有在{a}上不可递归枚举的语言的集合是不可数的。
证明
步骤 1 - 让我们假设 S 是字母表 ∑ 上所有语言的集合。
Step 2 - 让我们假设所有语言的集合 S 都是不可数的。
步骤 3 - 集合 S 是两个集合 S1 和 S2 的并集,因此,集合 S1 由所有递归可枚举语言(图灵机接受的语言)组成,并且,集合 S2 由所有非递归可枚举语言组成语言(注意 S1' = S2)。
第 4 步- 现在,我们必须证明 S2 是不可数的。因为我们有 S = S1∪S2。我们知道集合 S1 是可数的,因为图灵机的集合是可数的。
Step 5 - 如果 S2 是可数的,那么我们可以说集合 S 也是可数的(因为两个可数集合的并集是可数的)。但这不可能,因为集合 S 是不可数的。因此,我们可以说集合 S2 是不可数的。