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
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
,

Referências
- ↑ Michael Sipser - Introduction to the Theory of Computation.
- ↑ John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman - Introdução à Teoria de Autômatos, Linguagens e Computação (2ª Edição).