虽然接受的答案以自己的方式是完整的,但我不得不添加一些内容。我有一个非常有趣的方法来利用泵引理来证明给定的语言不是常规语言。
只是为了讨论一个上下文,让我陈述引理:
为正则语言抽取引理:
对于任何正则语言 L,都存在一个整数 k。
使得对于所有具有 |x| 的 x ∈ L ≥ k,存在 u, v, w ∈ Σ∗,这样
x = uvw,并且
(1) |紫外线| ≤ k
(2) |v| ≥1
(3) 对于所有 i ≥ 0:u(v^i)w ∈ L
k 被称为Pumping lemma constant。让我直截了当地向您展示如何证明语言 L 不规则。
现在要开始游戏,您需要两个玩家。一个是 Reader(R),另一个是 Adversary(A)。
输入:一种语言 L
R 的目标:通过某种矛盾以某种方式证明语言 L 是不规则的。
A 的目标:以某种方式准备好面对R 的论点,不要让他/她制造矛盾。
现在让我们开始论证。
A: 语言 L 不是不规则的,因为没有人可以使用具有特定泵浦常数 k 的泵浦引理来显示矛盾。 (每种语言只映射到一个整数k)
R: 让我假设你说的是什么。如果语言 L 是正则的,那么它必须满足泵引理的条件。所以,让我选择一个合适的字符串 x ∈ L (|x| >= k),这样它可以帮助我以后创建一个矛盾。
A:在R的挑战下,A尽力为字符串x找到至少一个合适的分区u、v和w,这样
x = uvw and |uv| <= k and |v| > 0
R:对于A 给出的任何可能的分区,如果能够显示整数 i >= 0,则赢得参数,使得
u(v^i)w ∉ L
因为现在R 表明语言 L 至少有一个字符串 x 没有任何分区 (u, v, w) 以满足抽水引理。矛盾的发生是因为我们假设 L 是正则的是FALSE。因此语言 L 被证明是不规则的。
如果R 无法显示以上内容,则这不是语言为正则的证明。这只是意味着 L 可以是正则或不规则语言,恰好满足抽水引理条件。
永远记住,抽水引理是if(L 是常规的),then 语句。反之亦然,不一定是TRUE。虽然在某些情况下可能是TRUE。
因此,只有当您想证明一种语言不是正则语言时,抽水引理才有用。
(来源:Theory of Computation(NPTEL): Prof. Somenath Biswas(IIT Kanpur)