Concatenação de duas linguagens regulares
Este artigo ou secção contém uma lista de referências no fim do texto, mas as suas fontes não são claras porque não são citadas no corpo do artigo, o que compromete a confiabilidade das informações. (Março de 2014) |
Na teoria das linguagens formais, e em particular na teoria dos autômatos finitos não determinísticos, é conhecido que a concatenação de duas linguagens regulares é uma linguagem regular. Este artigo fornece uma prova desta afirmação.
Teorema
[editar | editar código-fonte]Para quaisquer linguagens regulares e , a linguagem é regular.[1]
Prova
Uma vez que e são regulares, existem AFNs que reconhecem e , respectivamente.
A ideia é adicionar transições partindo dos estados de aceitação de para o estado inicial de , significando que ele encontrou uma parte inicial da entrada que constitui uma cadeia em . Os estados de aceitação de deixam de ser estados de aceitação, e o estado inicial de deixa de ser estado inicial, passando a serem estados do autômato .
Por conseguinte, aceita uma cadeia de entrada quando podemos dividi-la em duas partes, sendo a primeira aceita por e a segunda aceita por . Portanto, "adivinha" não-deterministicamente onde fazer a divisão necessária.[2]
Seja
Vamos construir
tal que
1.
Os estados de são todos os estados de e .
2. O estado inicial de é o estado inicial de .
3. Os estados de aceitação de são os estados de aceitação de .
4. Defina T de modo que para qualquer e qualquer ,