我们如何使用归纳证明来证明这一点?

时间:2015-03-23 16:55:21

标签: theory context-free-grammar automata

设G是以下语法:

S→T⊣

T→TaTb | TbTa | ε

显示L(G)= {w⊣| w包含相等数量的a和b},使用w的长度感应证明。

在这种情况下可以假设什么?

1 个答案:

答案 0 :(得分:1)

为简单起见,我们可以忽略S符号,只是证明T产生的a和b的数量相等。

假设L = {w | w包含相同数量的a和b},证明由两部分组成: 1-T长度为n的每个字符串都在L中。 2 - 长度为n的L中的每个字符串都可以由T生成。

1) 通过归纳证明1是简单的。规则(T→ε)产生相等的a和b的数量,并且通过归纳,规则T→TaTb | TbTa也保持一个和两个相等。

2) 我们断言L中长度为n且以b结尾的每个字符串都可以通过首先使用规则T→TaTb来生成。 证明可以通过编号来确定。我们给每个'a'+ 1,每个'b'-1。 L中的每个字符串的总排名为“0”(由于等于“否”和“b”)。 L中以L结尾的每个字符串以等级0开始,并在最后一个b之前达到等级+1。在看到'a'之前,它可能会再次达到0级。这是我们可以将字符串w重写为T1aT2b的地方,其中T1和T2也在L中,并且感应可以由T产生。(如果w的等级从未达到0,则意味着w以a开头,所以T1 =ε) 以'a'结尾的字符串的证明是相似的。