我刚刚开始阅读关于泵浦引理并且知道如何执行一些证明,主要是通过矛盾。只是这个特殊的问题,我似乎没有找到答案。我不知道如何开始。我可以假设必须有一个抽取长度P
,并且对于L的所有w
元素,LENGTH(w) >= P
。当然,我们可以用{3}的正常条件写出xyz
。
我必须证明以下语言不常规:
L = {x + y = z | x,y,z element of {0,1}* and #(x) + #(y) = #(z) }
有人可以帮我解决这个问题,我真的想掌握证明这类问题的过程吗?
修改
抱歉,忘了说字母是{0,1,+,=}
而#
表示字符串的二进制值。与#(00101) = 5
和#(110) = 6
一样。
答案 0 :(得分:2)
既然你想掌握这个过程,我会在展示证据之前指出一些事情。
首先要注意的是,+
和=
可能只出现一次。因此,当您将字符串w
写为w = abc
时,抽取的部分b
不能包含+
或=
,否则您将达到一个微不足道的矛盾(我没有使用更标准的w = xyz
符号来避免与L
的定义混淆)。
需要注意的另一件事是,通常情况下,您需要选择一个特定的字符串w
来进行抽取。在这种情况下,可以更容易选择一组共享某个属性的字符串。抽取引理只需要你使用一个字符串来达到一个相互作用,但没有理由你不能用多个字符串达成矛盾。
证明(在剧透中):
因此,
w
为L
中的任何字符串,以使|w| ≥ P
和x, y, z
不包含前导0
。通过抽取引理,我们可以将w
写为w = abc
通过抽取引理,我们知道b
不是空的。由于b
不能包含+
或=
,因此它完全包含在x, y,
或z
中。使用任何i≠1抽取w
会导致二进制方程不再保持,因为x, y, z
中只有一个是不同的数字(这就是我们需要无前导0
位的原因)。
答案 1 :(得分:2)
选择字符串1(0^n+1) + 1(0^n) = 11(0^n)
。
换句话说,你的字符串将显示“2到2的幂和+ 2加2到幂n + 1等于11后跟n个零”。
由于要抽取的字符串将完全由第一个加数中的符号组成,因此抽取必须更改所表示的数字(向数字添加或删除数字将更改数字;这是正确的,因为我们的字符串不包含前导零)如果x + y = z
成立,那么x' + y = z
如果x' != x
(至少是整数)则不会成立。
由于泵浦引理要求泵浦的字符串在语言中,并且泵送该字符串失败,我们认为语言不规则。