证明有限字母表上所有语言的集合是不可数的
Trying to do some revision but not sure on this one:
Prove that the set of all languages over a finite alphabet is uncountable.
I have a feeling it will require using the Cantor Diagonalization method - but I'm not sure how you would use it for this problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在计算理论课上发现了这个证明,我希望它对你有用
|N| < |语言(N)|
假设|N| >= |语言(N)|。因此, languages(N) 的每个元素都可以与 N 的其中一个元素相关。因此它们可以按顺序排列:
languages(N) = {S_1 , S_2, S_3, ...}
我们定义一个集合D 就像:
D = {n in N / n not in S_n}
D 是有效的,并且 D 是 N 的子集,因此 D 属于语言(N)。
因此,必须存在一个 k,其中 D = S_k
1) 如果 k 属于 D,则根据 D 的定义,k 不属于 S_k。并且 k 不属于 D 因为 D = S_k(我们发现矛盾)
2) 如果 k 不属于 D 则: k 属于 S_k(根据 D 的定义)并且 k 属于 D 因为 D = S_k(又矛盾了)
像假设的那样的序列不可能存在。因此,为 languages(N) 的每个元素分配 N 元素的单射函数是不可能的。结论是|语言(N)| !<= |N|,所以 |语言(N)| > |N|
I've found in my computation theory class notes this proof, I hope it's useful for you
|N| < |languages(N)|
Supose that |N| >= |languages(N)|. Therefore, each of the elements of languages(N) can be related to one of the elements of N. So they can be put into order:
languages(N) = {S_1 , S_2, S_3, ...}
We define a set D like:
D = {n in N / n not in S_n}
D is valid and D is a subset of N, therefore D belongs languages(N).
So, there must exist a k for which D = S_k
1) If k belongs to D then by definition of D, k doesn't belong to S_k. And k doesn't belong to D Because D = S_k(We find a contradiction)
2) If k doesn't belong to D then: k belongs to S_k(by definition of D) and k belongs to D because D = S_k(Contradiction again)
A sequence like the one assumed can't exist. Therefore an injective function that assigns an elemnt of N for each element of languages(N) is not possible. Concluding that |languages(N)| !<= |N|, so |languages(N)| > |N|