我知道{a^i b^j | i = j }
不是常规的,我可以用抽取的引理来证明;类似地,我可以使用泵浦引理来证明这个也不常规。但我认为我看到一些类似的问题,说这种语言实际上是正常的。因为我对抽水引理的知识没有信心,所以我问这个不好的问题。遗憾。
这是我证明的方式:让我们成为a^p b^(19k+p)
,显然这是语言。如果我抽了一个,就把它a^(p+1) b^(19k+p)
。它失败。因此,这不是常规的。
我的证明是对的吗?
答案 0 :(得分:1)
看看this answer。简而言之,你没有正确地抽出绳子。抽取引理表明您的字符串w
可以划分为w = xyz
|xy| ≥ p
,而y
不为空。然后,您可以将所有i≥0的字符串抽取为xy i z。
这里的关键是,泵浦引理表明存在字符串w
的一个分区,满足这些属性,你不能选择分区,你可以只将字符串作为xy i z。
然而,这种语言是常规的,因此抽取引理不能用于证明语言是否规则,它只能证明一种语言是否是不规则的(这是一种必要但不充分的条件)。要显示某种语言是常规的,您可以构建一个完全描述您的语言的DFA,NFA或正则表达式。一个这样的正则表达式是:
(a^19)*(e|ab|aabb|aaabbb|...|a^18b^18)(b^19)*
其中e
是空字符串。
我怀疑你的语言是自动机或计算的入门课程的一个例子。如果您感兴趣,Myhill-Nerode theorem通常不会在介绍性材料中介绍,但在这种情况下提供了一个非常简单的规律性证明:考虑区分扩展b,bb,bbb,...,b ^ 19和这个证据相对容易。