这种语言有规律吗? {a ^ i b ^ j | i = j mod 19}

时间:2013-03-13 15:28:08

标签: pumping-lemma

我知道{a^i b^j | i = j }不是常规的,我可以用抽取的引理来证明;类似地,我可以使用泵浦引理来证明这个也不常规。但我认为我看到一些类似的问题,说这种语言实际上是正常的。因为我对抽水引理的知识没有信心,所以我问这个不好的问题。遗憾。

这是我证明的方式:让我们成为a^p b^(19k+p),显然这是语言。如果我抽了一个,就把它a^(p+1) b^(19k+p)。它失败。因此,这不是常规的。

我的证明是对的吗?

1 个答案:

答案 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和这个证据相对容易。