Propriedades e limites das regulares
Fecho, algoritmos de decisão, equivalência, minimização e provas pelo lema da repetição.
Fecho das regulares
As linguagens regulares são fechadas para união, interseção, diferença, complemento, concatenação, estrela, reverso e intercalação. Toda a linguagem finita é regular.
- O produto combina dois DFA completos sobre o mesmo alfabeto. Cada estado é um par , com do primeiro DFA e do segundo, e cada letra atualiza ambas as componentes. Os finais dependem da operação: ambas as componentes finais na interseção, pelo menos uma componente final na união, primeira final e segunda não final na diferença.
- O complemento troca finais com não finais num DFA completo.
- O reverso inverte as arestas; o antigo início passa a ser o único final e um início novo liga por ε aos antigos finais.
- A intercalação usa pares onde cada letra avança apenas uma componente. Cada ramo escolhe a palavra de origem da letra e os finais exigem ambas as componentes finais, o que conserva a ordem interna de cada palavra.
- O quociente torna final cada estado com final. A derivada desloca o início para .
Decisão e equivalência
| Pergunta | Procedimento |
|---|---|
| ? | Verifica se nenhum estado final é alcançável a partir do início. |
| ? | Complementa o DFA completo e testa se a linguagem resultante é vazia. |
| infinita? | No DFA, procura um ciclo alcançável do início do qual se alcance um estado final. Um ciclo só de ε num NFA não chega. |
| ? | Testa se a diferença é vazia. |
| ? | No produto, procura um par alcançável com exatamente uma componente final. |
Se esse par não existir, as linguagens são iguais. Se existir, os rótulos do percurso desde o início formam uma palavra que distingue as linguagens, e a pesquisa em largura encontra uma das mais curtas.
Minimização
Parte de um DFA completo e procede assim:
- Remove os estados inacessíveis a partir do início.
- Marca cada par com um estado final e outro não final, pois a palavra vazia já os distingue.
- Marca o par quando alguma letra leva a um par já marcado. Repete este passo até nenhuma ronda produzir marcas novas.
- Junta os pares que continuam sem marca em classes de equivalência.
A palavra distingue os destinos por exatamente quando distingue as origens, o que justifica a propagação para trás. O DFA mínimo completo é único a menos dos nomes dos estados.
Lema da repetição
Se é regular, existe um inteiro tal que toda a palavra com admite uma decomposição com , e para todo o inteiro . Esta condição é necessária, mas não suficiente para provar regularidade.
Para refutar, supõe que é regular, recebe esse , escolhe uma palavra em função de , cobre todas as decomposições válidas e exibe um cuja palavra bombeada sai de .
- Com e , qualquer corte válido tem com ; retirar com quebra a igualdade entre os blocos.
- Mostrar que um corte falha não chega. Em , fixa um inteiro e : o corte sai da linguagem com , mas o corte válido bombeia dentro de para todo . Só contrarias o lema quando todos os cortes válidos falham. Da mesma forma, exibir um corte que funciona numa palavra isolada não prova que a linguagem é regular.
- Em alternativa, usa o fecho: se fosse regular, então menos essa linguagem seria .