所以我有这个问题我正在研究关于Context Free Grammars的归纳证明。
鉴于此语法
S-> aSb | SS | AB
使用归纳证明语法生成的字符串不以 abb 开头。
很容易看出这实际上是正确的,但我对如何制作它的正式证据有一些问题。
我想要使用价值归纳法对词的长度进行过程,或者通过价值归纳来推导词的长度(在这种情况下,不知道哪一个更好)。
让我们在推导的长度上使用归纳法。
基本情况:推导的长度是一步,然后唯一的可能性是S-> ab,显然有效。
归纳假设:如果S => w' n个推导(n> 0),则w'不以abb开头
归纳步骤:??
诱导步骤是我遇到问题的地方,我不知道该怎么做。
我想知道是否有人可以解释我应该在那里做什么?
谢谢!
答案 0 :(得分:0)
对于n的任何归纳,基本情况是P(0)或P(1),归纳假设是P(n),诱导步骤是证明P(n)意味着P(n + 1) )。所以你希望你的归纳步骤是:
归纳步骤:鉴于所有w'这样S =>瓦特'有n个推导步骤,w'不是以字符串abb开头,证明对于所有w''这样S =>瓦特''使用n + 1个推导步骤,w''不以字符串abb开头。
换句话说:如果对于长度为n的所有推导,我们都有w不以abb开头的属性,我们希望证明对于长度为n + 1的所有推导,相同的属性都成立。
长度为n + 1的每个推导都具有S - >中的一个。 aSb,s - > SS或s - > AB。 (如果我们要求n> 0,那么最后一个不适用。)所以你想要一个案例分析。
案例1:S - > ASB。如果S可以扩展为单个b,或者扩展为bb的字符串,我们就会反驳结论。如果我们能够证明语言中的单词不是以b开头,或者等效地说每个单词都以a开头,我们就可以为这个案例确定结论。
案例2:S - > SS。初始字符串abb必须是
归纳假设排除了第一个和最后一个。那么我们可以通过多少种方式定义前缀' abb'在第一个S和第二个之间?我算两个:' a' +' bb'和' ab' +' b'。如果我们能够证明这些语言中的任何一个都不可能,那么我们就可以免费回家了。
所以,如果我的任务是制作这个证据,我首先要证明语言中没有任何单词以' b'开头,并使用它来处理这两种情况。