Skip to content

正则语言泵引理

Pumping lemma for regular languages

足够长的正则语言成员必有一段位于短前缀中的非空环,可删除或重复任意多次而仍留在语言中。

条目类型
定理

形式陈述

L正则语言,则存在整数 p1,使每个满足 wL|w|p 的字都可分解为 w=xyz,并满足

|xy|p,|y|>0,i0,xyizL.

量词顺序是

pw(x,y,z)i.

其中对 w 的全称量化限于 wL|w|p,对分解的存在量化限于上述两个长度条件。引理只保证至少有一个可泵分解,不保证每个中段都能泵。

证明取一台识别 L 的 DFA,令 p=|Q|。读取 w 的前 p 个符号时,包括起点在内共访问 p+1 个状态。由鸽巢原理,存在 0r<sp 使第 r 步与第 s 步到达同一状态。把前 r 个符号记为 x,接下来的 sr 个记为 y,其余记为 z,就有 |xy|=sp|y|=sr>0

从同一状态读 y 又回到自身,所以读 yi 对任意 i0 都仍回到该状态。前段 x、后段 z 的运行保持不变,原字 xyz 接受便推出所有 xyiz 接受。i=0 删除环,i=1 得到原字,i>1 重复环。

直觉

有限自动机面对足够长的接受字,必定在输入尚未读完时重访某个状态。两次访问之间的输入片段对控制状态的净效果为零:从该状态出发,读完片段又回来。机器看不出这段究竟出现一次、零次还是更多次,于是整个语言必须容忍某种局部重复。

泵长度并不是语言中所有周期的最小值,也不是输入被平均切成的块长。证明只告诉我们,若有一台 p 状态 DFA,那么每个足够长的接受运行在前 p 个字符内含环。不同的字可以选择不同位置的环,同一个字也可能有多种合法分解。

使用引理证明非正则性像一场量词游戏:先假设对手给出任意泵长度 p;你据此选择一个结构脆弱的长字 w;对手再选择任何合法分解;你必须针对这份分解找到某个泵次数破坏成员资格。若自己先挑 y,就交换了量词,证明不成立。

例子与边界

证明

L={0n1n:n0}

不正则。假设引理给出泵长度 p,选择 w=0p1p。对任意满足 w=xyz|xy|p|y|>0 的分解,中段 y 完全落在第一段 0 中,故 y=0k,其中 k1。取 i=0 后,

xz=0pk1pL,

与所有 i 都应留在 L 矛盾。选择 0p1p 是为了利用长度约束,把任意合法环都限制在同一种符号内;删环随即打破两段相等关系。

上述反证的逻辑否定应完整写为

p1wL, |w|pw=xyz 满足长度条件i0: xyizL.

只击败一种分解,或只为预先选定的 p 给出反例,都没有否定泵引理。

泵引理是正则性的必要条件,不是充分条件。成功为某些字找到可泵片段,最多说明这些字没有暴露矛盾;它既没有构造有限自动机,也没有覆盖定理要求的全部量词。有限语言则因没有足够长的成员而真空满足引理,并且本来就正则。

长度约束 |xy|p 把环限制在运行的早期,使证明者可以设计一个前缀结构单一的见证字。若只要求某处存在环,分解可能跨过决定成员资格的结构边界,许多标准反证便无法控制中段。

推论与应用

泵引理把“有限状态必有环”转化为可操作的非正则性证明。它特别适合计数匹配、长距离依赖和复制结构中能用短前缀锁定环位置的语言;若目标语言形状复杂,可先利用闭包与正则过滤器提取一个简单核心,再应用引理。

Myhill–Nerode 定理提供与本引理互补的路线:构造无限多个两两可区分前缀即可证明非正则,还能给出有限情形的精确状态下界。泵引理通常从一条长接受运行找环,Myhill–Nerode 则从许多前缀的不同未来找下界;前者只是必要条件,后者是充要刻画。

参考资料
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013, §1.4.
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006, §4.1.
关系图谱5 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系