需要证明语言 L = {a^nb^m: n < m < 2m} 不是正则的
Need to prove language L = {a^nb^m: n < m < 2m} is not regular
我不太了解泵引理,可以使用简单的分解来说明如何证明这样的事情。
假设语言 L = {a^n b^m: n < m < 2m} 是正则的。然后,通过泵引理,L 中长度至少为 p 的每个字符串都可以写为 xyz,其中 |xy| < p, |y| > 0 并且对于每个自然数 k,x(y^k)z 也是 L 中的一个字符串。考虑字符串 a^p b^(p+1)。该字符串的长度至少为 p,并且在 L 中。现在我们考虑子字符串 y 的选项:
- y 仅由 a 组成。那么,我们可以选择k > 1 来增加a的个数,使a的个数大于b的个数,得到一个不在L中的字符串。
- y 由 a 和 b 组成。然后,对于 k > 1,泵送将导致一些 a 出现在一些 b 之后,导致字符串不可能在 L 中。
- y 仅由 b 组成。然后,我们可以选择 k = p 所以至少有 2p + 1 个 b,给出的 b 的数量是 a 的两倍多,因此一个字符串不在 L.
因为这三种方式是选择子串y的唯一方式,所以没有办法选择y满足泵引理的条件。这是一个矛盾。因此,语言是正则的假设一定是不正确的。由此可见,语言是不规则的。证明是通过反证法/归约法得出的。
我不太了解泵引理,可以使用简单的分解来说明如何证明这样的事情。
假设语言 L = {a^n b^m: n < m < 2m} 是正则的。然后,通过泵引理,L 中长度至少为 p 的每个字符串都可以写为 xyz,其中 |xy| < p, |y| > 0 并且对于每个自然数 k,x(y^k)z 也是 L 中的一个字符串。考虑字符串 a^p b^(p+1)。该字符串的长度至少为 p,并且在 L 中。现在我们考虑子字符串 y 的选项:
- y 仅由 a 组成。那么,我们可以选择k > 1 来增加a的个数,使a的个数大于b的个数,得到一个不在L中的字符串。
- y 由 a 和 b 组成。然后,对于 k > 1,泵送将导致一些 a 出现在一些 b 之后,导致字符串不可能在 L 中。
- y 仅由 b 组成。然后,我们可以选择 k = p 所以至少有 2p + 1 个 b,给出的 b 的数量是 a 的两倍多,因此一个字符串不在 L.
因为这三种方式是选择子串y的唯一方式,所以没有办法选择y满足泵引理的条件。这是一个矛盾。因此,语言是正则的假设一定是不正确的。由此可见,语言是不规则的。证明是通过反证法/归约法得出的。