如果语言L的每个子集都是常规的,那么L是常规的吗?

时间:2013-01-21 17:40:27

标签: regular-language computation-theory

我知道上述定理的反过来是不正确的,即如果L是正则的,那么L的每个子集都不需要是常规的

1 个答案:

答案 0 :(得分:7)

不仅

  

如果语言L的每个子集都是规则的,那么L是常规的

但也

  

如果语言L的每个适当子集是规则的,那么L是有限的

<强>证明:

这相当于声明

  

如果语言L是无限的,那么它包含的语句不是常规语言。

常规语言的抽象引理表明,如果语言中的单词l长于w,则存在长度l,则存在三个x,y,z单词yxyz == w非空,xy^nz,每个x,y,z都使用语言&#34;。

如果一种语言是无限的和规则的,那么它包含的字长于任何给定的长度。因此,必须存在三个单词xy^nz,以便每个{xy^nz; n in N}都在该语言中。

现在,L的每个正确子集都是xy^nz的正确子集。现在,肯定存在{xy^{n^2}z; n in N}的正常子集,这些子集不是常规*。因此,每个常规无限语言都有一个不规则的适当子集。

如果一种语言是无限的而不是规则的,那么考虑它的任何适当的无限子集。如果子集不规则,那么语言不是反例。如果子集是常规的,则使用前一段找到非常规的正确子集。由于作为适当的子集是可传递的,因此该子集是原始语言的适当子集,并且该语言不是反例。

因此,每种无限语言都有一个不规则的适当子集。

因此,如果一种语言的每个适当的子集都是规则的,那么语言是有限的(因此是有规律的)。

QED

*例如,集合{xy^nz; n in N}是{{1}}的正确子集,并且不是常规的,如Myhill-Nerode theorem所示。