如果pref(L)是常规的,这是否意味着L也是常规的?

时间:2014-11-24 17:29:09

标签: regular-language dfa nfa automaton

我有这项练习作业:

  

假设我们有一种语言L.我们知道语言pref(L)L的所有前缀,包括L本身中的所有单词)都是常规语言。这是否意味着语言L也是常规的?

我取了pref(L)的NFA并将其(通过2个epsilon转换从q0)划分为2个单独的NFA,因为1定义了L而另一个定义了pref(L)\L

我实际得到的是L的NFA,这意味着它是常规的。

我不确定这是否合法。我很高兴再次领导。

提前致谢,

亚龙。

1 个答案:

答案 0 :(得分:2)

如果pref(L)是规则的,那么L不一定是正常的。

例如,让Σ= {a}为一元字母。我要声明如果L是任何无限语言而不是Σ,那么pref(L)=Σ*。要看到这一点,首先要注意pref(L)⊆Σ*因为每个pref(L)都是Σ语言。现在,考虑Σ*中的任何字符串,其必须具有 n 的形式。如果L是Σ上的无穷大语言,则它必须包含至少一个形式为 m 的字符串,其中m≥n。然后 n 将是 m 的前缀,因此 n ∈pref(L)。这表明Σ*⊆pref(L)和pref(L)⊆Σ*,所以在这种情况下Σ* = pref(L)。

现在,我们需要做的就是在Σ= {a}上找到一种非正规语言。例如,采用语言{a 2 n |所有字符串的n∈N},其长度为2的幂。可以使用Myhill-Nerode定理或泵语法证明这种语言不规则。但是,通过上述结果,我们知道pref(L)是一种常规语言。

希望这有帮助!