语言非正则性证明
引理 设 Σ 为字母表,A⊆Σ∗ 为正则语言,则存在 n 满足:∀w∈A,当 ∣w∣≥n 时,有
w=xyz,x,y,z∈Σ∗
- y=ϵ
- ∣xy∣≤n
- xyiz∈A,i=0,1,2,⋯
证明 设 A 被 DFA M=(Q,Σ,δ,q0,F) 识别,且 ∣Q∣=n,既然 w∈A,有以下转移 δ(ri,ai+1)=ri+1,其中 w=a1a2⋯am(m≥n),ri∈Q,i=0,1,2,⋯,r0=q0,rm∈F0。【?】
由于 ∣Q∣=n≤m,所以 r0,⋯,rm 中必定有两个状态相同,记为 rs,rt,0≤s<t≤t。
若取 x=a1⋯as,y=as+1⋯at,z=at+1⋯am,则定理中的条件必定满足。■
Problem 1 设 Σ={0,1},Lsame={0m1m:m∈N},证明其为非正则语言。
证明 (反证法)若 Lsame 是正则的,则存在 n≥1 满足泵引理,考虑 w=0n1n,则有 w=xyz,其中 y=ϵ,且 ∣xy∣≤n,以及 xyiz∈Lsame,i=0,1,2,⋯。 另 y=0k(k≥1),x=0k1,z=0k21n。
显然当 i=1 时,xyiz∈Lsame,这是矛盾的,因此是 Lsame 非正则的。
Problem 2 Σ={0,1},A={0m1r:m,r∈N,m>r},证明其是非正则的。
证明 (反证法)设 A 是正则的,则存在 n 满足泵原理。取 w=0n+11n∈A,有 w=xyz 满足
- y=ϵ
- ∣xy∣≤n
- xyiz∈A,i=0,1,2,⋯
其中 y=0k(k≥1),然而 xz=0n+1−k1n∈A,因此 A 非正则。■
Problem 3 Σ={0},Lsquare={0m2:m∈N},证明其是非正则的。
证明 (反证法)若 Lsquare 是正则的,则存在 n 满足泵引理。取 w=0n2∈Lsquare,有 w=xyz 满足
- y=0k(k≥1)
- ∣xy∣≤n
- xyiz∈A,i=0,1,2,⋯
当 i=2 时,由于 n2+1≤n2+k≤n2+n,所以 n2+k 不是完全平方数,因此 xy2z∈Lsquare。■
作业 证明 Lpal={w∈Σ∗:w=wR} 是非正则的,其中 Σ={0,1},wR 是 w 的反转,如 w=a1a2⋯am,则 wR=amam−1⋯a1。
证明 假设 Lpal 是正则语言。根据正则语言的泵引理,存在一个整数 n(称为泵长度),使得对于所有 w∈Lpal 且 ∣w∣≥n 的字符串 w,我们可以将其分解为 w=xyz,并且满足以下条件:
- ∣xy∣≤n,
- ∣y∣>0,
- 对于所有 i≥0,xyiz∈Lpal(即泵出的字符串仍然在语言中)。
取 w=0n10n,这是一个长度为 2n+1 的回文字符串,显然 w∈Lpal,且 ∣w∣=2n+1≥n。
根据泵引理,字符串 w 可以分解为 w=xyz,并且满足:
- ∣xy∣≤n,
- ∣y∣>0。
由于 ∣xy∣≤n,可以得出 x 和 y 都仅包含字符 0,因此 y=0k,其中 k>0。
现在我们考虑 i=2 的情况。此时,泵出的字符串为:
w′=xy2z=0n+k10n
这是一个新的字符串,前缀为 0n+k,后缀为 0n。
显然,w′ 不是回文字符串,因为前缀和后缀的长度不同。具体地,前缀包含 n+k 个 0,而后缀只包含 n 个 0,因此 w′=w′R,即 w′∈/Lpal。
根据泵引理的条件,所有泵出的字符串 xyiz 都应属于语言 Lpal。但是,我们已经证明当 i=2 时,w′∈/Lpal。这与泵引理的结论矛盾。
因此,语言 Lpal 不是正则语言。
正则语言的进一步讨论