繁体   English   中英

证明语言是语法的一部分,反之亦然

[英]proving that a language is part of a grammar and vice versa

所以这里有一个语法 R 和一个语言 L,我想证明从 R 出来 L。

    R={S→abS|ε} , L={(ab)n|n≥0}

所以我想我会证明 L(G) ⊆ L 和 L(G) ⊇ L 是正确的。

对于 L (G) ⊆ L:我通过对导数步数 i 的归纳表明,在每个导数步 u → w 之后,根据 R 的规则,w 由 u 产生,w = v1v2 或 w = v1v2w 与 | v2 | = | v1 | v1 ∈ {a} ∗ 和 v2 ∈ {b} ∗。 并且在归纳开始时:在 i = 0 时,它产生 w 是 ε,而在 i = 1 时,w 是 {ε, abS}。

到目前为止是这样吗?

所以这里有一个语法 R 和一个语言 L,我想证明从 R 出来 L。

可能您想要做的是表明某些语法 R 的语言 L(R) 与其他语言 L 以另一种方式指定的相同(在您的情况下,使用正则表达式的 set-builder 符号)。

所以我想我会证明 L(G) ⊆ L 和 L(G) ⊇ L 是正确的。

鉴于上述假设,您认为这是进行证明的正确方法是正确的。

对于 L (G) ⊆ L:我通过对导数步数 i 的归纳表明,在每个导数步 u → w 之后,根据 R 的规则,w 由 u 产生,w = v1v2 或 w = v1v2w 与 | v2 | = | v1 | v1 ∈ {a} ∗ 和 v2 ∈ {b} ∗。 并且在归纳开始时:在 i = 0 时,它产生 w 是 ε,而在 i = 1 时,w 是 {ε, abS}。

这对我来说很难遵循。 这并不是说这是错误的。 让我用我自己的话写下来,也许你或其他人可以判断我们是否在说同样的话。

我们想证明 L(R) 是 L 的一个子集。也就是说,任何由语法 R 生成的字符串都包含在语言 L 中。我们可以通过对生成的字符串的推导步骤数进行数学归纳来证明这一点由语法。 我们从一个推导步骤的基本情况开始:S -> e 通过选择 n = 0 产生空词,它是语言 L 中的一个字符串。 现在我们已经建立了基本情况,我们可以陈述归纳假设:假设对于所有从语法中直到并包括 k 的步骤中导出的所有字符串,这些字符串也在 L 中。 现在我们必须证明归纳步骤:从语法中的 k+1 步中导出的任何字符串也在L. 让 w 是从 k+1 步中的语法派生的任何字符串。 从语法中很明显,w 的推导必须是 S -> abS -> ababS -> ... -> abab...abS -> abab...abe = abab...ab。 但是这个推导和k步从文法推导一个字符串是一样的,只是在S->e的应用之前多了一个S->abS的应用。 通过归纳假设,我们知道在 k 步中导出的字符串 w' 的形式为 (ab)^m,对于某些 m 至少为零,并且将 S -> abS 的额外应用添加到推导中添加了 ab。 因为 (ab)^m(ab) = (ab)^(m+1) 我们可以选择 n = m+1。 因此,根据需要,从 k+1 步中的语法派生的所有字符串也在语言中。

为了证明语言中的所有字符串都可以在语法中导出,请考虑以下构造:要导出语法中的字符串 (ab)^n,应用产生式 S -> abS 的次数等于 n,并且生产 S -> e 恰好一次。 第一步给出中间形式 (ab)^nS,第二步给出闭合形式字符串 (ab)^n。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM