我想知道给定一个只包含Kleene星形运算符(例如(ab)*)的常规语言L,是否有可能通过两种非常规语言的串联生成L?我试图证明L只能由两种常规语言的串联生成。
谢谢。
这种说法是错误的。考虑这两种语言在 Σ = {a} 上:
L1 = { a n |n 是 2 的幂 } ∪ { ε }
L 2 = { a n |n 不是2 的幂 } ∪ { ε }
这两种语言都不是正则的(第一种可以用Myhill-Nerode定理证明是非正则的,第二种语言与L1的补码密切相关,也可以证明是非正则的。
但是,我要声称L1L2 = a*。首先,请注意,串联 L1L2 中的任何字符串的形式为n n,因此是 a* 的元素。接下来,取 a* 中的任何字符串;让它成为一个n。如果 n 是 2 的幂,那么它可以形成为 L1 的 n 和 L2 的ε 的串联。否则,n 不是 2 的幂,它可以形成为 L1 的 ε 和 L2 的n 的串联。因此,L1L2 = a*,所以你试图证明的定理是假的。
希望这有帮助!