Diz-se que a interseção de uma linguagem livre de contexto L com uma linguagem regular M é sempre livre de contexto. Entendi a prova de construção entre produtos, mas ainda não entendo por que ela é livre de contexto, mas não regular.
O idioma gerado por essa interseção possui seqüências de caracteres aceitas por um PDA e um DFA. Como é aceito por um DFA, não deveria ser um idioma comum? Além disso, se a interseção for regular, também implica em contexto livre, pois todos os idiomas regulares também são livres de contexto.
Alguém pode me explicar por que a linguagem obtida por esse cruzamento não é regular?
Respostas:
Se é livre de contexto, existe um PDA P que o aceita. Se M é regular, existe um DFA F que o aceita. O idioma intersecção consiste das palavras que são reconhecidos por P e F .L P M F P F
Qualquer palavra que está na intersecção é aceito por , mas nem todas as palavras que são aceites pela F estão na intersecção: apenas aqueles que também são aceitos por P .F F P
A prova de produto cruzado consiste em construir um autômato que contém a mecânica de P e F e que aceita apenas palavras pelas quais ambos os lados aceitam. O autómato de produto cruzado é um PDA (e, por conseguinte, a língua é reconhecido livre de contexto) - intuitivamente, porque o produto cruzado com um n DFA -state consiste em tomar n cópiasP⊗F P F n n e adicionar ( Q , um , [ q ] ) setas entre estados correspondentes em P, onde o DFA tem umP (q,a,[q]) P a Setas; flechas. O resultado não é um autômato finito em geral (nem mesmo um não-determinístico), porque a parte depende da pilha e essa confiança não desaparece em P ⊗ F em geral.P P⊗F
Um exemplo trivial que é é regular, e, se L é livre de contexto mas não regular, então G ∩ Um * = L é livre de contexto mas não regular.A∗ L L∩A∗=L
fonte