Myhill-Nerode e propriedades de fechamento

8

É sabido que as línguas regulares são caracterizadas pela equivalência Myhill-Nerode. Para o idiomaL sobre Σ defina a equivalência xLy sobre Σ iff para todos zΣ temos xzLyzL. EntãoL é regular se L é de índice finito, ou seja, possui um número finito de classes de equivalência.

Eu sei que a relação pode ser usada para mostrar que alguns idiomas não são regulares, indicando infinitamente muitas seqüências que não são equivalentes.

Minha pergunta: podemos usar facilmente o Myhill-Nerode para mostrar propriedades de fechamento de idiomas comuns? Ou devemos usar a "congruência sintática" das línguas?

Como exemplo de prefixo, é fácil, pois xLy implica xpref(L)y. Mas como lidamos com sufixo, concatenação, estrela, espelho?

Hendrik Jan
fonte

Respostas:

6

Eu faço o fechamento em operações booleanas com a caracterização MyHill-Nerode. Nunca vi isso assim. Uma congruência correta satura um idioma L E se

uv(uLvL)
ou equivalentemente se Lé uma união de classes de congruência. Nós usamos:

Teorema: (MyHill-Nerode) Uma linguagem é regular se e somente se houver uma congruência correta de índice finito que saturaL.

Agora, suponha que tenhamos idiomas regulares L1,L2Xe denotar L1,L2algumas congruências corretas de índice finito saturando-as. Então

uv:⇔uL1vuL2v
é uma congruência correta (a interseção de ambos) e refina os dois. Além disso, temos
[u]=[u]L1[u]L2.
Portanto, temos um número finito de classes de equivalência. Isso também indica que a interseção de classes de equivalência[u]L1 e [v]L2 está vazio ou tem um elemento comum w e, portanto, é igual à classe de equivalência [w]. Isso dá queL1L2 está vazio ou pode ser escrito como a união da classe de equivalência para . Pelo teorema acimaL1L2 é regular.

Para L1L2 é uma união de classes de equivalência para 1 e 2, que são as doze uniões de classes de equivalência para , portanto, também é regular. E, para complementação, segue como a partição de classes de equivalênciaX, portanto, uma congruência correta trabalhando para L1 trabalha também para XL1.

Comentários adicionais: Na sua pergunta, você também mencionou a congruência correta de Nerode canônica

uLv:⇔(wX:uwLvwL)
com LX. Esta é a mais grossa congruência direita saturandoL. Agora talvez seja natural perguntar se podemos construir a congruência correta de Nerode deL1L2 ou L1L2 facilmente fora daqueles para L1,L2, ou se a congruência resultante da interseção surgir como alguma congruência correta de Nerode. Talvez possamos encontrar fórmulas simples como
uL1L2vuL1vuL2v.
Mas o acima não se aplica. E que eu saiba, não existe nenhuma relação simples. Por exemplo, considereL1=(aa) e L2=a(aa)+, então nós temos
L1L2=,L1L2=X{a}.
Agora L1L2 possui pelo menos quatro classes de congruência, pois refina L2que tem exatamente quatro classes de congruência. Mas tem precisamente uma classe e X{a} possui três (todos podem ser vistos facilmente usando o mínimo de autômatos completos).

EDIT (2019.08.18). A operação de espelho e sufixo está relacionada à congruência esquerda

uLvwX:wuLwvL.
E se L tem índice finito, semelhante ao da operação de prefixo e congruência correta, suffix(L)tem índice finito. E uLv iff mirror(u)mirror(L)mirror(v); e como a operação de espelho é uma bijeção emX a última equação dá isso mirror(L) tem índice finito iff L tem índice finito (observe que a congruência esquerda tem o mesmo índice que a congruência correta para as palavras espelhadas, mas, em geral, uma congruência correta para mirror(L) pode ter muito mais classes exponenciais, como é mostrado por controles padrão da teoria dos autômatos).

Portanto, essas operações são tratadas se pudermos mostrar que ambas as congruências têm índice finito ao mesmo tempo ou não. Para isso, vamos olhar para a congruência sintática

uS(L)vx,yX:xuyLxvyL.
Essa congruência refina as duas congruências acima, portanto, se é finita, ambas as congruências acima também são finitas. Isto éuS(L)v iff para todos wX temos [wu]L=[wv]L, portanto, temos um mapa bem definido e injetivo do S(L)classes de equivalência às transformações em {[w]L:wX}, e se o último for um conjunto finito, o conjunto dessas transformações também será finito, o que implica que S(L)é de índice finito. Então, no total, temos issoL tem índice finito se L tem índice finito, o inverso é implícito similar.

StefanH
fonte
4

As classes de equivalência da relação Myhill-Nerode também são os estados do DFA mínimo para o idioma. Portanto, o que for fácil de mostrar usando os DFAs, você poderá converter para uma prova que use o ponto de vista Myhill-Nerode. Onde quer que você precise de NFAs, pode esperar que a prova fique mais complicada.

Mas a resposta correta é: experimente você mesmo! É assim que a pesquisa é feita.

Yuval Filmus
fonte
Bem, não estava pedindo pesquisa original, obrigado. Eu esperava que alguém soubesse se o conhecimento deK sendo índice finito preveria ϕ(K) sendo índice finito, onde ϕé uma operação de idioma. Eu tentei porϕ= prefixo, mas não consigo ver como a concatenação é tratada de maneira elegante. Sim, eu posso construir um DFA decente para ele.
Hendrik Jan
Certamente você pode traduzir facilmente entre classes Nerode e autômatos mínimos, mas, de qualquer maneira, adicionei uma prova que usa as classes e, pelo que sei, não poderia ser transferida para nenhuma construção de autômato com tanta facilidade, pois funciona com as classes como conjuntos, o que é de alguma forma negligenciados se usarmos um autômato e construímos, por exemplo, um autômato de produto para derivar propriedades de fechamento. Portanto, eu consideraria isso como um argumento apenas "verdadeiramente" das classes Nerode.
9137 StefanH