Você está na página 1de 7

Lista 3

MAC4722 - Linguagens, Autômatos e Computabilidade

1. Decida se cada linguagem a seguir é ou não é regular. Se for, escreva uma expressão
regular para a linguagem e prove sua corretude. Se não for, prove com o auxı́lio do
Lema do Bombeamento.

Questão 1. (b)

(b) Lb = {w ∈ {a, b}∗ | bba não é um fator de w}.

Solução. Mostraremos que a linguagem Lb como descrita acima é regular. Para


tanto, vamos mostrar que a expressão regular

(a ∪ (ba)∗ )∗ b∗

descreve essa linguagem, e assim, mostraremos que L((a ∪ (ba)∗ )∗ b∗ ) = Lb .


(⇒) L((a ∪ (ba)∗ )∗ b∗ ) ⊆ Lb
Seja w ∈ L((a ∪ (ba)∗ )∗ b∗ ). Vamos mostrar por indução em |w| que w ∈ Lb .
Se |w| = 0, temos que w = ε e, como bba não é um fator de ε, temos que ε = w ∈ Lb .
Se |w| = 1 temos que w = a ou w = b. Em ambos os casos, como bba não é fator de
a ou de b, temos que w ∈ Lb .
Se |w| = 2 temos as seguintes possibilidades: w = aa, w = bb, w = ab ou w = ba.
Note que, também, bba não é fator de nenhuma das quatro possibilidades. Portanto,
nesse caso, w ∈ Lb .
Se |w| = 3, temos as seguintes possibilidades: w = aaa, w = aab, w = aba, w =
baa, w = abb, w = bab, w = bbb e nenhuma dessas possibilidades é da forma bba.
O caso bba não pode ser formado pois, como w ∈ (a ∪ (ba)∗ )∗ b∗ , por construção, a

1
expressão só poderá formar dois b’s seguidos se for oriundo da expressão b∗ . Portanto,
nesse caso, w ∈ Lb .
Se |w| ≥ 4 temos que w pode ser da forma w = aaaŵ, w = aabŵ, w = abbŵ,
w = abaŵ, w = baaŵ, w = babŵ ou w = bbbŵ, em que ŵ ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Note que ŵ ̸= ε, pois |w| ≥ 4. Como |bbŵ| < |w| e |abŵ| < |w| temos que por
hipótese de indução, abŵ, bbŵ ∈ Lb e, assim, no primeiro caso (abŵ ∈ Lb ), ou seja,
nos casos em que a palavra w é w = aabŵ, w = babŵ, a palavra ŵ não poderá
começar com ba e, no segundo caso (bbŵ ∈ Lb ), ou seja, os casos em que w pode
ser w = bbbŵ, w = abbŵ, ŵ poderá ser formado apenas por b’s. Além disso, para
os casos em que w pode ser w = aaaŵ, w = baaŵ ou w = abaŵ, temos que, como
|ŵ| < |w|, pela hipótese de indução, temos que ŵ ∈ Lb . Assim, bba não é fator de ŵ
e, portanto, para qualquer um dos casos, teremos w ∈ Lb . Portanto, como nenhuma
das possibilidades de prefixo de tamanho 3 de w pode ser bba e ŵ ∈ Lb , ou seja, bba
não é fator de ŵ, então w ∈ Lb .
Dada arbitrariedade de escolha de w, segue que L((a ∪ (ba)∗ )∗ b∗ ) ⊆ Lb .
(⇐) Lb ⊆ L((a ∪ (ba)∗ )∗ b∗ )
Tome w ∈ Lb . Da definição da linguagem Lb temos que w ∈ {a, b}∗ tal que bba
não é um fator de w. Vamos mostrar por indução no tamanho de w que w ∈
L((a ∪ (ba)∗ )∗ b∗ ).
Se |w| = 0, temos que ε = w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Se |w| = 1 temos que w = a ou w = b. Se w = a temos que w ∈ L(a∗ ) ⊂
L((a ∪ (ba)∗ )∗ b∗ ). Se w = b temos que w ∈ L(b∗ ) ⊂ L((a ∪ (ba)∗ )∗ b∗ ). Logo, para
ambos os casos, w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Se |w| = 2 temos que w = aa, w = ab, w = ba, w = bb. Se w = aa temos que
w ∈ L((a ∪ (ba)∗ )∗ b∗ ). Se w = ab temos que w ∈ L((a ∪ (ba)∗ )∗ b∗ ). Se w = ba temos
que w ∈ L((a ∪ (ba)∗ )∗ b∗ ). Por fim, se w = bb, temos que w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Logo, para todas as possibilidades w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Se |w| = 3 temos que, como w ∈ Lb , w ̸= bba e pode ser umas das possibilidades:
w = aaa,w = bbb, w = aab, w = abb, w = bab, w = aba e w = baa. Observe
que, para qualquer um dos casos citados acima, w pode ser formado pela expressão
regular (a ∪ (ba)∗ )∗ b∗ e, portanto w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Suponha que para qualquer palavra w de Lb de comprimento |w| = k, k ≥ 4, teremos
w ∈ L((a ∪ (ba)∗ )∗ b∗ ). Mostraremos que as palavras de tamanho |w| = k + 1 também

2
estão em L((a ∪ (ba)∗ )∗ b∗ ).
Se w ∈ Lb é tal que |w| = k+1, podemos escrever w = w1 w2 · · · wk wk+1 , de modo que
wi−1 wi wi+1 ̸= bba, qualquer que seja 2 ≤ i ≤ k. Assim, temos que w1 · · · wk ∈ Lb .
Pela hipótese de indução, temos que w1 · · · wk ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Note que, se wk+1 = b teremos que w = w1 · · · wk b ∈ L((a ∪ (ba)∗ )∗ b∗ b) ⊂ L((a ∪
(ba)∗ )∗ b∗ ). Nesse caso, w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Se wk+1 = a, temos que w1 · · · wk ∈ L((a ∪ (ba)∗ )∗ ) ou w1 · · · wk ∈ L((a ∪ (ba)∗ )∗ b)
pois, caso contrário, poderı́amos ter w = w1 · · · wk−2 bba, o que não poderia acontecer
pois w ∈ Lb .
Se w1 · · · wk ∈ L((a ∪ (ba)∗ )∗ ), temos que wk = a e w = w1 · · · wk−1 aa ∈ L((a ∪
(ba)∗ )∗ ) ⊂ L((a ∪ (ba)∗ )∗ b∗ ). Se w1 · · · wk ∈ L((a ∪ (ba)∗ )∗ b), temos que w =
w1 · · · wk−2 aba ∈ L((a ∪ (ba)∗ )∗ ) ⊂ L((a ∪ (ba)∗ )∗ b∗ ). Em todos os casos, temos
que w ∈ L((a ∪ (ba)∗ )∗ b∗ ).
Portanto, pelo exposto acima e dada arbitrariedade de escolha de w temos que
Lb ⊆ L((a ∪ (ba)∗ )∗ b∗ ) e L((a ∪ (ba)∗ )∗ b∗ ) ⊆ Lb e, portanto Lb = L((a ∪ (ba)∗ )∗ b∗ ).

Questão 1. (g)

(g) Lg = {w ∈ {a, b}∗ : |w|a = |w|b } ∪ {w ∈ {a, b}∗ | aa ou bb é fator de w}.

Solução. Mostraremos que a linguagem Lg como descrita acima é regular. Para


tanto, vamos mostrar que a expressão regular

(ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗

descreve essa linguagem, e assim, mostraremos que L((ab)∗ (ba)∗ ∪(a∪b)∗ (aa∪bb)(a∪
b)∗ ) = Lg . Chamaremos a linguagem da expressão de R = L((ab)∗ (ba)∗ ∪(a∪b)∗ (aa∪
bb)(a ∪ b)∗ ).
Note que a expressão (ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ é, de fato, regular, pela
própria definição e pelo fecho das operações ∗ (estrela), união e ◦ (concatenação).
(⇒) L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ) ⊆ Lg
Seja w ∈ R. Vamos mostrar por indução no tamanho de w que w ∈ Lg .

3
Observe que tanto Lg como R não contém palavras de tamanho 1. Portanto, nossa
base de indução será em |w| = 0, 2.
Se |w| = 0 temos que ε = w ∈ {w ∈ {a, b}∗ : |w|a = |w|b } ⊂ Lg .
Se |w| = 2 temos que,

– se w = aa, w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg ;


– se w = bb, w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg ;
– se w = ab, w ∈ {w ∈ {a, b}∗ : |w|a = |w|b } ⊂ Lg ;
– se w = ba, w ∈ {w ∈ {a, b}∗ : |w|a = |w|b } ⊂ Lg .

Portanto, para todos os casos, temos que w ∈ Lg .


Se |w| ≥ 3 temos que w = aaŵ, w = bbŵ, w = abŵ ou w = baŵ, com ŵ ∈ {a, b}∗ .
Note que, para os casos em que w = aaŵ e w = bbŵ, qualquer que seja a palavra ŵ,
temos que w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg .
Se w = abŵ ou w = baŵ e ŵ tiver pelo menos um aa ou bb como um dos fatores
temos que |ŵ| > 1 e, nesse caso, temos que ŵ ∈ L((a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ) ⊂ R.
Portanto, pela hipótese de indução, como |ŵ| < |w|, temos que ŵ ∈ Lg e, como
ela tem pelo menos um aa ou bb como um dos seus fatores, podemos concluir que
w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg .
Se w = abŵ ou w = baŵ e ŵ não tiver pelo menos um aa ou bb como um dos
fatores, temos os seguintes casos: se |w| = 3, terı́amos ŵ = b para w = abŵ ou
ŵ = a para w = baŵ (os outros casos não foram citados pois as palavras aba ou
bab não pertencem à linguagem da expressão). Nesses casos, temos que w ∈ {w ∈
{a, b}∗ | aa ou bb é fator de w} ⊂ Lg . No caso em que |w| > 3, temos que |ŵ| só
pode ser par pois, caso contrário, como ŵ não tem fator aa ou bb, w não poderia
pertencer à linguagem da expressão, a menos no caso em que ŵ comece com b, para
o caso w = abŵ ou ŵ comece com a, para o caso w = baŵ. Nesses casos, w terá um
fator aa ou bb e, assim, w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg . Logo, como
|ŵ| tem tamanho par, ŵ ∈ L((ab)∗ (ba)∗ ) ⊂ R. Portanto, pela hipótese de indução,
como |ŵ| < |w|, temos que ŵ ∈ Lg . Assim, como w = abŵ ou w = baŵ e, pela
hipótese indutiva, ŵ ∈ Lg , temos que ŵ ∈ {w ∈ {a, b}∗ : |w|a = |w|b } ⊂ Lg , e
assim, w ∈ Lg , pois tanto ab quanto ba tem a mesma quantidade de a’s e b’s.
Portanto, provamos por indução, que se w ∈ L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ),
w ∈ Lg e, assim, L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ) ⊆ Lg .

4
(⇐) Lg ⊆ L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ )
Seja w ∈ Lg . Provaremos que w ∈ R por indução em |w|. Observe que tanto Lg
como R não contém palavras de tamanho 1. Portanto, nossa base de indução será
em |w| = 0, 2.
Se |w| = 0, então ε = w ∈ R.
Se |w| = 2, então temos os seguintes casos

– w = aa ou w = bb. Nesses casos, temos que w ∈ {aa, bb} ⊂ L((a ∪ b)∗ (aa ∪
bb)(a ∪ b)∗ ) ⊂ R.
– w = ab ou w = ba. Nesses casos, temos que w ∈ L((ab)∗ (ba)∗ ) ⊂ R.

Logo, para todos os casos em que |w| = 2, temos que w ∈ R.


Se |w| ≥ 3, teremos os casos w = aaŵ, w = bbŵ, w = abŵ e w = baŵ, com
ŵ ∈ {a, b}∗ . Note que para os casos em que w = aaŵ e w = bbŵ, qualquer que seja
a palavra ŵ, teremos w ∈ L((a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ) ⊂ R. Para os casos em que
w = abŵ ou w = baŵ temos os seguintes casos:

– Se w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w} ⊂ Lg temos que w tem pelo menos


um fator aa ou bb e, portanto, w ∈ L((a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ) ⊂ R.
– Se w ∈ {w ∈ {a, b}∗ : |w|a = |w|b } ⊂ Lg e tem pelo menos um fator aa ou bb,
então w ∈ {w ∈ {a, b}∗ | aa ou bb é fator de w}, estando no caso anterior.
– Se w ∈ {w ∈ {a, b}∗ : |w|a = |w|b } e não tem fator aa ou bb, temos que ŵ tem
tamanho par pois, caso contrário, não teria |w|a = |w|b . Nesse caso, temos que
ŵ ∈ {w ∈ {a, b}∗ : |w|a = |w|b }. Dessa forma, por hipótese de indução, temos
que como |ŵ| < |w|, então ŵ ∈ R. Assim, como ŵ não tem aa ou bb como
um dos fatores e pela hipótese indutiva, temos que ŵ ∈ L((ab)∗ (ba)∗ ) ⊂ R.
Nesse caso, podemos dizer que ŵ = xy, com x ∈ L((ab)∗ ) e y ∈ L((ba)∗ ).
Como |w| ≥ 3, temos que x ̸= ε ou y ̸= ε. Se x ̸= ε, y = ε e como w
não tem aa ou bb como fator, temos que w ∈ L(ab(ab)∗ ) ⊂ L((ab)∗ ) ⊂ R.
Ainda, se x = ε, y ̸= ε e como w não tem aa ou bb como fator, temos que
w ∈ L(ba(ba)∗ ) ⊂ L((ba)∗ ) ⊂ R. Os outros casos (incluindo x, y ̸= ε, w terá
um fator aa ou bb e, assim, estaremos em um dos casos anteriores). Em todas
as possibilidades citadas, temos que w ∈ R.

Pelo exposto acima e dada arbitrariedade de escolha de w temos que se w ∈ Lg ,


w ∈ R e Lg ⊆ L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ )

5
Portanto, Lg = L((ab)∗ (ba)∗ ∪ (a ∪ b)∗ (aa ∪ bb)(a ∪ b)∗ ).

Questão 1. (i)

(i) Li = {ak x | x ∈ {a.b}∗ e |x|a ≤ k, para k ≥ 1}.

Solução. Suponha por absurdo que Li é uma linguagem regular. Então, pelo
Lema do Bombeamento, existe p ∈ N onde qualquer palavra s ∈ Li tal que |s| ≥ p,
pode ser dividida em três pedaços s = xyz satisfazendo as condições do Lema:, para
qualquer i ≥ 0, xy i z ∈ Li , |y| > 0 e |xy| ≤ p.
Seja s = ap bap . Note que s é da forma ak x com |x|a ≤ p e portanto, s ∈ Li . Pelo
lema do bombeamento, como |s| ≥ p, s poderá ser divida em s = xyz, com |xy| ≤ p
e |y| > 0. Como |xy| ≤ p, temos que y só poderá conter a’s, pois s = ap bap . Mas,
fazendo i = 0 temos que xy i z = xy 0 z = ap−|y| bap ∈
/ Li , pois |y| > 0 e p − |y| < p,
contradizendo o lema do bombeamento. Absurdo!
Portanto, Li não é regular. ■

Questão 2.

2. Prove que a seguinte proposição é falsa. Se L é uma linguagem regular, então a


linguagem {xz | existe um y com |x| = |y| = |z|, xyz ∈ L} é regular.

Solução. Vamos mostrar que a proposição acima é falsa. Para isso, vamos mostrar
que dada uma linguagem regular L, a linguagem {xz | existe um y com |x| = |y| =
|z|, xyz ∈ L} não é regular.
Considere o alfabeto Σ = {0, 1, Ω} e a linguagem L((0∗ Ω1∗ ) ∪ {ε}) := L. Observe
que L é regular pois a expressão que a define é regular (de fato, pela definição de
expressão regular, R0 = {0}, R1 = {1}, Rε = {ε} e RΩ = {Ω} são regulares,
R0∗ e R1∗ são regulares pois a operação estrela (∗) em expressões regulares é regular,
R0∗ RΩ R1∗ é regular pois a operação de concatenação em expressões regulares é regular
e R0∗ RΩ R1∗ ∪Rε é regular pois a operação de união em expressões regulares é regular).
Considere, ainda, a linguagem L(0∗ 1∗ ) := {0∗ 1∗ } definida sobre o alfabeto Σ. Note
que {0∗ 1∗ } é regular pois a expressão que a define, 0∗ 1∗ , é regular, e tal fato segue
diretamente da definição.

6
Suponha por absurdo que a linguagem {xz | existe um y com |x| = |y| = |z|, xyz ∈
L} := L′ é regular. Pelo fecho da regularidade de linguagens sob a operação de
intersecção, temos que L′ ∩ {0∗ 1∗ } := B é uma linguagem regular. Note que todos
os elementos de L′ que possuem Ω não pertencem a B, e isso só ocorre quando, da
definição de L′ , a palavra xz ∈ L′ é tal que existe o y com xyz ∈ L e Ω é um fator
de y, quando x, y, z ̸= ε. Logo, como |x| = |z| e como as palavras de L são ε ou
0i Ω1j , i, j ∈ N ∪ {0}, temos que os elementos de B são da forma 0n 1n com n ≥ 0.
Logo, temos que L′ ∩ {0∗ 1∗ } = B = {0n 1n | n ≥ 0}.
Como B é regular, pelo Lema do Bombeamento, seja p a largura de bombeamento
(pumping length). Seja s = 0p 1p uma palavra em B. Como |s| ≥ p, pelo Lema do
Bombeamento, s pode ser dividido em s = xyz, onde para cada i ≥ 0, xy i z ∈ B,
|xy| ≤ p e |y| > 0. Nesse caso, como y ̸= ε, |xy| ≤ p, e s = 0p 1p , temos que y
consiste em uma palavra apenas com 0’s. Portanto, para qualquer i ∈ N \ {1} ∪ {0}
(excluı́mos o caso i = 1 pois, neste caso, s tem o mesmo número de 0’s e 1’s)
teremos que xy i z ∈ / B, pois xy i z terá um número de 0’s diferente do número de 1’s
(xy i z = 0p+(i−1)|y| 1p e p+(i−1)|y| = ̸ p, pois y ̸= 0, i ∈ N\{1}∪{0}), o que contradiz
o Lema do Bombeamento. Absurdo.
Portanto, L′ = {xz | existe um y com |x| = |y| = |z|, xyz ∈ L} não é regular. ■

Você também pode gostar