Regex 非正则上下文无关语言与无限正则子语言

Regex 非正则上下文无关语言与无限正则子语言,regex,nlp,context-free-grammar,Regex,Nlp,Context Free Grammar,我在大学里有一份工作,基本上是这样说的: “证明非正则语言L={0^n 1^n:n natural}没有无限个正则子语言。” 我用矛盾的方式证明了这一点。我基本上说有一种语言S,它是L的一个子语言,是一种正规语言。因为S的可能正则表达式是0*、1*、(1+0)*和(0o1)*。我检查每个语法,并证明它们都不是语言L的一部分 然而,我如何证明任何非规则上下文无关语言都不能包含任何规则无限子语言 我不想要证明本身,我只想指出正确的方向。对于0^n 1^n语言,研究泵引理可能是有价值的,我想当我学习泵

我在大学里有一份工作,基本上是这样说的:

“证明非正则语言L={0^n 1^n:n natural}没有无限个正则子语言。”

我用矛盾的方式证明了这一点。我基本上说有一种语言S,它是L的一个子语言,是一种正规语言。因为S的可能正则表达式是0*、1*、(1+0)*和(0o1)*。我检查每个语法,并证明它们都不是语言L的一部分

然而,我如何证明任何非规则上下文无关语言都不能包含任何规则无限子语言


我不想要证明本身,我只想指出正确的方向。

对于0^n 1^n语言,研究泵引理可能是有价值的,我想当我学习泵引理时,它被用于a^n b^n语言(同样的事情)。泵引理可能有助于你的证明

也可以考虑正则语言在补码、并集、交集和KLeNEN星下被关闭。 也就是说,如果L1和L2是正则的,那么:

L1 L2 (concatenation) is also regular.
L1 n L2 is regular
L1 U L2 is regular
¬L1 is regular 
L1* is regular

通过使用这些规则,你可以证明任何包含规则无限子语言的语言都是规则的。

编辑:错误声明,只适用于上下文无关的语言

,因为你只需要提示(谢天谢地,因为我从大学起就忘了如何做证明),请查看,以及它具有哪些属性。仅仅从那里看,我就有足够的信息来证明这一说法。

你的直觉很好。这里有两件事


首先,几乎总是当问题的形式是“证明L不是正则的/不是CF”时,答案将涉及到使用泵引理。类似地,当你遇到一个问题,如“显示没有X,那…”时,简单的方法(几乎总是)是矛盾证明。

L={0^n 1^n:n natural}是非规则上下文无关的

M=2*3*是无限正则的


N=L∪M是非正则上下文无关的。N包含M。

你能再解释一下你的逻辑吗?我不太相信你是对的。在与reg相交的情况下,非规则不闭合:let L1={w∈ {a,b}*stw=a^nb^n}和L2={w∈ {a,b}st w=ab}L1是非reg,L2是reg,L1∩ L2=L2这是我经常犯的错误,我把这句话和上下文无关的语言混淆了。删除。