《计算理论导论》一书中的抽水引理证明是错误的吗<>?



"抽水引理"的证明来自<计算理论导论>:

抽引理:如果 A 是常规语言,则有一个数字 p (泵送长度),其中如果 s 是 A 中长度至少为的任何字符串 p,则 s 可以分成三部分,s = xyz,满足 以下条件:

  1. 对于每个 i ≥ 0, xyiz ∈ A,
  2. |y|> 0 和
  3. |xy| ≤ p

设 M = (Q, Σ, δ, q1, F) 是识别 A 的 DFA。我们分配 泵送长度 p 为状态数 M。我们证明任何 长度至少为 p 的 A 中的字符串 s 可以分成三部分 XYZ,满足我们的三个条件。如果 A 中没有字符串 长度至少为p?那么我们的任务就更容易了,因为定理 变得空洞真实:显然这三个条件适用于所有人 长度至少为 p 的字符串(如果没有任何此类字符串)。

问题:粗体引用部分,我认为这是错误的。因为如果 A 中没有字符串的长度至少为 p,那么它显然不是常规语言。

这里有两点需要澄清:

  1. 抽水引理指出,"如果一种语言是正则的,那么该语言中长度至少为 p 的所有字符串都具有一些属性。如果你的语言没有任何长度至少为 p 的字符串,那么从没有反例的意义上说,这个陈述是空洞的。如果 x 是假的,那么 y"在数学上为。"如果月亮是奶酪做的,那么我就是法国国王"是数学上正确的陈述。这可能与我们通常使用条件的方式略有不同,在条件中,我们假设假设通常(有条件地,假设地)为真。但这是它的正式含义。
  2. 任何字符串长度不至少为 p 的语言都有长度严格小于 p 的字符串。因为字符串的长度必须是非负整数,这意味着有有限多个长度。因为每个字符串长度对应于语言字母表上有限多个可能的字符串,并且有限多个有限项的总和必须是有限的,所以任何这样的语言都必须是有限的。我们知道有限语言必须是有规律的,无论抽水引理怎么说;无论如何,常规语言的引理与这种情况无关,所以这里所说的是真是假真的无关紧要。对于字符串较短的语言,简单地什么都不说会比试图指出其声明在这些情况下也是一致的相比,这不会令人困惑。

最新更新