上下文无关语言的一部分是上下文无关的吗?

Jub*_*uff 4 computer-science context-free-grammar

我被困在解决这个练习上,而且我不知道从哪里开始:

语言B是上下文无关的;语言C是B的子集:C上下文无关吗?证明或反对。

我尝试使用闭包属性:

C = B-((A *-C)?B)[A *是字母A上所有单词的集合]

并且考虑到CF语言在补码和交集下不是封闭的,我会说C不是被强制为CF。但是我不确定这是否是一个很好的证明。

有人可以帮忙吗?

Rac*_*lit 5

这是一个提示。常规语言的子集不一定是常规的:a*b*是常规的,但是a^nb^n是常规语言的子集,a*b*也不是常规的。您能想到无上下文语言的相似之处吗?

  • 因此,例如:B = {A ^ n B ^ m C ^ n | n,m> 0}; A = {A ^ n B ^ m C ^ n | n = m}。A是B的子集,但不是CF。 (3认同)