Interseção de linguagens regulares
Considere duas linguagens regulares L1, L2. Vamos demonstrar que a interseção delas, L = L1 ∩ L2, também é uma linguagem regular.
Ideia da demonstração
Temos duas linguagens regulares L1 e L2 e queremos demonstrar que a interseção delas, L1 ∩ L2, é de novo uma linguagem regular. Como L1 e L2 são linguagens regulares, existem autômatos finitos A1 e A2 que aceitam as linguagens L1 e L2, ou seja, valem L(A1) = L1 e L(A2) = L2. Nós construiremos um autômato finito A que aceitará a linguagem L1 ∩ L2, e com isso demonstraremos que a linguagem L1 ∩ L2 é regular.
Uma palavra pertence à interseção das linguagens se pertence à linguagem L1 e, ao mesmo tempo, a L2. Ou seja, a palavra deve ser aceita pelo autômato A1 e, ao mesmo tempo, pelo autômato A2. Vamos usar exatamente a mesma ideia que usamos na união de linguagens regulares, mudando apenas o conjunto dos estados finais.
Formalização do procedimento
Temos dois autômatos,
Construímos o autômato A = ⟨Q, Σ, δ, q, F⟩, que aceita a linguagem L(A1) ∩ L(A2). Vale que
- Q = Q1 × Q2
- Σ= Σ1 ∩ Σ2
- q = ⟨q0, p0⟩
- F = F1 × F2
Para a função de transição δ valerá a seguinte relação:
Exemplo
Considere este autômato A1, que aceita todas as palavras que contêm um número par de uns:
e o autômato A2, que aceita as palavras que contêm um número ímpar de zeros:
Construímos um autômato que aceitará a interseção dessas linguagens. O conjunto de estados desse autômato tem a forma Q = Q1 × Q2, o estado inicial é o estado ⟨q0, p0⟩ e os estados finais são F1 × F2:
Em seguida completamos as transições de modo que δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩:
Neste autômato, por exemplo, do estado ⟨q0, p0⟩ há uma transição para o símbolo 0 até o estado ⟨q0,p1⟩. Isso significa que o autômato A1 tem, do estado q0, uma transição para o símbolo 0 de volta ao estado q0. Já o autômato A2 tem, para o símbolo 0, uma transição do estado p0 para o estado p1.
Podemos testar o autômato. Ele deve aceitar palavras como 110 ou 00000 (contêm um número par de uns e, ao mesmo tempo, um número ímpar de zeros), mas não deve aceitar palavras como 11, 111, 1010.
Fontes
Capítulos: Fechamento das linguagens regulares, União de linguagens regulares, Interseção de linguagens regulares, Diferença de linguagens regulares, Complemento de uma linguagem regular, Concatenação de linguagens regulares, Fecho de uma linguagem regular