Você está na página 1de 138

Solucoes dos Exerccios Propostos no Livro

Introduc
ao aos Fundamentos da Computac
ao:
Linguagens e M
aquinas
(Ed. Thomson, 2006)
Newton Jose Vieira
Departamento de Ciencia da Computacao
Instituto de Ciencias Exatas
Universidade Federal de Minas Gerais
Belo Horizonte, 30/06/2007

Peco a quem encontrar erros nas solucoes a seguir entrar em contato com o autor no
endereco nvieira@dcc.ufmg.br. Antecipadamente, agradeco

Captulo 1

Conceitos Preliminares
1.1

Representa
c
ao

Nesta secao n
ao h
a exerccios.

1.2
1.

Prova de Teoremas
a) A afirmativa ( ) s
o e falsa se e verdadeira e e falsa. Mas a
n
ao pode ser verdadeira se e falsa. Assim, ( ) n
ao pode ser falsa; logo, e
valida.
b) A afirmativa ( ) s
o e falsa se e verdadeira e e falsa. Mas, sendo
verdadeira, n
ao pode ser falsa. Assim, ( ) n
ao pode ser falsa; logo, e
valida.
c) A afirmativa ( ) s
o pode ser falsa se e verdadeira e e falsa.
Mas a afirmativa n
ao pode ser verdadeira, pois e uma contradicao. Assim,
( ) n
ao pode ser falsa; logo, e valida.

d) A afirmativa ( ) s
o e falsa se e verdadeira e e falsa. Mas,
n
ao pode ser falsa, pois e n
ao podem ser ambas falsas. Assim, ( )
n
ao pode ser falsa; logo, e valida.
e) A afirmativa ( ) s
o pode ser falsa se ambas, e s
ao falsas. Mas,
sendo falsa, e verdadeira. Assim, ( ) n
ao pode ser falsa; logo, e
valida.
f) A afirmativa ( ) ( ) s
o pode ser falsa se e s
ao falsas. Para
ser falsa, deve ser verdadeira (e falsa), e para ser falsa, deve ser
falsa (e verdadeira); contradicao! Assim, a afirmativa original n
ao pode ser falsa;
logo, e valida.
2.

a) Suponha que e verdadeira. Segue-se que e falsa ou e verdadeira. No


primeiro caso, e verdadeira e, portanto, e verdadeira. No segundo caso,
e falsa e, portanto, e tambem verdadeira. Logo, ( ) (
). Suponha, por outro lado, que e falsa. Segue-se que e verdadeira e
e falsa. Com isto, e falsa e e verdadeira e, portanto, e falsa. Logo,
( ) ( ).

b) Primeiro, mostra-se que () [( )( )]: Suponha que ()


e verdadeira. Segue-se que e falsa ou e verdadeira. No primeiro caso, e
s
ao falsas e, portanto, e s
ao verdadeiras. No segundo caso, sendo
3

verdadeira, e s
ao tambem verdadeiras. Assim, se ( ) e
verdadeira, ( )( ) e verdadeira. Logo, () [( )( )].
Resta mostrar que [( ) ( )] ( ) . Para isto, suponha que
( ) ( ) e verdadeira; segue-se que e s
ao verdadeiras. Destas
duas segue-se que e verdadeira ou e s
ao falsas, e, neste u
ltimo caso, e
falsa. Mas, sendo verdadeira ou falsa, ( ) e verdadeira. Portanto,
[( ) ( )] ( ) .

c) Suponha que ( ) e verdadeira. Segue-se que e falsa ou e verdadeira.


No primeiro caso, sendo falsa, e s
ao verdadeiras. No segundo caso,
sendo verdadeira, e verdadeira, e sendo verdadeira, e verdadeira.
Logo, ( ( )) (( ) ( )). Suponha, agora, que ( ) e
falsa. Segue-se que e verdadeira e ( ) e falsa, ou seja, e falsa ou e falsa.
Com isto, e falsa ou e falsa e, portanto, ( ) ( ) e falsa.
Logo, ( ) ( ) ( ).
3.

a) Nao existe atribuic


ao de valor-verdade para tal que ambas, e sejam verdeiras.
Assim, por vacuidade, sempre e s
ao verdadeiras, tambem e.

b) Se e verdadeira, ent
ao e falsa ou e verdadeira. No primeiro caso, e
falsa e, portanto, ( ) e verdadeira. No segundo caso, sendo e verdadeira,
( ) e tambem verdadeira. Conclui-se, entao que { } ( ) .
c) Suponha que e sejam verdadeiras. Neste caso, e falsa e, portanto,
e falsa. Sendo falsa, e verdadeira. Logo, se e s
ao verdadeiras, e
verdadeira, ou seja, { , } .

4. Sejam x e y n
umeros reais tais que x > 0 e x < y. Destas duas u
ltimas segue-se que
2
x < xy. Das mesmas, segue-se tambem que y > 0. Desta e do fato de que x < y,
deduz-se que xy < y 2 . De x2 < xy e xy < y 2 , conclui-se que x2 < y 2 .
5. Sejam x e y n
umeros reais arbitrarios. Suponha que x2 + y = 13 e y 6= 4. Deve-se mostrar
que, neste caso, x 6= 3. Suponha o contr
ario: x = 3. Entao, substituindo-se x por 3 em
x2 + y = 13, obtem-se: 32 + y = 13 e, assim, y = 13 9 = 4. Contradicao. Logo, se
x2 + y = 13 e y 6= 4, ent
ao x 6= 3.

6. Seja x um n
umero real tal que x > 2. Seja k = (x + x2 4)/2; observe que k e um
n
umero real, pois x > 2. Alem disso,

1
x + x2 4
1
x + x2 4
2

k+ =
+
=
+
.
k
2
2
(x + x2 4)/2
x + x2 4
Fazendo-se as operac
oes e simplificando-se obtem-se:

x2 + 2x x2 4 + x2 4 + 4
1

= x.
k + ==
k
2x + 2 x2 4
Conclui-se, ent
ao, que para todo n
umero real x, se x > 2, existe um n
umero y tal que
y + (1/y) = x.
7. Seja x um n
umero natural. A prova ser
a feita pela contrapositiva. Suponha, assim, que

x e um n
umero racional. Neste caso, x = p/q, onde p e q s
ao n
umeros naturais primos
entre si. Segue-se que x = p2 /q 2 . Como p e q s
ao primos entre si, p2 e q 2 s
ao primos entre
si, e como x e um n
umero natural q 2 s
o pode ser 1 e x = p2 . Portanto, para todo n
umero

ao e um n
umero racional.
natural x, se x n
ao e e um quadrado perfeito, x n
4

8. Seja n um n
umero inteiro n
ao divisvel por 3. Entao n = 3q + r, onde q e um inteiro e
r {1, 2}. Caso 1: r = 1. Tem-se que n2 = (3q + 1)2 = 9q 2 + 6q + 1 = 3(3q 2 + 2q) + 1.
Fazendo-se k = 3q 2 + 2q tem-se que k e um inteiro tal que n2 = 3k + 1, como requerido.
Caso 2: r = 2. Tem-se que n2 = (3q + 2)2 = 9q 2 + 12q + 4 = 3(3q 2 + 4q + 1)+ 1. Fazendo-se
k = 3q 2 + 4q + 1 tem-se que k e um inteiro tal que n2 = 3k + 1.

1.3
1.

Conjuntos
a)
b)
c)
d)

A B = {0, 1, 2, 3, 4, 5}.
C = {4, 2, 0, 2, 4, 6, 8}.
D = {5, 4, 3, 2, 1, 6, 7, 8}.
{(0, 7), (2, 7), (4, 7)}.

2. Resposta para a primeira pergunta: A B = B A se, e somente se, A = B. Prova:


() Suponha que A = B. Ent
ao A B = B A = .
() Suponha que A B = B A. Para provar, primeiramente, que A B, seja x A.
Suponha que x 6 B. Neste caso, x A B, e, como A B = B A, x B A.
Mas, neste caso, x B e x 6 A. Contradicao. Assim, se x A, entao x B, ou
seja, A B. Prova-se que B A de forma an
aloga.
Resposta para a segunda pergunta: A B = A B se, e somente se, A = B. Prova:
() Suponha que A = B. Ent
ao A B = A B = A = B.
() Suponha que A B = A B. Para provar, primeiramente, que A B, seja x A.
Com isto, x A B. Neste caso, como A B = A B, x A B. Assim x B.
Portanto, se x A, ent
ao x B, ou seja, A B. Prova-se que B A de forma
an
aloga.
3. Ser
a mostrado que A B = A C se, e somente se, (B C) (C B) A. (Ou seja, a
condic
ao procurada e: a diferenca simetrica entre B e C deve estar contida em A, mesmo
que B 6= C.)
() Suponha que A B = A C. Seja x um elemento arbitrario de (B C) (C B).
Caso 1: x B C, ou seja x B e x 6 C. Como x B e A B = A C, segue-se
que x A C. Desta e de x 6 C, conclui-se que x A. Caso 2: an
alogo. Portanto,
se x (B C) (C B), entao x A. Logo, (B C) (C B) A.
() Suponha que (B C)(C B) A. Para provar, primeiramente, que AB AC,
seja x A B. Caso 1: x A. Entao x A C. Caso 2: x B. Neste caso, se
x C, x A C, e se x 6 C, x B C; e como B C A, x A e, portanto,
x A C. Assim, se x A B, entao x A C, ou seja A B A C. De forma
an
aloga, A C A B. Portanto, A C = A B.
4.

a) Basta provar que x[x A B x A B]. Seja, entao, um elemento x arbitrario.


Tem-se:
x A B x 6 A B
(x A ou x B)
x 6 A e x 6 B
xAexB
xAB

pela definicao de
pela definicao de
por DeMorgan
pela definicao de
pela definicao de

complemento
uni
ao
complemento
intersecao.

b) Suponha que A B = A B. Inicialmente, prova-se que A B. Seja x um elemento


arbitrario de A. Neste caso, x A B; e como A B = A B, x A B. Logo,
x B e, portanto, A B. Prova-se que B A de forma similar. Portanto, A = B.
Conclui-se que se A B = A B entao A = B.
c) Basta provar que x[x (A B) (B A) x (A B) (A B)]. Assim, seja
um elemento x arbitrario. Tem-se:
() Suponha que x (A B) (B A). Caso 1: x A B. Entao x A e x 6 B.
Como x A, x A B, e como x 6 B, x 6 A B. Portanto, x (A B) (A B).
O caso 2, x B A, e similar.
() Suponha que x (A B) (A B). Entao x A B e x 6 A B. Segue-se,
ent
ao, que x A ou x B e tambem que x 6 A ou x 6 B. Assim, s
o se pode ter
dois casos: o caso em que x A e x 6 B e caso em que x B e x 6 A. Em outras
palavras, x A B ou x B A. Portanto, x (A B) (B A).

d) Basta provar que x[x A (A B) x A B]. Seja, entao, um elemento x


arbitrario. Tem-se:
x A (A B) x A e x 6 A B
x A e (x 6 A ou x B)
(x A e x 6 A) ou (x A e x B)
xAexB
xAB

pela def. de diferenca


pela def. de diferenca
pela distrib. e/ou
pela def. de intersecao.

e) Basta provar que x[x (A B) C x A (B C]. Assim, seja um elemento


x arbitrario. Tem-se:
x (A B) C x A B e x 6 C
x A e x 6 B e x 6 C
x A e (x B ou x C)
x A e x 6 B C
x A (B C)

pela
pela
pela
pela
pela

def. de diferenca
def. de diferenca
lei de De Morgan
def. de uni
ao
def. de diferenca.

f) Basta provar que x[x (A B) C x (A C) (B C]. Assim, seja um


elemento x arbitrario. Tem-se:
x (A B) (B C) (x A e x 6 C) e x 6 B C
pela def. de diferenca
(x A e x 6 C) e (x 6 B ou x C)
pela def. de diferenca
(x A e x 6 C e x 6 B) ou (x A e x 6 C e x C)
pela distr. e/ou
x A e x 6 C e x 6 B
x A B e x 6 C
pela def. de diferenca
x (A B) C
pela def. de diferenca
g) Seja um par (x, y) arbitrario. Tem-se:
(x, y) A (B C) x A y B C
pela def. de
x A y B y C pela def. de
(x A y B) (x A y C)
x A B x A C pela def. de
x (A B) (A C) pela def. de
6

produto
intersecao
produto
intersecao

h) Seja um par (x, y) arbitrario. Tem-se:


(x, y) (A B) (C D) x (A B) y (C D)
pela def. de produto
xAxBy C y D
pela def. de intersecao
(x A y C) (x B y D)
por associatividade
x AC x BD
pela def. de produto
x (A C) (B D)
pela def. de intersecao
5. As partic
oes de {1, 2} s
ao: {{1}, {2}} e {{1, 2}}. As particoes de {1, 2, 3} s
ao: {{1}, {2}, {3}},
{{1}, {2, 3}}, {{2}, {1, 3}}, {3}, {1, 2}} e {{1, 2, 3}}. E as particoes de {1, 2, 3, 4} s
ao:
{{1}, {2}, {3}, {4}}, {{1}, {2}, {3, 4}}, {{1}, {3}, {2, 4}}, {{1}, {4}, {2, 3}}, {{2}, {3}, {1, 4},
{{2}, {4}, {1, 3}}, {{3}, {4}, {1, 2}}, {{1}, {2, 3, 4}}, {{2}, {1, 3, 4}}, {{3}, {1, 2, 4}}, {{4}, {1, 2, 3}},
{{1, 2}, {3, 4}}, {{1, 3}, {2, 4}}, {{1, 4}, {2, 3}} e {{1, 2, 3, 4}}.
Segue a func
ao part(A), que retorna o conjunto das particoes do conjunto (finito) A:

Entrada: um conjunto finito A.


Sada: o conjunto das partic
oes de A.
se A = ent
ao retorne fimse;
R ;
selecione um elemento a A;
para cada B A tal que a B fa
ca
para cada X part (A B) fa
ca
R R {{B} X};
fimpara
fimpara;
retorne R {{A}}.

1.4
1.

Relac
oes
a) A relac
ao e transitiva, n
ao e reflexiva nem simetrica.

b) A relac
ao n
ao e reflexiva, nem simetrica nem transitiva.
c) A relac
ao e reflexiva e transitiva, e n
ao e simetrica.
d) A relac
ao e reflexiva e transitiva, e n
ao e simetrica.
e) A relac
ao e reflexiva, simetrica e transitiva.
2. Sejam R1 A2 e R2 B 2
a) Se R1 e R2 s
ao reflexivas, R1 R2 e reflexiva sobre A B: Seja x A B. Se x A,
(x, x) R1 , pois R1 e reflexiva, e se x B, (x, x) R2 , pois R2 e reflexiva. Assim,
(x, x) R1 R2 .
7

Se R1 e R2 s
ao reflexivas, R1 R2 e reflexiva sobre A B: Seja x A B. Como
x A e x B, (x, x) R1 e (x, x) R2 pois R1 e R2 s
ao reflexivas. Assim,
(x, x) R1 R2 .

ao simetricas, R1 R2 e simetrica sobre A B: Sejam x, y A B. Se


b) Se R1 e R2 s
x, y A e (x, y) R1 , ent
ao (y, x) R1 e, analogamente, se x, y B e (x, y) R2 ,
ent
ao (y, x) R2 , pois R1 e R2 s
ao simetricas. Por outro lado, se x A B e
y B A, ou vice-versa, ou seja, x e y n
ao pertencem ao mesmo conjunto, n
ao se
pode ter (x, y) R1 nem (x, y) R2 . Assim, em qualquer caso, se x, y A B e
(x, y) R1 R2 , (y, x) R1 R2 .
Se R1 e R2 s
ao simetricas, R1 R2 e simetrica sobre A B: Sejam x, y A B.
Como x, y A e x, y B (y, x) R1 e (y, x) R2 , pois R1 e R2 s
ao simetricas.
Portanto, se x, y A B e (x, y) R1 R2 , (y, x) R1 R2 .

c) Se R1 e R2 s
ao transitivas, R1 R2 pode n
ao ser transitiva. Por exemplo, R1 = {(a, b)}
sobre {a, b} e R2 = {(b, c)} sobre {b, c}; tem-se que R1 R2 = {(a, b), (b, c)} sobre
{a, b, c}, que n
ao e transitiva, pois (a, c) 6 R1 R2 .
A relac
ao R1 R2 e transitiva sobre AB: Dado que (x, y) R1 R2 e (y, z) R1 R2 ,
segue-se que (x, y) R1 e (y, z) R1 , e tambem que (x, y) R2 e (y, z) R2 . Como
R1 e R2 s
ao transitivas, deduz-se que (x, z) R1 e (x, z) R2 . Logo, (x, z) R1 R2 .

3. () Suponha que R e simetrica. Sejam x e y elementos arbitrarios tais que (x, y) R.


Como R e simetrica, segue-se que (y, x) R. Desta u
ltima, segue-se que (x, y) R1 .
Logo, se (x, y) R, ent
ao (x, y) R1 , ou seja, R R1 . De forma similar, mostra-se
1
que R R. Portanto, R = R1 .

() Suponha que R = R1 e seja (x, y) R. Segue-se que (x, y) R1 e, portanto,


(y, x) R. Logo, se (x, y) R entao (y, x) R. Como (x, y) e um elemento arbitrario de
R, conclui-se que R e simetrica.

4. () Suponha que R e reflexiva sobre um conjunto A. Seja x um elemento arbitrario de


A. Como R e reflexiva, segue-se que (x, x) R. Segue-se, pela definicao de inversa, que
(x, x) R1 . Logo, R1 e reflexiva sobre A.

() Suponha que R1 e reflexiva sobre um conjunto A. Seja x um elemento arbitrario de


A. Como R1 e reflexiva, segue-se que (x, x) R1 . Segue-se, pela definicao de inversa,
que (x, x) R. Logo, R e reflexiva sobre A.

5. () Suponha que R e anti-simetrica. Sejam x e y elementos arbitrarios de A tais que


(x, y) R R1 , ou seja, (x, y) R e (x, y) R1 . Desta u
ltima, segue-se que (y, x) R.
Como R e anti-simetrica, (x, y) R e (y, x) R, segue-se que x = y e, portanto,
(x, y) A . Assim, R R1 A .
() Suponha que R R1 A . Sejam x e y tais que (x, y) R e (y, x) R. Como
(y, x) R, (x, y) R1 , e, portanto, (x, y) R R1 . Como R R1 A , segue-se que
(x, y) A e, portanto, x = y. Conclui-se que se (x, y) R e (y, x) R, entao x = y.
Portanto, R e anti-simetrica.

6. Nesta quest
ao, considere que se o denominador nas operacoes de divisao for 0, o resultado
e sempre o mesmo (indefinido) e diferente de qualquer outro resultado.
Como x1 /x2 = x1 /x2 para quaisquer x1 , x2 N, R e reflexiva. Suponha que x1 /x2 =
y1 /y2 , para x1 , x2 , y1 , y2 N. Segue-se que y1 /y2 = x1 /x2 . Logo, R e simetrica. Supondose que x1 /x2 = y1 /y2 e y1 /y2 = z1 /z2 , conclui-se que x1 /x2 = z1 /z2 . Portanto, R e
transitiva. Como R e reflexiva, simetrica e transitiva, R e uma relacao de equivalencia.
8

Para cada par (x1 , x2 ) N2 h


a a classe de equivalencia {(y1 , y2 ) N2 | y1 /y2 = x1 /x2 },
ou seja a cada n
umero racional, r, corresponde a classe de equivalencia constituda dos
pares de naturais (x1 , x2 ) tais que r = x1 /x2 .
7.

a) Fecho reflexivo: {(a, a), (c, c), (d, d), (e, e)} R.

b) Fecho simetrico: {(a, d), (b, a)} R.

c) Fecho transitivo: {(c, a), (c, b), (c, c), (d, b), (d, d)} R.

d) Fecho reflexivo e simetrico: {(a, a), (c, c), (d, d), (e, e), (a, d), (b, a)} R.

e) Fecho reflexivo e transitivo: {(a, a), (c, c), (d, d), (e, e), (c, a), (c, b), (d, b)} R.

f) Fecho simetrico e transitivo: {(a, d), (b, a), (c, a), (c, b), (c, c), (d, b), (d, d)} R.

g) Fecho reflexivo, simetrico e transitivo:


{(a, a), (c, c), (d, d), (e, e), (a, d), (b, a), (c, a), (c, b), (d, b)} R.

1.5

Fun
c
oes

1. O n
umero m
aximo para R A B ser uma funcao e |R| = |A|, ja que n
ao se pode ter
(x, y) f e (x, z) f se y 6= z.
2. Sejam f : A B, g : C D e h = f g. Entao:
h : A C B D se, e somente se, x A Cf (x) = g(x).
Prova:
() Suponha que h : A C B D. Seja um elemento arbitrario x de A C. Como
h = f g e h : A C B D, segue-se que h(x) = f (x) = g(x).

() Suponha que x A Cf (x) = g(x). Seja y um elemento arbitrario de A C. Para


mostrar existe um u
nico z B D tal que (y, z) h, ser
ao considerados 3 casos:
Caso 1 : y A C. Como f : A B, h = f g e y A, um z tal que (y, z) h e
z = f (y). E como g : C D, h = f g e y 6 C, tal z e u
nico.
Caso 2 : y C A. Como g : C D, h = f g e y C, um z tal que (y, z) h e
z = g(y). E como f : A B, h = f g e y 6 A, tal z e u
nico.
Caso 3 : y A C. Como f : A B, g : C D, h = f g e x A Cf (x) = g(x), o
u
nico z tal que (y, z) h e z = f (y) = g(y).
3.

sobrejetora, pois f (2n) = n para todo


a) f n
ao e injetora, pois f (0) = f (1) = 0. E
n N.

b) g e injetora, pois se g(n) = g(k), entao k = n. Ela n


ao e sobrejetora, pois n
ao existe
n N tal que g(n) = 2: g(1) = 1 e g(2) = 3 e g e crescente.

c) h e injetora: Suponha que h(n) = h(k). Se n e k forem ambos pares ou ambos


mpares, para que n 1 = k 1 ou n + 1 = k + 1, deve-se ter que n = k. Por outro
lado se um e par e o outro e mpar, para que n + 1 = k 1, deve-se ter que n + 2 = k;
mas, para que isto seja verdade, n e k n
ao podem ser um par e o outro mpar!
h e sobrejetora, pois h(n+1) = n para todo n
umero n par a partir de 0, e h(n1) = n
para todo n
umero n mpar a partir de 1.
Portanto, h e bijetora. Da u
ltima sentenca acima, ve-se que a h1 = h.

4. Sejam |A| = n e |B| = k.


9

a) Para cada a A, f (a) pode ser qualquer elemento de B. Assim, existem kn funcoes
totais possveis.
b) Para cada a A, f (a) pode ser indefinido ou qualquer elemento de B. Assim,
existem (k + 1)n func
oes parciais possveis.
c) Se n > k, n
ao h
a func
ao injetora. Suponha que n k. Escolhido um elemento de
B para ser f (a), ele n
ao pode mais ser f (b) para b 6= a. Assim, existem P (k, n) =
k.(k 1) . . . (k n + 1) = k!/(k n)! funcoes injetoras possveis, se n k.
d) Se n < k, n
ao h
a func
ao sobretora. Suponha que n k. Deve ser escolhido um
elemento de eA tal que f (a) seja um elemento de B, para cada elemento de B. Para
isto existem P (n, k) = n.(n 1) . . . (n k + 1) = n!/(n k)! possibilidades. Para cada
uma delas, os n k elementos restantes de A podem, cada um deles, ser mapeado
para qualquer um dos elementos de B: s
ao knk possibilidades. Assim, existem
(n!.knk )/(n k)! func
oes sobrejetoras possveis, se n k.
e) Quando n = k, existe uma u
nica funcao bijetora. Se n 6= k, n
ao existe func
ao
bijetora.
5.

a) Sejam x e y elementos arbitrarios de A tais que x 6= y. Como f e injetora, f (x) =


6
f (y). E como g e injetora, g(f (x)) 6= g(f (y)). Portanto, se x 6= y, entao g(f (x)) =
6
g(f (y)). Conclui-se que g f e injetora.
b) Seja y C arbitrario. Como g e sobrejetora, existe z B tal que g(z) = y. E como
f e sobrejetora, existe x A tal que f (x) = z, ou ainda, g(f (x)) = y. Logo, para
todo y C existe x A tal que g(f (x)) = y. Portanto, g f e sobrejetora.
c) Dos dois resultados acima segue-se que g f e bijetora.

6. Seja f : A B. Seja C = {b B | f (a) = b para algum a A}. Seja a funcao sobrejetora


g : A C tal que g(a) = f (a) para todo a A. Seja a funcao injetora h : C B tal que
h(c) = c para todo c C. Ent
ao f = h g.
7. Como g f = f g, g(f (n)) = f (g(n)) para todo n R. Logo, c(an+b)+d = a(cn+d)+b,
ou seja, acn + bc + d = acn + ad + b, ou ainda, bc + d = ad + b. Tem-se, entao, que
b(c 1) = d(a 1).

1.6
1.

Conjuntos Enumer
aveis
a) O conjunto X = {n N | n mod 10 = 0} e enumeravel, pois e um subconjunto de N.
Uma func
ao bijetora seria g : N X, tal que g(n) = 10n.

b) O conjunto N3 = {(n1 , n2 , n3 ) | n1 , n2 , n3 N} e enumeravel. Uma funcao bijetora


seria h : N3 N, tal que h(n1 , n2 , n3 ) = f (f (n1 , n2 ), n3 ), onde f : N2 N e tal
que f (i, j) = (i + j)(i + j + 1)/2 + i.
c) O conjunto W = {n R | 0 < n < 1} n
ao e enumeravel, como ser
a mostrado
por contradic
ao. Suponha que W e enumeravel. Seja, entao, r0 , r1 , r2 , . . . uma
enumerac
ao dos elementos de W . Ser
a denotado por di (r) o i-esimo dgito ap
os
a vrgula da expans
ao decimal do n
umero r de W . Por exemplo, d1 (0, 53) = 5,
d7 (0, 53) = 0. Seja o n
umero k entre 0 e 1 tal que di (k) = di (ri ) + 5 mod 10 para
i N. Tal n
umero difere de qualquer ri no i-esimo dgito ap
os a vrgula. Logo k 6= ri
para i N. Contradic
ao; W n
ao e enumeravel.
10

2. Suponha que tal conjunto seja enumeravel. Entao existe uma enumeracao f0 , f1 , f2 , . . . de
todas as func
oes de N para {0, 1}. Seja a funcao g : N {0, 1} tal que g(n) = 1 fn (n).
Ora, g(n) 6= fn (n) para todo n N, e, portanto, g 6= fn para todo n N. Logo, a
suposic
ao da enumerabilidade das funcoes n
ao se sustenta.
3. Suponha que tal conjunto seja enumeravel. Entao existe uma enumeracao f0 , f1 , f2 , . . . de
todas as func
oes de N para N monot
onicas crescentes. Seja a funcao h : N N tal que
Pn
ao monot
onicas crescentes, ent
ao
h(n) = 1 + k=0 fk (k). Veja que, como as funcoes fk s
fk (k) > 0 para k > 0. Assim, h, alem de diferente de fn para todo n N. e monot
onica
crescente. Logo, a suposic
ao da enumerabilidade das funcoes monot
onicas crescentes e
incorreta.
4. Seja um conjunto enumeravel arbitrario A e suponha que B A. Se B e finito, e contavel,
por definic
ao. Suponha que B e infinito. Ser
a mostrado que B e enumeravel construindose uma func
ao bijetora g : N B. Como A e enumeravel, existe uma funcao bijetora
f : N A; assim sendo, pode-se dizer que A = {f (k) | k N}. A funcao g pode ser
construda da seguinte forma:
g(0) = f (m), onde m e o menor n
umero natural tal que f (k) B;

para i > 0, g(i) = f (k), onde k e o menor n


umero natural tal que f (k) B e k > j,
sendo j tal que g(i 1) = f (j).

5. Como todo subconjunto de conjunto enumeravel e contavel (questao 4), sabe-se que A B
e contavel. Como (A B) B = A B, basta mostrar que (A B) B e contavel, sendo
que (A B) B = . No caso em ambos A B e B s
ao finitos, (A B) B e finito e,
portanto, cont
avel. No caso em que um deles e finito e o outro n
ao, seja {a0 , a1 , . . . , am } o
conjunto finito e suponha que existe uma funcao bijetora f de N para o conjunto infinito.
Entao, pode-se construir uma funcao bijetora h : N A B, onde h(k) = ak para
0 k m e h(k) = f (k m 1) para k m + 1. Agora, se ambos A B e B s
ao
infinitos, sejam f : N A B e g : N B bijetoras. Entao pode-se construir uma
funcao bijetora h : N A B, onde h(2k) = f (k) e h(2k 1) = g(k) para k N.
A intersec
ao e subconjunto dos dois conjuntos. Logo e contavel (questao 4).

O produto de conjuntos finitos e finito. Se um dos conjuntos e finito e o outro n


ao, seja
{a0 , a1 , . . . , am } o conjunto finito e suponha que existe uma funcao bijetora f de N para
o conjunto infinito. Sem perda de generalidade, seja A o conjunto finito. Entao, pode-se
construir uma func
ao bijetora h : A B N, onde h(i, j) = j(m + 1) + i para 0 i m
e j N. Se os dois conjuntos forem infinitos, sejam f : A N e g : B N bijetoras.
A func
ao h : A B N, onde h(f (a), g(b)) = (f (a) + g(b))(f (a) + g(b) + 1)/2 + f (a) e
bijetora.
6. Seja |F | = n. A cardinalidade do conjunto das funcoes totais f : F E e igual `
a
do conjunto E n : existe uma funcao bijetora que, a cada funcao f faz corresponder a nupla (f (a1 ), f (a2 ), . . . , f (an )), onde a1 , a2 , . . . , an s
ao os elementos de F . Como E n e
enumeravel, segue-se que o conjunto em questao e enumer
avel.

1.7

Defini
c
oes Recursivas

1. Definic
ao recursiva de f : N N, tal que f (n) =
a) f (1) = 1;
11

Pn

k=1 k:

b) f (n) = f (n 1) + n para n > 1.


2. Seja um universo U . O n
umero de elementos do conjunto potencia de um conjunto finito
de elementos de U , pode ser definido recursivamente assim:
a) |P()| = 1;

b) |P(X {a})| = 2|P(X)| para todo a U .


3. Definic
ao recursiva da representacao de n
umeros bin
arios sem zeros `a esquerda, r : N B,
onde B e o conjunto das seq
uencias de dgitos bin
arios:
a) r(0) = 0, r(1) = 1;
b) r(n) = r(n/2)(n mod 2) para n > 1.
Assim, por exemplo, r(5) = r(2)1 = r(1)01 = 101.
4. Definic
ao recursiva da seq
uencia de Fibonacci:
a) a0 = 0 e a1 = 1;
b) an = an2 + an1 para n 2.
5. Definic
ao recursiva de multiplicacao sobre N:
a) m 0 = 0 para todo m N;

b) m s(n) = m + (m n) para m, n N.
6. Definic
ao recursiva de LP , semelhante a LP, porem com omissao e/ou excesso de parenteses:
a) cada vari
avel proposicional pertence a LP ;
b) se , LP , ent
ao pertencem a LP : , , , , e ().

1.8

Indu
c
ao Matem
atica

1. S
o existe um conjunto de 0 elementos: ; e 20 = 1 = |{}| = |P()|. Seja n 0.
Suponha, como hip
otese de inducao, que |P(A)| = 2n para conjuntos A de n elementos.
Seja um conjunto B de n + 1 elementos e a um de seus elementos. Tem-se: P(B) =
P(B {a}) {X {a} | X P(B {a})}. Pela hip
otese de inducao, |P(B {a})| = 2n ,
e como P(B {a}) e {X {a} | X P(B {a})} tem o mesmo n
umero de elementos,
|P(B)| = 2n + 2n = 2n+1 .
2.

a)

P0

= 02 = 0 = 0(0 + 1)(2 0 + 1)/6. Seja n um n


umero natural arbitrario.
P
Suponha, como hip
otese de inducao, que nk=0 k2 = n(n+1)(2n+1)/6. Basta provar,
P
2
ent
ao, que n+1
k=0 k = (n + 1)(n + 2)(2n + 3)/6. De fato:
k=0 k

Pn+1
k=0

b)

P0

k2 = [ nk=0 k2 ] + (n + 1)2
= [n(n + 1)(2n + 1)/6] + (n + 1)2 pela hip
otese de inducao
= [n(n + 1)(2n + 1) + 6(n + 1)2 ]/6
= (n + 1)[n(2n + 1) + 6(n + 1)]/6
= (n + 1)(2n2 + 7n + 6)/6
= (n + 1)(n + 2)(2n + 3)/6.
P

= 03 = 0 = 02 = [0(0 + 1)/2]2 . Seja n 0 arbitrario. Suponha,


P
como hip
otese de induc
ao, que nk=0 k3 = [n(n + 1)/2]2 . Basta provar, entao, que
Pn+1 3
2
k=0 k = [(n + 1)(n + 2)/2] . De fato:
k=0 k

12

Pn+1
k=0

k3 = [ nk=0 k3 ] + (n + 1)3
= [n(n + 1)/2]2 + (n + 1)3
pela hip
otese de inducao
2
2
3
= [n (n + 1) + 4(n + 1) ]/4
= [(n + 1)2 (n2 + 4n + 4)]/4
= [(n + 1)2 (n + 2)2 ]/4
= [(n + 1)(n + 2)/2]2 .
P

c) Inicialmente, obsereve que: 220 1 = 20 1 = 1 1 = 0, que e divisvel por 3. Seja


n 0. Suponha, como hip
otese de inducao, que 22n 1 e divisvel por 3. Entao:
22(n+1) 1 = 22n+2 1 = 22n 22 1 = 4 22n 1 = 3 22n + 22n 1. Como
3 22n e divisvel por 3 e, pela hip
otese de inducao, 22n 1 tambem e divisvel por
2(n+1)
3, segue-se que 2
1 e divisvel por 3.

d) 03 0 = 0, que e divisvel por 6. Seja n 0. Hipotese de inducao: n3 n e


divisvel por 6. Deve-se provar que (n + 1)3 (n + 1) e divisvel por 6. Tem-se:
(n+1)3 (n+1) = n3 +3n2 +3n+1n1 = (n3 n)+(3n2 +3n) = (n3 n)+3n(n+1).
Como n(n + 1) e sempre um n
umero par, 3n(n + 1) e divisvel por 6. E como, pela
hip
otese de induc
ao, n3 n tambem e divisvel por 6, segue-se que (n + 1)3 (n + 1)
e divisvel por 6.
e) 70 1 = 1 1 = 0, que e divisvel por 6. Seja n 0. Suponha, como hip
otese de
n
n+1
n
n
induc
ao, que 7 1 e divisvel por 6. Tem-se: 7
1 = 7 1 + 6 7 . Como
6 7n e divisvel por 6 e, pela hip
otese de inducao, 7n 1 e divisvel por 6, conclui-se
que 7n+1 1 e divisvel por 6.
3.

a) Tem-se: 1k=1 [k(k + 1)] = 1(1 + 1) = 2 = 1(2)(3)/3 = 1(1 + 1)(1 + 2)/3. Seja n 1.
P
Suponha, como hip
otese de inducao, que nk=1 [k(k + 1)] = n(n + 1)(n + 2)/3. Basta,
Pn+1
ent
ao, provar que k=1 [k(k + 1)] = (n + 1)(n + 2)(n + 3)/3. De fato:
P

Pn+1

k=1 [k(k

b)

+ 1)]= [ nk=1 k(k + 1)] + (n + 1)(n + 2)


= [n(n + 1)(n + 2)/3] + (n + 1)(n + 2) pela hip
otese de inducao
= [n(n + 1)(n + 2) + 3(n + 1)(n + 2)]/3
= (n + 1)(n + 2)(n + 3)/3.
P

P1

= 21 = 2 = 21 = 2(21) = 2(21 1). Seja n 1. Suponha, como hip


otese
P
P
k ] + 2n+1 = 2(2n
k = [Pn
2
2
de induc
ao, que nk=1 2k = 2(2n 1). Tem-se: n+1
k=1
k=1
P
k
n+1 2 + 2n+1 = 2(2n+1 1),
1) + 2n+1 , pela hip
otese de inducao. Logo, n+1
k=1 2 = 2
como requerido.
k
k=1 2

c) Inicialmente, veja que 1k=1 [1/k(k+1)] = 1/(1+1). Seja n 1 arbitrario, e suponha,


P
como hip
otese de induc
ao, que nk=1 [1/k(k + 1)] = n/(n + 1). Entao:
P

Pn+1

k=1 [1/k(k

+ 1)]= [ nk=1 [1/k(k + 1)]] + 1/(n + 1)(n + 2)


= [n/(n + 1)] + 1/(n + 1)(n + 2) pela hip
otese de inducao
= [n(n + 2) + 1]/[(n + 1)(n + 2)]
= [n2 + 2n + 1]/[(n + 1)(n + 2)]
= (n + 1)2 /[(n + 1)(n + 2)]
= (n + 1)/(n + 2).
P

Logo, pelo princpio de inducao,

Pn

k=1 [1/k(k

+ 1)] = n/(n + 1) para todo n 1.

d) 13 +(1+1)3 +(1+2)3 = 1+8+27 = 36, que e divisvel por 9. Seja um n


umero natural n
arbitrario maior ou igual a 1. Suponha, como hip
otese de inducao, que n3 +(n+1)3 +
(n + 2)3 e divisvel por 9. Deve-se mostrar que (n + 1)3 + (n + 2)3 + (n + 3)3 e divisvel
por 9. Tem-se que (n+1)3 +(n+2)3 +(n+3)3 = (n+1)3 +(n+2)3 +n3 +9n2 +27n+27,
13

ou seja, (n + 1)3 + (n + 2)3 + (n + 3)3 = n3 + (n + 1)3 + (n + 2)3 + 9(n2 + 3n + 3).


Deduz-se, ent
ao, aplicando-se a hip
otese de inducao, que (n + 1)3 + (n + 2)3 + (n + 3)3
e divisvel por 9.
4. Seja n um n
umero natural arbitrario. Suponha, como hip
otese, que

!k
1 1+ 5
F (k) =

2
5

para k < n. Ser


ao considerados 3 casos:

!k
1 5
2

5)[((1
+
5)/2)0 ((1
Caso
1:
n
=
0.
Neste
caso,
F
(0)
=
0
por
defini
c
a

o,
e
(1/

0
5)/2) ] = 1 1 = 0.

5)[((1
+
5)/2)1 ((1
Caso
2:
n
=
1.
Neste
caso,
F
(1)
=
1
por
defini
c
a

o,
e
(1/

1
5)/2) ] = (1 + 5 1 + 5)/(2 5) = 1.
Caso 3: n 2. Neste caso, F (n) = F (n 1) + F (n 2) por definicao. Aplicando-se a
hip
otese de induc
ao, obtem-se:

!n1
1 1+ 5
F (n) =

2
5

Assim,

!n1
!n2
1 5
1
5
1
+
+

2
2
5

!n2
1 1+ 5
F (n) =
2
5

1+ 5
+1
2

!n2
1 5
2

Verifica-se facilmente que:

1+ 5
+1 =
2

!2

1+ 5
1 5
+1=
e
2
2

Portanto,
1
F (n) =
5

"

!n
1+ 5

!n2
1 5
.
2

1 5
+1 .
2

!2
1 5
.
2

!n #
1 5
.
2

5. Ser
a usada induc
ao forte sobre o n
umero de conectivos. Assim, seja n 0, e suponha que
o resultado valha para sentencas com menos de n conectivos. Deve-se provar, entao, que
o resultado vale para sentencas com n conectivos. Considera-se dois casos:
(a) n = 0. Uma sentenca sem conectivos e uma vari
avel proposicional, e esta tem apenas
dois prefixos: e ela mesma. Em ambos o n
umero de abre e fecha parenteses e zero.
(b) n > 0. Uma sentenca com conectivos e da forma ou ( ), onde {, ,
, }:
i) . Como tem n 1 conectivos, o resultado vale para , pela hip
otese de
induc
ao. Segue-se que vale tambem para , que n
ao tem outros parenteses que os
de .
ii) ( ). Como e tem menos de n conectivos, o resultado vale para ambos,
pela hip
otese de induc
ao. Segue-se que o resultado vale tambem para . E o
resultado continua valendo ao se colocar os parenteses externos.
14

1.9

Grafos

1. Isto segue do fato de que a soma dos graus dos vertices e par: em um grafo sem arestas
tal soma e zero, e cada aresta acrescenta 2 unidades `a soma.
2. Ser
a feita uma prova por induc
ao sobre o n
umero de vertices. A menor arvore, que e da
forma ({v}, , v), tem um vertice e nenhuma aresta. Seja um n
umero n 1 e suponha,
como hip
otese de induc
ao, que a proposicao e verdadeira para arvores com n vertices.
Uma arvore com n + 1 vertices e da forma (V {v}, A {{v, v }}, r), onde v V , v 6 V
e (V, A, r) e uma
arvore de n vertices. Pela hip
otese de inducao, |A| = n 1, ou ainda,
|A| + 1 = (n + 1) 1, o que mostra que a proposicao vale para arvores de n + 1 vertices,
ja que estas tem |A| + 1 arestas.
3. Isto segue do fato de que a cada aresta introduzida no grafo, a soma dos graus dos vertices
aumenta de 2 unidades.
4. O n
umero de arestas de Kn e C(n, 2) = n(n + 1)/2.
5.

a) Uma
arvore bin
aria de altura 0 tem apenas 1 vertice e ele e folha; e 20 = 1. Seja
n 0. Suponha, como hip
otese de inducao, que arvores bin
arias de altura n possuem,
n
no m
aximo, 2 folhas. Uma arvore bin
aria B de altura n + 1 possue um m
aximo
de folhas quando as duas subarvores da raiz possuem um m
aximo de folhas. Isto
acontece quando ambas tem altura n. Assim, pela hip
otese de inducao, elas possuem
n
n
n
n+1
2 folhas. Logo a
arvore B tem 2 + 2 = 2
folhas.
b) Uma
arvore bin
aria de altura 0 tem apenas 1 vertice; e 20+1 1 = 1. Seja n 0.
Suponha, como hip
otese de inducao, que arvores bin
arias de altura n possuem, no
m
aximo, 2n+1 1 vertices. Uma arvore bin
aria B de altura n + 1 possue um m
aximo
de vertices quando as duas subarvores da raiz possuem um m
aximo de vertices. Isto
acontece quando ambas tem altura n. Assim, pela hip
otese de inducao, elas possuem
2n+1 1 vertices. Logo a
arvore B tem os 2n+1 1 vertices de cada uma mais a raiz:
2n+1 1 + 2n+1 1 + 1 = 2 2n+1 + 1 = 2n+2 + 1.

6. Ser
a usada a definic
ao de
arvore do livro.
(a)(b) Por induc
ao sobre o n
umero de vertices. Se a arvore tem 1 vertice n
ao tem
arestas. Logo, satisfaz (b). Seja n 1, e suponha que (b) vale para arvores de n vertices.
Seja uma
arvore A de n + 1 vertices. Pela definicao, tal arvore e formada de uma arvore
de n vertices pela inclusao de um vertice novo e uma nova aresta. Como, pela hip
otese
de induc
ao, (b) vale para
arvore de n vertices, entao continua valendo para A.
(b)(c) Sendo o grafo acclico, se existir um caminho simples de um vertice a outro,
ele e u
nico. Assim, basta mostrar a existencia de caminho simples. Isto ser
a feito por
inducao sobre o n
umero de vertices. Se o grafo tem 1 vertice, existe caminho simples dele
ate ele mesmo. Seja n 1, e suponha que (c) vale para grafos (que satisfazem (b)) de
n vertices ou menos. Seja Seja um grafo G de n + 1 vertices que satisfaca (b). Seja v
um vertice arbitrario de G. Suponha que existam k vertices adjacentes a v, v1 , v2 ,. . . ,vk .
Retirando-se as arestas {v, v1 }, . . . , {v, vk }, como o grafo e acclico, obtem-se k + 1 grafos
(componentes) sem vertices em comum, k grafos em que est
ao os vertices v1 , v2 ,. . . ,vk ,
e um contendo apenas v. Pela hip
otese de inducao, (c) vale para cada um deles. Com a
reinclusao de v e arestas incidentes, haver
a tambem um caminho simples de cada vertice
de cada um dos k + 1 componentes a qualquer outro de outro componente, passando por
v.
15

(c)(a) A prova ser


a feita por inducao sobre o n
umero de vertices. Se o grafo tem 1
vertice, ele n
ao tem aresta, pois existe um u
nico caminho simples do vertice a ele mesmo.
Seja n 1, e suponha que (a) vale para grafos (que satisfazem (c)) de n vertices ou
menos. Seja Seja um grafo G de n + 1 vertices que satisfaca (c). Seja v um vertice
arbitrario de G de grau 1; v existe, pois o conjunto de vertices e finito e , assim, partindose de qualquer vertice, um caminhamento qualquer deve terminar antes repetir um vertice;
caso contr
ario, existiria mais de um caminho simples, contrariando (c). Removendo-se v
e a aresta incidente, obtem-se um grafo que, pela hip
otese de inducao, e uma arvore.
Adicionando-se v e a aresta incidente, obtem-se entao uma arvore.

1.10

Linguagens Formais

1. O n
umero de prefixos e o de sufixos e n + 1. O n
umero m
aximo de subpalavras e 1 +
C(n 1 + 2, 2) = 1 + C(n + 1, 2) = 1 + (n + 1)n/2; assim, o n
umero de subpalavras vai
de n + 1 a 1 + (n + 1)n/2.
2.

a) {1} {0}{0, 1} .

b) {0, 1}({0, 1}2 ) .


c) {0} {0}{1} .

d) {} {0}{10} {1}{01} .
e) {xx | x {0, 1} }.

3.

a) {0, 1}10 .

b) {0, 1}{, 0, 1}199 .

c) {01, 1}{0, 1} {00}.

d) {1, 011} .

e) {1} ({0}{1} {0}{1} ) {0} {1}{0} ({1}{0} {1}{0} ) .


f) {0} {1}{0} {, 1}{0} ({0, 1}3 )

4.

a) A(B C) (AB) (AC)


Seja w tal que w A(B C). Entao existem x e y tais que w = xy, x A e
y B C. No caso em que y B, segue-se que xy AB e no caso em que y C,
segue-se que xy AC. Logo, xy = w (AB) (AC).
(AB) (AC) A(B C)
Seja w tal que w (AB) (AC). Entao w AB ou w AC. No primeiro
caso, existem x e y tais que w = xy, x A e y B. Como y B D para qualquer
linguagem D, segue-se que xy = w A(B C). No caso em que w AC, existem x
e y tais que w = xy, x A e y C. Como y D C para qualquer linguagem D,
segue-se que xy = w A(B C). Conclui-se, portanto, que w A(B C).

b) Contra-exemplo: A = {, a}, B = {b}, C = {ab}.

5. Suponha que L. Neste caso, L+ e, portanto, L+ {} = L+ . Como L = L+ {},


segue-se que L = L+ . Agora suponha que 6 L. Entao 6 L+ . Como L = L+ {},
segue-se que L+ = L {}.
6. L e finita se, e somente se, L = ou L = {}.
16

7. Uma condic
ao necessaria e suficiente para L = LR e: w L se, e somente se, wR L,
para toda palavra w.
Prova:
() Suponha que L = LR . Seja w uma palavra arbitraria. Se w L, entao, pela definic
ao
de reverso, wR LR ; e como LR = L, wR L. Por outro lado, se wR L, entao, pela
definic
ao de reverso, (wR )R = w LR ; e como LR = L, w L. Assim, para toda palavra
w, w L se, e somente se, wR L.

() Suponha que w L se, e somente se, wR L, para toda palavra w. L LR , pois: se


x L, ent
ao, pela suposic
ao acima, xR L; e pela definicao de reverso, (xR )R = x LR .
Por outro lado, LR L, pois: se x LR , da definicao de reverso, tem-se que xR L (pois
x = (xR )R ); e pela suposic
ao acima, x L. Conclui-se entao que L = LR .

8. A prova ser
a por induc
ao sobre n. Para n = 0, tem-se: (wR )0 = = R = (w0 )R .
Seja n 0 e suponha que (wR )n = (wn )R . Segue-se que: (wR )n+1 = (wR )n wR =
(wn )R wR , pela hip
otese de inducao. E como (wn )R wR = (wwn )R = (wn+1 )R , segue-se
que (wR )n+1 = (wn+1 )R .
9. L

nN L

n.

Por induc
ao forte sobre |w|. Suponha, como hip
otese de inducao, que se w L ent
ao
S
n
w nN L para palavras de tamanho menor que um certo k arbitrario. Para mostrar
que isto vale tambem para palavras de tamanho k, considera-se dois casos:
k = 0. A u
nica palavra de tamanho 0 e , e

nN L

n,

pois L0 = {}.

k > 0. Seja w de tamanho k tal que w L . Pela definicao de fecho de Kleene, pode-se
S
dizer que w = xy, onde x L , y L e y 6= . Pela hip
otese de inducao, x nN Ln .
Segue-se que x Li para algum i N. Como y L, tem-se que xy Li+1 . Portanto,
S
w nN Ln .
nN L

L .

Este resultado segue do fato de que para todo n 0, Ln L , fato este que ser
a provado
0

por induc
ao sobre n. Inicialmente, note que L = {}, e L por definicao. Seja
n arbitrario e suponha que Ln L . Como Ln+1 = Ln L, e, pela hip
otese de inducao,
Ln L , segue-se, pela definic
ao de fecho de Kleene, que Ln+1 L .

10.

a) Seja w uma palavra arbitraria. Se w L , como L , segue-se que w =


w L L . Para completar, ser
a provado, por inducao no tamanho de y que para

quaisquer palavras x, y L , se xy L L entao xy L . Inicialmente, veja que


se x L , x = x L . Seja n 0 e suponha, como hip
otese de inducao, que

se xy L L ent
ao xy L para palavras y de n ou menos smbolos. Seja y uma
palavra arbitraria de L de n + 1 smbolos e x L . Entao, y = y1 y2 , onde y1 L
e y2 L, y2 6= . Assim, dado que xy1 L L , pela hip
otes de inducao xy1 L .
Como y2 L, segue-se que (xy1 )y2 = xy L .

b) Seja w uma palavra arbitraria. Se w L , como (L ) , segue-se da definicao de


fecho de Kleene que w (L ) L , ou seja, w (L ) . Ser
a provado, por induc
ao

no tamanho de w que para quaisquer palavras w (L ) , w L . Inicialmente, veja


que L . Seja n 0 e suponha, como hip
otese de inducao, que se x (L )
ent
ao x L para palavras x de n ou menos smbolos. Seja w uma palavra de n + 1
smbolos. Suponha que w (L ) . Entao w = xy, onde x (L ) e y L , y 6= .
Como |x| n, segue-se pela hip
otese de inducao que x L . Assim, xy L L e,
do resultado do item (a), segue-se que xy L .
17

c) Seja w uma palavra arbitraria. Se w (L1 L2 ) , como L1 , segue-se que


a mostrado por inducao no tamanho de y que para
w = w (L1 L2 ) L1 . Ser
quaisquer palavras x (L1 L2 ) e y L1 , se xy (L1 L2 ) L1 entao xy
(L1 L2 ) . Inicialmente, observe que (L1 L2 ) . Seja n 0 e suponha, como
hip
otese de induc
ao, que se xy (L1 L2 ) L1 entao xy (L1 L2 ) para palavras
y L1 de n ou menos smbolos. Seja y L1 uma palavra de n + 1 smbolos; assim,
y = y1 y2 , onde y1 L1 e y2 L1 , y2 6= , e suponha que xy (L1 L2 ) L1 .
otese de inducao que
Ent
ao xy1 (L1 L2 ) L1 . Como |y1 | n, segue-se pela hip
xy1 (L1 L2 ) . Como y2 L1 , y2 L1 L2 . Assim, (xy1 )y2 = w (L1 L2 ) .

d) (L1 L2 ) (L1 L2 ) .
Ser
a provado, por induc
ao no tamanho de w que para quaisquer palavras w (L1

otese
L2 ) , w (L1 L2 ) . Tem-se: (L1 L2 ) . Seja n 0 e suponha, como hip
de induc
ao, que z (L1 L2 ) para palavras z (L1 L2 ) de n ou menos smbolos.
Seja w (L1 L2 ) de n + 1 smbolos. Entao, w = xy, y 6= , x (L1 L2 ) e
y (L1 L2 ). Pela hip
otese de inducao, x (L1 L2 ) . Se y L1 , entao y L1 e,

como L2 , y = y L1 L2 ; logo, xy = w (L1 L2 ) . Por outro lado, se y L2 ,


raciocnio an
alogo mostra que xy = w (L1 L2 ) .
(L1 L2 ) (L1 L2 ) .
Ser
a provado, por induc
ao no tamanho de w que para quaisquer palavras w

(L1 L2 ) , w (L1 L2 ) . Tem-se: (L1 L2 ) . Seja n 0 e suponha, como


hip
otese de induc
ao, que z (L1 L2 ) para palavras z (L1 L2 ) de n ou menos
smbolos. Seja w (L1 L2 ) de n + 1 smbolos. Entao, w = xy, y 6= , x (L1 L2 )
e y L1 L2 . Pela hip
otese de inducao, x (L1 L2 ) . Sejam y1 L1 e y2 L2 tais
que y = y1 y2 . Ent
ao w = xy1 y2 (L1 L2 ) L1 L2 . Aplicando-se o resultado do item
(c) duas vezes, conclui-se que w (L1 L2 ) .
11. L1 = {, a}, L2 = {a, aa}.
12.

a) Definic
ao recursiva de X = {0} {1} :

X;
se x X ent
ao 0x X e x1 X.

b) Definic
ao recursiva de Y = {0n 1n | n N}:
Y;
se x Y ent
ao 0x1 Y .

c) Definic
ao recursiva de Z = {w {0, 1} | w contem 00}:
00 Z;
se x Z ent
ao 0x, 1x, x0, x1 Z.

d) Definic
ao recursiva de W = {00 101 102 1 . . . 0n 1 | n N}:
1, 101 W ;
se x10n 1 W ent
ao x10n 10n+1 1 W .

1.11

Gram
aticas

1. Nas derivac
oes abaixo est
ao grifadas as vari
aveis expandidas.
a) A BB B .
A BB B .
18

b) A
A
A
A
c) A
A
A
A
A
A
d) A
A
A
A
A
A
A
A

BB
BB
BB
BB

BB
BB
BB
BB
BB
BB
BB
BB

BB
BB
BB
BB
BB
BB

0B1B
0B1B
B0B1
B0B1

B 0B1 00B11 0011.


0B1B 00B11B 0011B 0011.
0B1B 00B11B 00B11 0011.
0B1B 0B1 00B11 0011.
B 0B1 00B11 0011.
B0B1 0B1 00B11 0011.
B0B1 B00B11 00B11 0011.
B0B1 B00B11 B0011 0011.

0B1B
0B1B
0B1B
B0B1
B0B1
B0B1

01B
0B1
0B1
B01

01.
01.
01.
01.

01B 010B1 0101.


0B10B1 010B1 0101.
0B10B1 0B101 0101.
0B10B1 010B1 0101.
0B10B1 0B101 0101.
B01 0B101 0101.

A linguagem gerada e {0n 1n | n N}2 .


2. L(G ) = L(G). Cada palavra gerada por G, a gram
atica do Exemplo 49, pode ser gerada
por uma derivac
ao da forma:
P aAbc
k

aak A(bC)k bc

aak (bC)k bc
ak+1 (bC)k1 b2 Cc
2
ak+1 (bC)k2 b3 C2 c
..
.
k

ak+1 bk+1 Ck c
k

ak+1 bk+1 ck+1

(regra 1)
(regra
(regra
(regra
(regra

2, k vezes; k 0)
3)
4, 1 vez)
4, 2 vezes)

(regra 4, k vezes)
(regra 5, k vezes)

Cada uma destas palavras pode ser gerada, por meio de G , como mostrado abaixo. O
que est
a diferente est
a grifado.
P aAbD
k

aak A(bC)k bD

aak (bC)k bD
ak+1 (bC)k1 b2 CD
2
ak+1 (bC)k2 b3 C2 D
..
.
k

ak+1 bk+1 Ck D
k

ak+1 bk+1 Dck


k

ak+1 bk+1 ck+1

(regra 1)
(regra
(regra
(regra
(regra

2, k vezes; k 0)
3)
4, 1 vez)
4, 2 vezes)

(regra 4, k vezes)
(regra 5, k vezes)
(regra 6, 1 vez)
19

Note-se que uma derivac


ao de uma palavra da linguagem gasta um passo a mais na
gram
atica G : o u
ltimo, que e usado para produzir o u
ltimo c. Uma derivacao em G que,
usando a regra 6, substitua D por c antes da subsitituicao de todos os Cs por cs, n
ao leva
a nenhuma palavra da linguagem.
3.

P aI | bP |
I aP | bI

a)

X aXb |

b)

X aXa | bXb | | a | b

c)

P A|B |
A aBa | a
B bAb | b

d)

P aBP Cd |
BC bc
Ba aB
Bb bb
dC Cd
cC cc

e)

4. Para a gram
atica do item (b), observando-se o esquema:
k

X ak Xbk ak bk .
ve-se que s
ao gastos k + 1 = (n/2) + 1 passos.
Para a gram
atica do item (c), se n = 0, e gasto 1 passo:
X
e se n > 0 s
ao gastos k = n/2 + 1 passos, pois
k

Uma derivac
ao comeca assim: X xXxR (regras 1 e 2, k vezes, k 0, |x| = |xR | =
k).
Em seguida, e aplicada uma das 3 u
ltimas regras. Se for a regra , o n
umero de
passos e k = (n/2) + 1, onde n = 2k. Se for uma das outras duas regras, o n
umero
de passos e k = [(n 1)/2] + 1, onde n = 2k + 1.
5. L(G) = {a} {b} .
Prova:

{a} {b} L(G). O seguinte esquema de derivacao mostra que toda palavra da forma
ai bj , para i, j 0, e gerada por G:
i

A ai A
ai B
j

ai bj B
ai bj

(regra A aA, i vezes, i 0)


(regra A B)

(regra B bB, j vezes, j 0)


(regra B )

Como qualquer palavra gerada por G segue necessariamente este mesmo esquema de
derivac
ao, segue-se que L(G) {a} {b} .
20

1.12
1.

Problemas de Decis
ao
a) Nada se pode dizer. X pode ser decidvel ou n
ao.
b) X e decidvel: para qualquer entrada x (para X), o algoritmo R produz uma sada
y, a partir da qual um algoritmo para D obtem a resposta para x.
c) X e indecidvel: pelo item anteriror, se X fosse decidvel, I seria decidvel.
d) Nada se pode dizer. X pode ser decidvel ou n
ao.

1.13

Exerccios

1. Segue uma definic


ao recursiva de v : LP {V, F }:
a) v() = v() para VP;

b) v() = V se, e somente se, v() = F ;


v(( )) = V se, e somente se, v() = V e v() = V ;
v(( )) = F se, e somente se, v() = F e v() = F ;
v(( )) = F se, e somente se, v() = V e v() = F ;
v(( )) = V se, e somente se, v() = v().
2. Basta substituir, indutivamente:
por ( );

por ;

por ( ) ( );
x por x.

3. Por induc
ao sobre n. Inicialmente, veja que (0 + 1)2 02 = 1 > 0. Seja n um n
umero
natural arbitrario. Suponha, como hip
otese de inducao, que existe k N tal que (k+1)2
2
otese
k > n. Seja k0 tal n
umero. Como (k0 +1)2 k02 = k02 +2k0 +1k02 = 2k0 +1, pela hip
de induc
ao, tem-se que 2k0 + 1 > n. Logo, 2k0 + 2 > n + 1. E como (k0 + 2)2 (k0 + 1)2 =
k02 + 4k0 + 4 k02 2k0 1 = 3k0 + 3, segue-se que (k0 + 2)2 (k0 + 1)2 > n + 1. Portanto,
existe um n
umero natural k tal que (k + 1)2 k2 > n + 1: k0 + 1 seria um tal n
umero.
4. Deve-se provar que existem k, n0 N tais que para todo n n0 , 10n2 +100n+1000 kn2 .
Sejam k = 1110 e n0 = 1. Ser
a provado, por inducao, que para todo n n0 , 10n2 +100n+
2
2
1000 kn = 1110n . Inicialmente, veja que 10 12 + 100 1 + 1000 = 1110 = 1110 12 .
Seja n um n
umero natural arbitrario maior ou igual a 1, e suponha, como hip
otese de
2
2
2
inducao, que 10n + 100n + 1000 1110n . Segue-se que 10(n + 1) + 100(n + 1) + 1000 =
10n2 + 20n + 10 + 100n + 100 + 1000 = (10n2 + 100n + 1000) + 20n + 110. Pela hip
otese
2
2
de induc
ao, (10n + 100n + 1000) + 20n + 110 1110n + 20n + 110. Como esta u
ltima e
menor do que (1110n2 + 20n + 110) + 2200n + 1000 e esta, por sua vez e igual a 1110n2 +
2220n + 1110 = 1110(n + 1)2 , conclui-se que 10(n + 1)2 + 100(n + 1) + 1000 < 1110(n + 1)2 .
Portanto, pelo princpio de inducao, para todo n 1, 10n2 + 100n + 1000 1110n2 . J
a
que existem k, n0 N tais que para todo n n0 , 10n2 + 100n + 1000 kn2 , conclui-se
que 10n2 + 100n + 1000 e O(n2 ).
Tecnicas de provas utilizadas: construtiva para a existencial 2 vezes (quando se exibiu
k = 1110 e n0 = 1) e induc
ao (para provar que para todo n n0 . . .).
21

5. |A B| = |A| + |B| |A B|. Prova: Cada elemento de A B e cada elemento de A B


e contado uma vez em |A|, e cada elemento de B A e cada elemento de A B e contado
uma vez em |B|. Assim, os elementos de A B s
ao contados duas vezes em |A| + |B|,
raz
ao da subtrac
ao de |A B|.
Generalizando: | ni=1 Ai | = S1 + S2 + + Sn , onde:
Sk = (1)k+1

j1 6=j2 6=6=jk

|Aj1 Aj2 . . . Ajk |, para 1 k n.

Para provar este resultado por inducao, note inicialmente que | 1i=1 Ai | = |A1 | = S1 . Seja
n 1 arbitrario. Hipotese de inducao: | ni=1 Ai | = S1 + S2 + + Sn , sendo Sk definido

como acima. Basta, agora, provar que | n+1


i=1 Ai | = S1 + S2 + + Sn+1 , onde cada Sk
n
e como Sk , s
o que cada jk pode ser tambem k + 1. Como n+1
i=1 Ai = (i=1 Ai ) An+1 ,
tem-se, pelo resultado acima, que:
n
n
| n+1
i=1 Ai | = | i=1 Ai | + |An+1 | |(i=1 Ai ) An+1 |.

Pela hip
otese de induc
ao, segue-se que:
n
| n+1
i=1 Ai | = S1 + S2 + + Sn + |An+1 | |(i=1 Ai ) An+1 |.

ao:
Como S1 = S1 + |An+1 | e a intersecao distribui sobre uni

n
| n+1
i=1 Ai | = S1 + S2 + + Sn | i=1 (Ai An+1 )|.

Pela hip
otese de induc
ao, tem-se que:

| n+1
i=1 (Ai An+1 )| = S1 + S2 + + Sn , onde:

Sk = (1)k+1

j1 6=j2 6=6=jk

|(Aj1 An+1 ) (Aj2 An+1 ) . . . (Ajk An+1 )|

para 1 k n. Ou ainda:
Sk = (1)k+1

j1 6=j2 6=6=jk

|Aj1 Aj2 . . . Ajk An+1 |.

Assim, como

| n+1
i=1 Ai | = S1 + S2 + + Sn (S1 + S2 + + Sn ).

, conclui-se que
= Sn , e Sn = Sn+1
e como S2 S1 = S2 , S3 S2 = S3 , . . . , Sn Sn1
n+1

| i=1 Ai | = S1 + S2 + + Sn + Sn+1 .

6.

a) Seja X um elemento arbitrario de P(A) P(B). Entao X P(A) ou X P(B).


No primeiro caso, X A, e no segundo, X B. Em qualquer caso, X A B.
Portanto, X P(A B). Conclui-se que P(A) P(B) P(A B).

b) P(A) P(B) P(A B).


Seja X um elemento arbitrario de P(A) P(B). Entao X P(A) e X P(B); logo,
X A e X B. Segue-se que X A B. Portanto, X P(A B). Conclui-se
que P(A) P(B) P(A B).
P(A B) P(A) P(B).
Seja X um elemento arbitrario de P(A B). Entao X A B; logo, X A
e X B. Segue-se que X P(A) e X P(B). Portanto, X P(A) P(B).
Conclui-se que P(A B) P(A) P(B).
22

7.

a) A B (A B) (A B).
Seja x A B. Ent
ao, por definicao, x A B ou x B A. No primeiro
caso, x A e x 6 B; como x A, x A B, e como x 6 B, x 6 A B. Assim,
x (A B) (A B). No segundo caso, procede-se de forma an
aloga para mostrar
que tambem x (A B) (A B).
(A B) (A B) A B.
Seja x (A B) (A B). Segue-se que x A B e x 6 A B. Caso 1:
x A. Como x 6 A B, x 6 B. Assim, x A B. Caso 2: x B. Como
x 6 A B, x 6 A. Assim, x B A. Portanto, x A B ou x B A, ou ainda,
x (A B) (B A) = A B.

b) A (B C) (A B) C.
Seja x A (B C). Ent
ao, pela definicao, x A (B C) ou x (B C) A.
Caso 1: x A (B C).
Ent
ao x A e x 6 B C. Desta u
ltima, segue-se que x 6 B C e x 6 C B, ou
seja, (I) x 6 B ou x C e (II) x 6 C ou x B. Por um lado, se x C, de (II)
segue-se que x B; com isto, x 6 A B e x 6 B A; logo, x 6 A B e, assim,
x C A B. Por outro lado, se x 6 C, de (I) segue-se x 6 B; com isto, e como
x A, x A B e, portanto, x A B; segue-se que x (A B) C. Como
x C A B se x C, e x (A B) C se x 6 C, conclui-se que x (A B) C.
Caso 2: x (B C) A
Ent
ao x B C e x 6 A. Da primeira, Segue-se que x B e x 6 C ou x C e
x 6 B. No caso em que x B e x 6 C, x B A e, portanto, x A B; segue-se
que x (A B) C e que x (A B) C. E no caso em que x C e x 6 B,
x 6 A B e x 6 B A; portanto, x 6 A B; e assim, x C (A B), ou ainda,
x (A B) C.
(A B) C A (B C).
Procede-se forma similar `
a acima.

c) (A B) (B A) A B.
Seja x (A B) (B A). Entao x (A B) (B A) ou x (B A) (A B).
No caso em que x (A B) (B A), x A B e, portanto, x A B. E no
caso em que x (B A) (A B), x A B e, portanto, x A B.
A B (A B) (B A).
Seja x A B. Ent
ao x A B ou x B A. No primeiro caso, segue-se que
x (A B) (B A), e no segundo segue-se que x (B A) (A B). Assim,
em qualquer caso, x (A B) (B A).

d) ()
Suponha que A B = A e suponha que B 6= . Seja, entao b B. Se b A, entao,
como A B = A, b A B; mas isto e impossvel, pois se b A, b 6 B A e se
b B, b 6 A B. Assim, b 6 A. Neste caso, b B A e, logo, b A B. Mas
isto tambem n
o pode ser, ja que A B = A. Conclui-se, portanto, que b n
ao pode
existir, e, assim, B = .
()
Suponha que B = . Prova-se, primeiro, que A B A. Seja x A B. Com
isto, x A B ou x B A. Como B = , este u
ltimo caso e impossvel. Assim,
x A B. E como B = , x A. Portanto, A B A. Agora, prova-se que
A A B. Seja x A. Como B = , x A B e, portanto, x A B. Logo,
A A B.
23

e) A B = A B se, e somente se, B A, como provado abaixo.


()
Suponha que A B = A B. Seja b B. Com isto, b 6 A B. Supondo que
b 6 A, segue-se que b B A e, portanto, b A B. Isto n
ao pode ser, visto que
A B = A B. Assim, se b B, entao b A. Portanto, B A.
()
Suponha que B A. Se x A B, entao x A B; logo A B A B. Assim,
basta mostrar que A B A B. Seja x A B. Como B A, tem-se x 6 B A;
portanto, x A B. Logo, A B A B.
8. Seja uma relac
ao R reflexiva e transitiva arbitraria. Ser
a mostrado por inducao que
Rn = R para todo n 1. R1 = R, por definicao. Seja n 1. Suponha, como hip
otese
de induc
ao, que Rn = R. Por definicao, Rn+1 = Rn R, pois n + 1 2. Pela hip
otese de
inducao, Rn = R. Assim, basta mostrar que RR = R. Mostra-se primeiro que R RR.
Para isto, seja (x, y) R. Como R e reflexiva, (x, x) R. Logo, (x, y) R R. Portanto,
R R R. Agora, mostra-se que R R R. Seja (x, y) R R; entao existe z tal que
(x, z) R e (z, y) R. Como R e transitiva, (x, y) R. Portanto, R R R.
9. Seja F : A A tal que f (a) = aC para todo a A, onde aC e um certo elemento da classe
de equivalencia a que pertence a. Tal elemento existe, visto que todo a A pertence a
alguma classe de equivalencia e classes de equivalencia n
ao s
ao vazias. Qualquer elemento
da classe de equivalencia de a serve para ser aC , mas escolhido um, ele deve ser a u
nica
imagem para todos os componentes da classe. Uma funcao assim satisfaz os requisitos,
como mostrado abaixo.
()
Suponha que xRy. Ent
ao x e y pertencem `a mesma classe de equivalencia C e, portanto,
f (x) = xC = yC = f (y).
()
Suponha que f (x) = f (y). Ent
ao f (x) e f (y) pertencem `a mesma classe de equivalencia.
Portanto, xRy.
10. [a] 6= , visto que R e reflexiva e, portanto, aRa.

Agora, mostra-se que as classes de equivalencia s


ao disjuntas, ou seja, dados a, b A,
[a] = [b] ou [a] [b] = . Suponha que [a] [b] 6= , e seja x A tal que x [a] e x [b].
Seja y [a]. Ent
ao, aRy e, por simetria, yRa. Como aRx, por transitividade, yRx. Como
xRb, por transitividade, yRb. Por simetria, bRy. Logo, y [b]. Como y e um elemento
arbitrario de [a], [a] [b]. De form an
aloga, mostra-se [b] [a].

Falta mostrar que aA [a] = A. As classes de equivalencia [a] s


o tem elementos de A.
Assim, aA [a] A. Por outro lado, se x A, entao existe uma classe de equivalencia [x]
por definic
ao, o que mostra que A aA [a].
11.

a) f (A B) f (A) f (B).
Seja x f (A B). Ent
ao, x = f (y) onde y A B. Se y A, segue-se que
f (y) f (A) e se y B, f (y) f (B). Assim, x = f (y) f (A) f (B).
f (A) f (B) f (A B).
Seja x f (A) f (B). Ent
ao x f (A) ou x f (B). Se x f (A), entao x = f (y),
onde y A; se y A, y A B, e portanto x = f (y) f (A B). Da mesma forma,
mostra-se que se x f (B), x f (A B).
24

b) f (A B) f (A) f (B).
Seja x f (A B). Ent
ao, x = f (y) onde y A B. Assim, y A e y B, de onde
se segue que f (y) f (A) e f (y) f (B). Logo, x = f (y) f (A) f (B).
12.

a) Tem-se:
fA (x) = 1 x A
por definicao
x 6 A
por definicao
fA (x) 6= 1
fA (x) = 0
1 fA (x) = 1.
Portanto, fA (x) = 1 fA (x).

b) Tem-se:

fAB (x) = 1 x A B
por definicao
x A ou x B
fA (x) = 1 ou fB (x) = 1 por definicao
fA (x) + fB (x) fA (x)fB (x) = 1.
Portanto, fAB (x) = fA (x) + fB (x) fA (x)fB (x).

c) Tem-se:

fAB (x) = 1 x A B
por definicao
xAexB
fA (x) = 1 e fB (x) = 1 por definicao
fA (x)fB (x) = 1.
Portanto, fAB (x) = fA (x)fB (x).
d) Tem-se:
fAB (x) = 1 x A B
por definicao
x A e x 6 B
fA (x) = 1 e fB (x) 6= 1
por definicao
fA (x) = 1 e fB (x) = 0
fA (x) = 1 e 1 fB (x) = 1
fA (x)(1 fB (x)) = 1.
Portanto, fAB (x) = fA (x)fB (x).
13. ()
Seja uma func
ao injetora f : A B. Seja C a imagem de A. Entao g : C A tal que
g(c) e o elemento a tal que f (a) = c e uma funcao sobretora. O elemento a existe e e
u
nico visto que f e uma func
ao injetora.
()
Seja uma func
ao sobrejetora f : B A. Entao g : A B tal que g(a) e algum elemento
de {b | f (b) = a} e uma func
ao injetora. Como f e uma funcao sobrejetora, para todo a
tal conjunto n
ao e vazio; e os conjuntos s
ao disjuntos, pois f e funcao.
14. Seja = {a1 , a2 , . . . , an }. Ent
ao:

e enumer
avel. Uma enumeracao para e dada pela funcao : N tal que
P
k
() = 0 e (apm apm1 . . . ap0 ) = m
k=0 (pk n ).
25

P( ) n
ao
e enumer
avel. Suponha que P( ) e enumeravel. Entao existe uma func
ao

bijetora de P( ) para N, de forma que os elementos de P( ) podem ser enumerados: A0 , A1 , A2 , . . .. Seja o conjunto B = {w | w 6 A(w) }, onde e a func
ao
de enumerac
ao vista acima (ou qualquer outra). Mas, como {(w) | w } = N,
segue-se que B 6= Ai para todo i N. Logo, a suposicao de que existe a enumerac
ao

A0 , A1 , A2 , . . . n
ao e correta, ou seja, P( ) n
ao e enumeravel.
15. Seja uma func
ao bijetora f : A P(A). Agora, considere o conjunto D A assim
definido:
para cada a A, a D se, e somente se, a 6 f (a).
Como f e uma func
ao bijetora, para cada X A deve existir x A tal que f (x) = X.
Em particular, para D deve ent
ao existir d A tal que f (d) = D. Mas, pela definicao de
D, segue-se que d D = f (d) se, e somente se, d 6 f (d). Tal contradicao leva `a conclusao
que n
ao existe uma func
ao bijetora de um conjunto A para um conjunto P(A).

Este resultado implica que para qualquer conjunto existe conjunto com cardinalidade
maior. Em particular, considerando-se conjuntos infinitos, existe uma infinidade de ordens de infinidade: N, P(N), P(P(N)), etc.

16. A representac
ao de um n
umero n na base b gasta logb n + 1 smbolos, se b > 1. Como
logb n = logb c logc n, onde b > 1 e c > 1, ve-se que a transicao de uma base para
outra, ambas maiores ou iguais a 2, e influenciada apenas por um fator constante, logb c.
E dado o exposto no Exemplo 47, as representacoes em bases maiores ou iguais a 2 s
ao
exponencialmente mais concisas do que na base 1.
17. Definic
ao recursiva de v : {0, 1} N, de forma que v(w) e o n
umero representado por
w na base 2:
a) v(0) = 0 e v(1) = 1;
b) v(x0) = 2v(x) e v(x1) = 2v(x) + 1.
18. Subtrac
ao:
a) m 0 = m, para todo m N;

b) s(m) s(n) = m n, para todo m, n N.


Divisao:
a) m/s(0) = m, para todo m N;

b) para todo m N e todo n > s(0), m/n = 0, se m < n, e m/n = s((m n)/n), se
m n.
onde a relac
ao < e assim definida:
a) n < s(n), para todo n N;

b) se m < n, ent
ao m < s(n), para todo m, n N.
Resto da divis
ao:
a) n mod n = 0, para todo n N;

b) m mod n = m, se m < n;

c) m mod n = (m n) mod n, se n < m.


26

Maximo divisor comum:


a) mdc(n, n) = n, para todo n N;

b) mdc(m, n) = mdc(m n, n), se n < m;

c) mdc(m, n) = mdc(m, n m), se m < n.

19. Conjunto Anc(v) de ancestrais de um vertice v de uma arvore (V, A, r):


a) v Anc(v);

b) se v Anc(v) e (v , v) A, entao v Anc(v).


20. (n) = log2 n. Ser
a feita uma demonstracao por inducao forte. Assim, suponha, como
hip
otese de induc
ao, que (k) = log2 k para todo k < n.
Caso n = 1. (1) = 0 = log2 1.
Caso n > 1. Por definic
ao, (n) = (n/2)+1. Como, n/2 < n, segue-se, pela hip
otese
de induc
ao, que (n) = log2 n/2 + 1. Se n mod 2 = 0, entao (n) = log2 n/2 + 1 =
(log2 n) 1 + 1 = (log 2 n) 1 + 1 = log2 n. Por outro lado, se n mod 2 = 1, ent
ao
(n) = log2 (n 1)/2 + 1 = log2 (n 1) 1 + 1 = log2 (n 1) 1 + 1 = log2 (n 1).
Mas, se n mod 2 = 1 e n > 0, log2 (n 1) = log2 n. Assim, (n) = log2 n em
qualquer caso.
21.

a)

P0

1 2 = 0 = (0 1 2 3)/4. Seja n 1. Suponha, cmo


k=1 [k(k + 1)(k + 2)] = 0P
hip
otese de induc
ao, que nk=1 [k(k + 1)(k + 2)] = n(n + 1)(n + 2)(n + 3)/4. Tem-se:
Pn
Pn+1
k=1 [k(k + 1)(k + 2)] = [ k=1 [k(k + 1)(k + 2)]] + (n + 1)(n + 2)(n + 3). Aplicando-se
a hip
otese de induc
ao, obtem-se que esta u
ltima e igual a [n(n + 1)(n + 2)(n + 3)/4] +
P
(n + 1)(n + 2)(n + 3). Simplificando-se esta, chega-se a n+1
k=1 [k(k + 1)(k + 2)] =
(n + 1)(n + 2)(n + 3)(n + 4)/4, o que completa a prova.

b) Inicialmente, veja que 30 70 2 = 0, que e divisvel por 8. Seja n um n


umero
n
n
natural arbitrario. Suponha como hip
otese de inducao que 3 + 7 2 e divisvel por
8. Tem-se: 3n+1 + 7n+1 2 = 3 3n + 7 7n 2 = 3(3n + 7n 2) + (4 7n + 4). Pela
hip
otese de induc
ao, o primeiro termo desta u
ltima e divisvel por 8. Assim, basta
mostrar que o segundo, 4 7n + 4 tambem e divisvel por 8, o que ser
a feito tambem
por induc
ao. Para n = 0: 4 70 + 4 = 8, que e divisvel por 8. Seja n 0, e suponha
que 4 7n + 4 e divisvel por 8. Segue-se que 4 7n+1 + 4 = 7(4 7n + 4) 24. O
primeiro termo desta u
ltima e divisvel por 8, pela hip
otese de inducao, e o segundo,
n+1
24, tambem e, o que leva `
a conclusao que 4 7
+ 4 e divisvel por 8.
otese
c) Tem-se: 0k=2 (1 1/k) = 1 1/2 = 1/2. Seja n 2, e suponha, como hip
Qn
Q
Q
(1

1/k)
=
[
de induc
ao, que nk=2 (1 1/k) = 1/n. Segue-se que: n+1
k=2 (1
k=2
1/k)] [1 1/(n + 1)] = (1/n) [1 1/(n + 1)], pela hip
otese de inducao. Esta
u
ltima e igual a (1/n) (n + 1 1)/(n + 1)] = 1/(n + 1), o que completa a prova.

P
= 2( 2 + 1)/2 > 2, pois 2 +
1 > 2.
d) 2k=1 (1/ k) = 1 + 1/ 2 = ( 2 + 1)/ 2

Pn+1
Pn
Seja n 2.
k=1 (1/ k) =
Hipotese
de inducao: k=1 (1/ k) > n. Segue-se que: Pn+1
P
[ nk=1 (1/
k)]
+
1/
n
+
1.
Segue-se,
pela
hip
o
tese
de
indu
c
a

o,
que
k=1 (1/ k) >

n + 1/
n + 1. Masesta u
ltima e igual a [ n n + 1 + 1]/ n + 1, que,
por sua vez

e igual a n + 1[ n n + 1 + 1]/(n + 1).Mas esta e maior do que


n + 1, como

requerido para completar a prova, pois n n + 1 + 1 > n + 1, ja que n n + 1 > n.


Q

22. Representando cada pessoa por um vertice e cada relacionamento de amizade por uma
aresta, de tal forma que v, v e uma aresta se, e somente se, as pessoas representadas por
v e v s
ao amigas, deve-se mostrar que o grafo tem 2 vertices com o mesmo grau. Para
27

isto, pode-se usar o princpio do pombal, segundo o qual para se acomodar n pombos em
menos de n casinhas, alguma casinha dever
a receber mais de 1 pombo. Seja um grafo de
n vertices, representando um grupo de n pessoas. Observando-se que um vertice pode ter
de 0 a n 1 vertices adjacentes (o grafo n
ao pode conter loops nem arestas m
ultiplas),
considera-se 2 casos. Supondo que um certo vertice tem grau 0, entao cada vertice s
o
pode ter graus de 0 a n 2 (um vertice n
ao pode ser adjacente a si mesmo nem `aquele de
grau 0). Por outro lado, se nenhum vertice tem grau 0, cada vertice s
o pode ter graus de
1 a n 1. Nos dois casos, pelo princpio do pombal, existem dois vertices com o mesmo
grau.
23. Se cada vertice pode ter qualquer n
umero de filhos, a altura e 0, se a arvore contem
apenas 1 vertice, e e 2, se ela contem mais de 1 vertice; neste u
ltimo caso, todos os
vertices, com excess
ao da raiz, s
ao filhos da raiz. Se cada vertice pode ter no m
aximo
k
r filhos, a altura mnima e a de uma arvore que em cada nvel k tem r vertices, com
excess
ao, possivelmente, do u
ltimo. Assim, a altura mnima, neste caso, e logr n, onde
n e o n
umero de vertices.
24.

a) Uma
arvore estritamente n-
aria com i vertices internos tem n i + 1 vertices, ja que
cada um dos i vertice internos tem n filhos; e o termo 1 refere-se `a raiz.
b) Dado o resultado anterior, tem-se que uma arvore estritamente n-aria de k vertices
tem (k 1)/n vertices internos. J
a o n
umero de folhas e k i = k (k 1)/n.

c) Uma
arvore estritamente n-aria com k vertices tem altura mnima igual a logn k,
e altura m
axima igual a (k 1)/n.

25. L = X, onde X = {0m 1n | m, n 0}.


L X.

Ser
a provado por induc
ao sobre o tamanho das palavras w que se w L emtao w X.
0
0
= = 0 1 X. Seja n 0, e suponha, como hip
otese de inducao, que x X se
x L, para x tal que |x| = n. Para w L tal que |w| = n + 1 tem-se, pela definicao de L,
que w = 0y ou w = x1, onde x e y s
ao palavras de L. Pela hip
otese de inducao, segue-se
m
n
que x X e y X, ou seja, ambos, x e y s
ao da forma 0 1 . Entao w = 00m 1n X ou
m
n
w = 0 1 1 X.
X L.

Ser
a provado por induc
ao sobre o tamanho das palavras w que se w X emtao w L.
00 10 = = L. Seja n 0, e suponha, como hip
otese de inducao, que x L
se x X, para x tal que |x| = n. Para w X tal que |w| = n + 1 tem-se, que w e
da forma 00m 1n ou da forma 11n , onde m, n 0. No primeiro caso, pela hip
otese de
m
n
inducao, segue-se que 0 1 L; entao, pela definicao de L, w L. No segundo caso,
como 11n = 1n 1, e, pela hip
otese de inducao, 1n L, tem-se tambem que, pela definic
ao
de L, w L.
26.

a) Definic
ao recursiva de L1 = {w {0, 1} | |w| e par}:
L1 ;
se y L1 , ent
ao 00y, 01y, 10y, 11y L1 .

b) Definic
ao recursiva de L2 = {w {0, 1} | w e palndromo}:
, 0, 1 L2 ;
se w L2 , ent
ao 0w0, 1w1 L2 .

c) Definic
ao recursiva de L3 = {w {0, 1} | w contem 00}:
28

00 L3 ;
se w L3 , ent
ao 0w, 1w, w0, w1 L3 .

d) Definic
ao recursiva de L4 = {w {0, 1} | w n
ao contem 00}:
, 0 L4 ;
se y L4 , ent
ao y1, y10 L4 .
2

e) Definic
ao recursiva de L5 = {0n | n N}:
L5 ;

se y L5 , ent
ao y02 |y|+1 L5 .

f) Definic
ao recursiva de L6 = {w | w e uma permutacao dos dgitos 1, 2 e 3}:
123 L6 ;
se abc L6 , ent
ao acb L6 e bca L6 , onde a, b, c {1, 2, 3}.

g) Definic
ao recursiva de L7 = {w | w e uma permutacao dos 10 dgitos decimais}:

0123456789 L7 ;
se xab L7 ou axb L7 , entao xba L7 , onde a, b {1, 2} e x {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} .

27. Definic
ao recursiva de concatenaca
o:
x = x para x ;

se x(ya) = (xy)a para x, y e a .


Ser
a provado que (xy)z = x(yz) por inducao sobre |z|. Para z = , tem-se: (xy) = xy =
x(y). Seja n 0. Suponha que (xy)z = x(yz) para toda palavra z tal que |z| = n.
Seja w uma palavra de n + 1 smbolos. Entao w = za para uma palavra z de n smbolos
e a . Segue-se que (xy)w = (xy)(za) = ((xy)z)a, pela definicao de concatenacao.
Prosseguindo: ((xy)z)a = (x(yz))a, pela hip
otese de inducao. E, aplicando-se duas vezes
a definic
ao de concatenac
ao, determina-se que (x(yz))a = x((yz)a) = x(y(za)), o que
conclui a argumentac
ao, visto que x(y(za)) = x(yw).
Definic
ao recursiva de reverso:
R = ;

se xR = y e a ent
ao (xa)R = axR .
Ser
a provado que (xy)R = y R xR por inducao sobre |y|. Para y = , tem-se: (xy)R =
(x)R = xR = xR = R xR = y R xR . Seja n 0, e suponha que (xy)R = y R xR para
palavras y tal que |y| = n. Seja w uma palavra de n+1 smbolos, ou seja w = za para uma
palavra z de n smbolos e a . Entao (xw)R = (x(za))R = ((xz)a)R , pela definicao de
concatenac
ao. E ((xz)a)R = a(xz)R , pelas definicao de reverso. Pela hip
otese de inducao,
segue-se que a(xz)R = a(z R xR ). Pelo resultado acima (associatividade da concatenacao),
a(z R xR ) = (az R )xR , e pela definicao de reverso, (az R )xR = (za)R xR = wR xR .
A seguir, mostra que se w e palndromo, w = vv R ou w = vav R para algum v
e a . Seja w um palndromo. Se |w| e par, entao w = xy, onde |x| = |y| 0.
Como w e palndromo, w = xy = (xy)R = y R xR . De xy = y R xR e do fato de que
|x| = |y| = |y R |, segue-se que y R = x (e xR = y). Assim, w = xy = xxR . Agora, suponha
que |w| e mpar. Ent
ao w = xay, onde |x| = |y| 0, a . Como w e palndromo,
w = xay = (xay)R = y R (xa)R = y R axR . Como w = xay = y R axR e |x| = |y| = |y R |,
segue-se que y R = x (e xR = y) e, portanto, w = xay = xaxR .
29

28. De x = xR , y = y R e xy = (xy)R = y R xR , deduz-se que xy = yx. Ser


a mostrado por
inducao forte sobre |xy| que, neste caso, existem k, n N e z tais que x = z k e y = z n .
Seja m 0 e suponha, como hip
otese de inducao, que o resultado valha para todo x e
y tais que |xy| < m. Sejam, ent
ao duas palavras quaisquer x e y tais que |xy| = m. Se
m = 0, x = y = , e basta fazer k = n = 0. Seja, entao, x e y tais que |xy| 1. S
ao 3
casos a considerar: |x| = |y|, |x| < |y| e |x| > |y|. No primeiro caso, tem-se que x = y
e, portanto, basta fazer z = x e k = n = 1. No segundo caso, deve existir uma palavra
s tal que y = xs. Como xy = yx, segue-se que xxs = xsx, que implica que xs = sx.
Desta u
ltima, pela hip
otese de inducao, existem u, i e j tais que x = ui e s = uj . Assim,
i+j
y = xs = u . Isto mostra que o resultado vale tomando-se z = u, k = i e n = i + j. O
terceiro caso e similar a este u
ltimo.
29. Seja X L . Por induc
ao sobre o tamanho de uma palavra w, ser
a mostrado que w L

se, e somente se, w (L X) . Tem-se: (L X) e L , por definicao. Seja uma


palavra w tal que |w| > 0. Se w L , entao, por definicao, w = xy, onde x L e y L.
Como x L , x L X e tambem x (L X) . Como y L, y L e tambem
y L X. Logo xy = w (L X) . Por outro lado, se w (L X) , w = xy, onde
x (L X) e y L X. Como X L , y L . Pela hip
otese de inducao, x L .

Assim, segue-se que xy = w L .


ao enumeraveis. Assim, sejam f1 : 1 N
30. Como 1 e 2 s
ao alfabetos, 1 e 2 s

oes bijetoras. A funcao g : 1 2 N, onde g(xy) = (f1 (x) +


e f2 : 2 N func
f2 (y))(f1 (x) + f2 (y) + 1)/2 + f1 (x) para x 1 e y 2 , e bijetora. Logo, 1 2 e
enumeravel.
31. Por induc
ao sobre n. O domnio de H0 : 0 0 N e {(, )}, e tem-se que H0 (, ) = 0,
e portanto H0 (, ) = H0 (, ) + H0 (, ). Seja n 0 e suponha, como hip
otese de
n
inducao, que Hn (x, y) Hn (x, z) + Hn (z, y) para qualquer palavra z de . Sejam
a, b, c . Ser
a mostrado que Hn+1 (xa, yb) Hn (xa, zc) + Hn (zc, yb). Considera-se 5
casos:
a = b = c.
Entao Hn+1 (xa, yb) = Hn (x, y), Hn+1 (xa, zc) = Hn (x, z) e Hn+1 (zc, yb) = Hn (z, y).
Como, pela hip
otese de induc
ao, Hn (x, y) Hn (x, z)+Hn (z, y), Hn+1 (xa, yb) Hn (xa, zc)+
Hn (zc, yb).
a = b 6= c.
Entao Hn+1 (xa, yb) = Hn (x, y), Hn+1 (xa, zc) = Hn (x, z)+1 e Hn+1 (zc, yb) = Hn (z, y)+1.
Como, pela hip
otese de induc
ao, Hn (x, y) Hn (x, z) + Hn (z, y), segue-se que Hn (x, y) <
Hn (x, z) + 1 + Hn (z, y) + 1 e, portanto, Hn+1 (xa, yb) < Hn (xa, zc) + Hn (zc, yb).
a = c 6= b.
Entao Hn+1 (xa, yb) = Hn (x, y)+1, Hn+1 (xa, zc) = Hn (x, z) e Hn+1 (zc, yb) = Hn (z, y)+1.
Como, pela hip
otese de induc
ao, Hn (x, y) Hn (x, z) + Hn (z, y), segue-se que Hn (x, y) +
1 Hn (x, z) + Hn (z, y) + 1 e, portanto, Hn+1 (xa, yb) Hn (xa, zc) + Hn (zc, yb).
b = c 6= a.
Entao Hn+1 (xa, yb) = Hn (x, y)+1, Hn+1 (xa, zc) = Hn (x, z)+1 e Hn+1 (zc, yb) = Hn (z, y).
Como, pela hip
otese de induc
ao, Hn (x, y) Hn (x, z) + Hn (z, y), segue-se que Hn (x, y) +
1 Hn (x, z) + 1 + Hn (z, y) e, portanto, Hn+1 (xa, yb) Hn (xa, zc) + Hn (zc, yb).
a 6= b 6= c.
Entao Hn+1 (xa, yb) = Hn (x, y) + 1, Hn+1 (xa, zc) = Hn (x, z) + 1 e Hn+1 (zc, yb) =
30

Hn (z, y) + 1. Como, pela hip


otese de inducao, Hn (x, y) Hn (x, z) + Hn (z, y), seguese que Hn (x, y) + 1 < Hn (x, z) + 1 + Hn (z, y) + 1 e, portanto, Hn+1 (xa, yb) < Hn (xa, zc) +
Hn (zc, yb).
Assim, ve-se que, em qualquer caso, Hn+1 (xa, yb) Hn (xa, zc) + Hn (zc, yb).
32.

a) Gramatica para {w {0, 1} | w n


ao contem 00}:
P 0A | 1P |
A 1P |

b) Gramatica para {0n 12n+1 0n | n N}:


P 0U P 0 | 1
U 1 111
U 0 0U

c) Gramatica para {w0w | w {1, 2} }:


P 1P U | 2P D | 0
0U 01
0D 02
1U U 1
2U U 2
1D D1
2D D2

d) Gramatica para {an bn ck | 0 n < k}:


P AS
A aAbC |
Cb bC
Cc cc
S cS | c

31

32

Captulo 2

M
aquinas de Estado-Finito
2.1

Alguns Exemplos

1. Cada estado ser


a uma palavra mcl, onde m {0, 1, 2, 3} e o n
umero de missionarios do
lado esquerdo, c {0, 1, 2, 3} e o n
umero de canibais do lado esquerdo, e l {e, d} e o
lado em que est
a a canoa (e: esquerdo; d: direito). Cada transicao ter
a um um r
otulo
da forma ij, onde 1 i + j 2, sendo que i e o n
umero de missionarios e j e o n
umero
de canibais viajando na canoa. O diagrama de estados est
a mostrado na figura a seguir.
Nele, cada aresta (v1 , r, v2 ) representa duas transicoes: de v1 para v2 e de v2 para v1 ,
ambas com r
otulo r.

11

22d

10

33e
01

32e
02

31d

02

30d

01

31e

20

11d
11

01

22e

32d
11
01e

01

00d

11e

02

10
01

20
01d

02

03e

01

02d

02e

2. M = ({0, 1, 2, 3}, {0, 1, 2}, , 0, {0}), onde e dada por:

0
1
2
3

0
0
3
2
1

1
1
0
3
2

2
2
1
0
3

3. Observando-se o cruzamento em T, nota-se que s


ao necess
arios sem
aforos para controlar
o tr
afego nos sentidos:
de A para B (nome: A1 );
33

de A para C (nome: A2 );
de B para C (nome: B);
de C para B (nome: C).
Procurando maximizar o n
umero de sem
aforos abertos (isto e com o farol verde aceso),
chega-se a um conjunto de tres situacoes possveis:
A1 e A2 abertos, B e C fechados;
A2 e C abertos, A1 e B fechados;
B e C abertos, A1 e A2 fechados.
A m
aquina ter
a tres estados, um para cada uma destas tres situacoes. Para dar nome a
um estado ser
ao usados os nomes dos sem
aforos abertos na situacao correspondente. Os
estados ser
ao: {A1 , A2 }, {A2 , C} e {B, C}.
A transic
ao de um estado para outro dependera das leituras dos sensores. Para cada
sem
aforo h
a um sensor que verifica se h
a veculo no sentido controlado por ele. Para os
sem
aforos A1 , A2 , B e C, sejam a1 , a2 , b e c as situacoes em que o sensores respectivos
est
ao detectando a presenca de veculo nos sentidos respectivos. Assim, um subconjunto
de S = {a1 , a2 , b, c} pode ser usado para indicar os sentidos em que os carros est
ao se
movimentando. Por exemplo, indica que nenhum veculo est
a sendo detectado; {a1 , c}
indica que s
o est
ao sendo detectados veculos nos sentidos de A para B e de C para B.
Existir
a uma transic
ao de cada estado sob cada subconjunto de S.
Para cada transic
ao, ser
a especificada como sada uma seq
uencia de acoes do tipo liga/desliga
sem
aforos. A ac
ao ligar sem
aforo x, x {A1 , A2 , B, C}, ser
a representada por l(x), e a
acao desligar sem
aforo x por d(x). A acao deixa como est
a ser
a representada por .
A figura a seguir mostra um diagrama de estados para o problema. Para simplificar o
diagrama, cada aresta representa um conjunto de transicoes; no diagrama, a sada e a
mesma para cada uma de tais transicoes. Para este fim, os r
otulos s
ao da forma X/y,
onde X e um conjunto de subconjuntos de S, e y, a sada comum, e uma seq
uencia de
acoes liga/desliga.
Alguns valores para X est
ao indicados atraves da notacao:
[s]+ = {X S | s X}; e
[s1 \s2 ] = [s1 ]+ [s2 ]+ .
Aqueles da forma [s]+ rotulam transicoes com maior prioridade. Por exemplo, no estado
{A2 , C}, dois conjuntos, um com a1 e outro com b indicam que h
a veculos nos sentidos
dos sem
aforos A1 e B. Com isto, deve-se escolher entre a transicao para o estado {A1 , A2 }
e a transic
ao para o estado {B, C}. L
a est
a indicado que a transicao escolhida e aquela
+
para {B, C}, pois [b] = {X S | b X} e [a1 \b] = [a1 ]+ [b]+ (veja a figura).
34

P({A1 , A2 })/

P({A2 , C})/

[c]+ /d(A1 )l(C)

{A1 , A2 }

{A2 , C}

[a1 \b]/d(C)l(A1 )
[b\c]/d(A1 )d(A2 )l(B)l(C)
[a2 \a1 ]/d(B)l(A2 )

[b]+ /d(A2 )l(B)

[a1 ]+ /d(B)d(C)l(A1 )l(A2 )

{B, C}
P({B, C})/
Pode-se mostrar que, nesta solucao, n
ao h
a possibilidade de um veculo ser impedido de
se dirigir de algum ponto a outro indefinidamente. Por outro lado, a solucao apresentada
n
ao e u
nica.

2.2
1.

Aut
omatos Finitos Determinsticos
a)

b)

c)

d)

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1

0,1
e)

0
1

0
1

0
1

0
1

f) Um AFD seria aquele com estados E = ({0, 1, 2} {0, 1, 2}) {e}, sendo e um estado
de erro, e cada estado restante, da forma (i, j), atingido quando a palavra de entrada
w for tal que |w| mod 3 = i e w tiver j ocorrencias de 1. O estado inicial e (0, 0), os
estados finais s
ao (0, 1) e (0, 2), e a funcao de transicao e dada por:
35

((i, j), 0) = ((i + 1) mod 3, j) para i, j {0, 1, 2};

((i, j), 1) = ((i + 1) mod 3, j + 1) para i {0, 1, 2} e j {0, 1};


((i, 2), 1) = e para i {0, 1, 2}; e

(e, a) = e para a {0, 1}.


2.

a)

1
b)

1
c)

1
0

00

01

001
1
11

0,1

1
d)

0
0
0

1
0

1
0

e)

0
1

1
000

1
0

0
00

f) Sejam = {0, 1, 2} e E = {xyz | x, y, z {p, i}}. Suponha que p = i e i = p. Ent


ao
o AFD e (E, , , ppp, {ppp}), onde e dada por:
(xyz, a) =

3.

a)
36

xyz

xyz

xyz

se a = 0
se a = 1
se a = 2

0
0
0,1

0,1

0,1
1

b)

c)

1
0

0
0

1
0

0
1

d) Apos consumido um prefixo x, deve-se saber, para prosseguir-se com o reconhecimento:


se |x| e par ou mpar (para se saber se a pr
oxima posicao e par ou mpar);
se x tem n
umero par ou mpar de 0s nas posicoes pares; e
se x tem n
umero par ou mpar de 0s nas posicoes mpares.

Logo, s
ao necessarios 8 estados. Representado-se cada estado como uma tripla
[k1 , k2 , k3 ], de forma que cada ki pode ser p (par) ou i (mpar), e
k1 = p |x| e par,
k2 = p x tem n
umero par de 0s nas posicoes pares, e
k3 = p x tem n
umero par de 0s nas posicoes mpares,

um AFD para a linguagem em questao seria

({p, i}3 , {0, 1}, , [p, p, p], {[p, p, i], [i, p, i]}})
sendo dada por ([k1 , k2 , k3 ], 0) = [k1 , k2 , k3 ] e ([k1 , k2 , k3 ], 1) = [k1 , k2 , k3 ], onde:

e)

k1 = p k1 = i
k2 = p (k1 = p e k2 = p) ou (k1 = i e k2 = i)
k3 = p (k1 = i e k3 = p) ou (k1 = p e k3 = i)
1
1
p

u
0,1

4. Um AFD equivalente: M = (E {g, f }, , , i, F {f }), onde g, f 6 E e e como segue:


37

(e, a) = (e, a) para todo a tal que (e, a) e definido;

(e, a) = g para todo a tal que (e, a) e indefinido e e 6 F ;

(e, a) = f para todo a tal que (e, a) e indefinido e e F ;


(g, a) = g para todo a ; e
(f, a) = f para todo a .

y) = (
(e,
), y), pela definicao de .
Suponha,
5. Por induc
ao sobre |x|. Para x = , (e,

como hip
otese de induc
ao, que (e, xy) = ((e, x), y) para palavras x de tamanho n,
n 0. Para palavras de tamanho n + 1, az, onde a e um smbolo do alfabeto e z uma
palavra de tamanho n, tem-se:
azy)= ((e,

(e,
a), zy)
pela definicao de

= (((e, a), z), y) pela hip


otese de inducao

= ((az), y)
pela definicao de .
6. Em Prolog, um AFD poderia ser representado por meio de 3 predicados:
inicial(E): E e um estado inicial;
final(E): E e um estado final;
delta(E1,A,E2): (E1, A) = E2.
Representando uma palavra por meio de lista, sendo representanda pela lista vazia, um
programa que retorna yes se uma palavra W e aceita, e retorna no em caso contr
ario, seria:
aceita(W) :inicial(I),
deltachapeu(I,W,E),
final(E).
onde deltachapeu e assim definida:
deltachapeu(E,[],E).
deltachapeu(E,[X|R],ER) :delta(E,X,EX),
deltachapeu(EX,R,ER).
7. Basta substituir o comando
e D[e, s]
por um comando da forma:
caso e seja
pp: se s = 0
ip: se s = 0
pi : se s = 0
ii : se s = 0
fimcaso

ent
ao
ent
ao
ent
ao
ent
ao

e ip sen
ao e pi
e pp sen
ao e ii
e ii sen
ao e pp
e pi sen
ao e ip
38

fimse
fimse
fimse
fimse

8. A definic
ao 6 diz que e e se, e somente se:
y) F se, e somente se, (e
, y) F .
(e,
para toda palavra y. Ent
ao, que e uma relacao de equivalencia, segue diretamente do
fato de que (se e somente se) e tambem uma relacao de equivalencia.
9. Deve-se provar que [e]n = {e | e n e }. Ser
a feita uma prova por inducao sobre n. Para
o caso em que e F , [e]0 = F , por definicao. E, ainda para o caso em que e F , pela
Definic
ao 8 tem-se que para todo e e 0 e se, e somente se, e F ; logo, {e | e n e } = F .
Portanto, [e]0 = F = {e | e 0 e } se e F . Para o caso em que e 6 F , analogamente se
mostra que [e]0 = E F = {e | e 0 e }. Seja n 0 e suponha, como hip
otese de inducao,

[e]n = {e | e n e }. Por definic


ao, [e]n+1 = {e [e]n | [(e , a)]n = [(e, a)]n para todo
a }. Assim, basta mostrar que para todo e E,
e [e]n e a [(e , a)]n = [(e, a)]n se, e somente se, e n+1 e .
Pela hip
otese de induc
ao, tem-se que e [e]n se, e somente se, e n e . Pela hip
otese
de induc
ao, tem-se ainda que para qualquer a , e [(e, a)]n se, e somente se,
e n (e, a). Desta u
ltima, segue-se que [(e , a)]n = [(e, a)]n se, e somente se, (e , a) n
(e, a). Logo, tem-se que: e [e]n e a [(e , a)]n = [(e, a)]n se, e somente se, e n e
e (e, a) n (e , a). Finalmente, usando-se a definicao 8, conclui-se que e [e]n e a
[(e , a)]n = [(e, a)]n se, e somente se, e n+1 e .
10. Evoluc
ao das partic
oes do conjunto de estados:
S0 :
S1 :
S2 :

{[, ], [c1, t0]}, {[c0, t0], [c0t1], [c1, t1]}


{[, ]}, {[c1, t0]}, {[c0, t0], [c0t1]}, {[c1, t1]}
{[, ]}, {[c1, t0]}, {[c0, t0], [c0t1]}, {[c1, t1]}

11. Cada estado do AFD original e representado pela palavra que leva do estado inicial ate
ele. O estado de erro e representado por *. As particoes do conjunto de estados evoluem
assim (tal sequencia foi obtida por meio de um programa feito pelo autor em Prolog):
S0 : {{,al,alm,as,b,ba,bar,barc,br,bra,bras,bro,c,cal,calm,cas,d,di,dis,disc,*},
{a,alma,asa,barco,brasa,broa,ca,calma,casa,disco}}.

S1 : {{,alm,as,bras,bro,c,calm,cas}, {al,b,ba,bar,br,bra,cal,d,di,dis,*}, {barc,disc},


{a,alma,asa,barco,brasa,broa,ca,calma,casa,disco}}.

S2 : {{}, {alm,as,bras,bro,c,calm,cas}, {al,cal}, {b,ba,d,di,*}, {bar,dis}, {br}, {bra},


{barc,disc}, {a,ca}, {alma,asa,barco,brasa,broa,calma,casa,disco}}.

S3 : {{}, {alm,as,bras,bro,calm,cas}, {c}, {al,cal}, {b}, {ba}, {d,*}, {di}, {bar,dis},


{br}, {bra}, {barc,disc}, {a,ca}, {alma,asa,barco,brasa,broa,calma,casa,disco}}.

S4 : {{}, {alm,as,bras,bro,calm,cas}, {c}, {al,cal}, {b}, {ba}, {d}, {*}, {di}, {bar,dis},
{br}, {bra}, {barc,disc}, {a,ca}, {alma,asa,barco,brasa,broa,calma,casa,disco}}.

S5 : {{}, {alm,as,bras,bro,calm,cas}, {c}, {al,cal}, {b}, {ba}, {d}, {*}, {di}, {bar,dis},
{br}, {bra}, {barc,disc}, {a,ca}, {alma,asa,barco,brasa,broa,calma,casa,disco}}.
12. Os AFDs tem 12 estados: aqueles de {1, 2, 3}{1, 2, 3, e}. O estado e e um estado de erro,
necessario para completar o diagrama de estados simplificado mostrado no Exerccio 2(b).
O estado inicial e [1, 1]. A func
ao de transicao e dada por:
39


[1, 1]
[1, 2]
[1, 3]
[1, e]

0
[2, 2]
[2, e]
[2, e]
[2, e]

1
[2, 1]
[2, 3]
[2, 1]
[2, e]

[2, 1]
[2, 2]
[2, 3]
[2, e]

0
[3, 2]
[3, e]
[3, e]
[3, e]

1
[3, 1]
[3, 3]
[3, 1]
[3, e]

[3, 1]
[3, 2]
[3, 3]
[3, e]

0
[1, 2]
[1, e]
[1, e]
[1, e]

1
[1, 1]
[1, 3]
[1, 1]
[1, e]

Os estados finais s
ao:
a) Para a uni
ao: {[1, 1], [1, 2], [1, 3], [1, e], [2, 1], [3, 1]}.

b) Para a intersec
ao: {[1, 1]}.

a-lo
13. Basta aplicar o produto aos AFDs M1 e M2 obtidos como abaixo, ao inves de aplic
diretamente sobre M1 e M2 . Fora isto, o lema e o teorema ficam inalterados. Dados os
AFDs M1 = (E1 , 1 , 1 , i1 , F1 ) e M2 = (E2 , 2 , 2 , i2 , F2 ), obtem-se M1 assim:
se 2 1 = , ent
ao M1 = M1 ;

se 2 1 6= , ent
ao M1 = (E1 {d}, 1 2 , 1 , i1 , F1 ), onde:
d 6 E1 ; e
1 (e, a) = (e, a), se a 1 ;
1 (e, a) = d, se a 2 1 ;
1 (d, a) = d, para todo a 1 2 .

aloga. Por tal construcao, M1 e M2 tem o mesmo alfabeto


M2 e obtido de forma an

(1 2 ), L(M1 ) = L(M1 ) e L(M2 ) = L(M2 ). Assim, o lema e o teorema ficam como


est
ao, apenas trocando-se M1 por M1 e M2 por M2 .
14. Uma possibilidade e construir, inicialmente, um AFD em formato de arvore, como mostrado
no livro, e depois aplicar o algoritmo de minimizacao. Um algoritmo de minimizacao especfico para conjuntos finitos de palavras, cujo tempo de execucao e linear, e o de Revuz1 .
Um outro para construc
ao incremental, ou seja, para inserir uma palavra em um AFD
mnimo de forma a obter um AFD tambem mnimo, em tempo linear, e o de Sgarbas et
al.2 .
15. Suponha que existe um AFD que reconheca a linguagem L, e seja k o n
umero de estados
k
k
do mesmo. Seja a palavra de L, z = a ca . De acordo com o Teorema, existem u, v e
w tais que z = uvw, v 6= e uv i w L para todo i 0. Mas, analisando-se os valores
possveis para v, conclui-se que uv 2 w 6 L:
se v contem apenas as, ent
ao uv 2 w = ak+|v| cak ou uv 2 w = ak cak+|v| ; e
se v contem c, ent
ao uv 2 w contem mais de um c.

Contradic
ao. Logo, n
ao existe AFD que reconhece L.
16.

a) Suponha que existe um AFD que reconheca a linguagem {0n 1n 0n | n N}, e seja k
seu n
umero de estados. Seja a palavra z = 0k 1k 0k L . De acordo com o Teorema
no final da sec
ao, existem u, v e w tais que z = uvw, v 6= e uv i w L para todo
i 0. Mas, como mostrado abaixo, uv 2 w 6 L:

1
Revuz, D. Minimization of acyclic deterministic automa in linear time, Theoretical Computer Science 92 ,
1992, pp. 181189.
2
Sgarbas, K.N, Fakotakis, N.D., Kokkinakis, G.K. Optimal insertion in deterministic DAWGs, Theoretical
Computer Science 301 , 2003, pp. 103117.

40

se v contem apenas 0s do prefixo de k 0s, uv 2 w = 0k+|v| 1k 0k ;


se v contem i 0s do prefixo e j 1s, onde i > 0, j > 0 e i + j = |v|, ent
ao
uv 2 w = 0k 1j 0i 1k 0k ;
se v contem apenas 1s, uv 2 w = 0k 1k+|v| 0k ;
se v contem i 1s e j 0s do sufixo, onde i > 0, j > 0 e i + j = |v|, ent
ao
uv 2 w = 0k 1k 0j 1i 0k ;
se v contem apenas 0s do sufixo de k 0s, uv 2 w = 0k 1k 0k+|v| .

Contradic
ao. Logo, n
ao existe AFD que reconhece L.

b) Um AFD que reconhece {0n 0n 0n | n N}: ({1, 2, 3}, {0}, , 1, {1}), onde e dada
por: (1, 0) = 2, (2, 0) = 3, (3, 0) = 1.
17.

a) Um PD seria aquele que verifica se alguma das ||n palavras de tamanho n e reconhecida por M ou n
ao.
b) Seja k o n
umero de estados de M . Um PD seria aquele que verifica se alguma das
k1

palavras w tais que n < |w| < n + k e reconhecida por M ou n


ao. Para ver que
nenhuma palavra w tal que |w| n + k precisa ser considerada, ser
a mostrado que se
w L(M ) e |w| n + k, entao h
a uma palavra z de L(M ) tal que n < |z| < n + k.
Suponha que w L(M ) e |w| n+k. Entao h
a uma palavra o menor possvel, w tal

que w L(M ) e |w | n + k (que pode ser w ou n


ao). Pelo lema do bombeamento,
i
existem u, v e x tais que |v| > 0, |uv| k e uv x L(M ) para todo i 0. Mas,
para u, v e x tais que |v| > 0 e |uv| w, tem-se que uv 0 x L(M ); assim, como uvx
e a menor palavra de L(M ) maior ou igual a n + k, |ux| < n + k; e como |v| k,
|ux| > n.

c) Se M tem k estados, a primeira ocorrencia de a em uma palavra, se houver alguma,


deve ser, no mais tardar, o k 1-esimo smbolo da mesma. A segunda ocorrencia
deve ser, no mais tardar, o 2k 1-esimo smbolo. E assim por diante. Conclui-se que
um PD precisa verificar o reconhecimento por M de palavras de, no m
aximo, nk 1
smbolos.

18.

a) Sim. O AFD ({i}, {0}, , i, {i}) tal que (i, 0) = i reconhece {0} .

b) Sim. O n
umero de estados de um AFD que reconhece uma linguagem finita deve ter
no mnimo o tamanho da maior palavra reconhecida mais 1. Por exemplo, se uma
palavra tiver 999.999.999.999 smbolos, o AFD ter
a no mnimo 1 trilh
ao de estados.
c) Nao. {0} {1} pode ser reconhecida, e {0n 1n | n 0} n
ao pode.

d) Nao. Valem os exemplos do item anteior. Observe que as afirmativas s


ao logicamente
equivalentes.

2.3
1.

Aut
omatos Finitos N
ao Determinsticos
a) Segue o diagrama de estados para um AFNE (para economizar estados):
a,b,c
1

a,b,c
abc

a,b,c
abc

a,b,c
abc

b) O diagrama de estados para um AFN est


a mostrado na Figura 2.1.
41

b,c


? 
2a

b,c


? 
- 3a
@

a
a,c
 @
@



?  @

R 
b - 3b
a,b,c
4



 


a,c



? 
? 
b b
- 1
2b
@


@
c @ 
c
R
@
2c
3c
c

6
6



a
a,b,c


a,b

a,b

Figura 2.1: AFN para item (b).

a,b,c




? 
abc,bca - 
- 1
2





Figura 2.2: AFNE para item (c).

a,b,c


a,b,c






a,b,c 

? 
?
abc - 2
abc - 4
- 1
3





a,b,c 
Figura 2.3: AFNE para tem (d).

42

a,b,c



? 

2a


@
a
a,b,c
 @
@





?
R
b@
- 2b
- 3

 



b
- 1
@

@
c @ c
R
@
2c

6


a,b,c

Figura 2.4: AFN para item (e).


a,b,c



? 

2a


@
b,c
a,b,c
 @
@ 



? 
a,c@
R
- 2b
- 3

 



b
- 1
@

@
c @ 
a,b
R
@
2c

6


a,b,c

Figura 2.5: AFN para item (f).


c) O diagrama de estados para um AFNE est
a mostrado na Figura 2.2.
d) O diagrama de estados para um AFNE est
a mostrado na Figura 2.3.
e) O diagrama de estados para um AFN est
a mostrado na Figura 2.4.
f) O diagrama de estados para um AFN est
a mostrado na Figura 2.5.
g) O diagrama de estados para um AFN est
a mostrado na Figura 2.6.
h) O diagrama de estados para um AFN est
a mostrado na Figura 2.7.
i) O diagrama de estados para um AFN est
a mostrado na Figura 2.8.
2. Menor n
umero de estados para AFNs e AFDs que reconhecam Ln = {xyx | x, y {a, b} e |x| =
n}:
a) n = 1. Menor AFN: 4. Menor AFD: 5.
b) n = 2. Menor AFN: 10. Menor AFD: 15.
c) n arbitrario. Menor AFN: 3.2n 2. Menor AFD: (n + 2).2n 1.
i , w) para qual Sn Xi , w) = Sn (X
3. Ser
a mostrado, por induc
ao sobre |w|, que (
i=1
Sn i=1
Sn

quer w . Inicialmente, observe que ( i=1 Xi , ) = i=1 Xi , pela definicao de .


43

b,c


? 
2a

a
a,b,c



@
a
a,c
 @
@




?  @
bR
- 2b
- 3

 



? 
b
- 1
@

@
c @ c
R
@
2c

6


a,b

Figura 2.6: AFN para item (g).

b,c
b,c





?
? 
a - 1a
2a

@

a,c @a
a,c







? 
? @@
b bR
- 1b
3
2b


 


a,b
a,b

 c


? 
? 
c - 1c
2c




Figura 2.7: AFN para item (h).

b,c


? 
- 1a
@

a
a,c
 @
@




?  @
bR
- 1b
- 2

 

a,b
 c

? 
- 1c


Figura 2.8: AFN para item (i).

44

S
S
i , ), segue-se que (
Sn Xi , ) =
Como, por esta mesma definic
ao, ni=1 Xi = ni=1 (X
i=1
Sn
(X
,
).
Seja
n
um
n
u
mero
natural
arbitr
a
rio
e
suponha,
como
hip
o
tese
de inducao,
i=1 S i
Sn
n

que ( i=1 Xi , w) = i=1 (Xi , w) para qualquer w de n smbolos. Basta, entao,


provar que o resultado vale para palavras de n + 1 smbolos. Para isto, seja uma palavra
tem-se que (
Sn Xi , ay) =
arbitraria, ay, em que a e |y| = n. Por definicao de ,
i=1
S S

S Sn
n
(e,
a),
y).
Pela
hip
o
tese
de
indu
c
a

o,
esta

e
igual
a
(
e i=1 Xi ((e, a), y).
e i=1 Xi
Sn S

a), y)] que, por sua vez e igual a


Como esta u
ltima e o mesmo que i=1 [ eXi ((e,
Sn S
(e, a), y) pela hip
otese de inducao, tem-se a conclusao esperada.
(
i=1

eXi

4. Seja um AFN M = (E, , , I, F ). Um AFN com u


nico estado inicial que reconhece L(M )
seria M = (E {i}, , , i, F ), onde i e um estado que n
ao pertence a E e:
F = F se I F = ; caso contr
ario, F = F {i};

(e, a) = (e, a) para todo (e, a) E ;


(i, a) =

eI

(e, a) para todo a .

5. Um AFN com um u
nico estado final equivalente a M seria M = ({1, 2, 3, f }, {a, b}, , {1}, {1, f }),
onde e dada por:

1
2
3

a
{2, f }
{3, f }
{}

b
{}
{}
{3, f }

6. Seja um AFN M = (E, , , I, F ). Um AFN com u


nico estado final que reconhece L(M )
seria M = (E {f }, , , I , {f }), onde f e um estado que n
ao pertence a E e:
I = I se I F = ; caso contr
ario, I = I {f };

(e, a) = (e, a) se (e, a) F = ; caso contr


ario, (e, a) = (e, a) {f };
7.

a) f(0) = {0, 1, 2}; f(1) = {1, 2}; f(2) = {2}.

b) AFN M = ({0, 1, 2}, {a, b, c}, , {0, 1, 2}, {2}), sendo dada por:

0
1
2

a
{0, 1, 2}

{1, 2}

{2}

c) AFD M = ({{0, 1, 2}, {1, 2}, {2}, }, {a, b, c}, , {0, 1, 2}, {{0, 1, 2}, {1, 2}, {2}}), sendo
dada por:

{0, 1, 2}
{1, 2}
{2}

a
{0, 1, 2}

b
{1, 2}
{1, 2}

c
{2}
{2}
{2}

8. AFD ({{1, 2}, {2}, {2 }, {3}, {3 }}, {0, 1}, , {1, 2}, {{1, 2}, {2}, {3}}), em que e dada por:
45


{1, 2}
{2 }
{2}
{3}
{3 }

0
{2 }
{2}
{2 }

1
{3}

{3 }
{3}

9. AFD ({{p0 , p1 }, {i0 , p1 }, {i0 , i1 }, {p0 , i1 }, {p0 , p1 , i1 }, {i0 , p1 , i1 }}, {0, 1}, , {p0 , p1 }, F ), em
que F = {{i0 , i1 }, {p0 , i1 }, {p0 , p1 , i1 }, {i0 , p1 , i1 }}) e e dada por:

{p0 , p1 }
{i0 , p1 }
{i0 , i1 }
{p0 , i1 }
{p0 , p1 , i1 }
{i0 , p1 , i1 }

0
{i0 , p1 }
{p0 , p1 }
{p0 , i1 }
{i0 , i1 }
{i0 , p1 , i1 }
{p0 , p1 , i1 }

1
{p0 , p1 , i1 }
{i0 , i1 }
{i0 , p1 }
{p0 , p1 }
{p0 , p1 , i1 }
{i0 , p1 , i1 }

10. Na quest
ao 1 ja foram apresentados os AFNEs.
11. Seja um AFNE M = (E, , , I, F ). A funcao de transicao estendida para M , : P(E)
P(E), pode ser definida recursivamente assim:
w) = , para todo w ;
a) (,

b) (A,
) = A, para todo A E;
S

S
S

x), y), para A E.


c) (A,
w) = eA xy=w ((e,

xy=w

quer dizer uni


ao para todas as palavras x e y tais que xy = w.

12. Dados dois AFs M1 = (E1 , 1 , 1 , I1 , F1 ) e M2 = (E2 , 2 , 2 , I2 , F2 ) em que E1 E2 = ,


um AFN que reconhece L(M1 )L(M2 ) seria M3 = (E1 E2 {i}, 1 2 , 3 , {i}, F1 F2 ),
em que 3 e constituda das transicoes em 1 e 2 mais 3 (i, ) = I1 I2 e 3 (i, a) = para
todo a 2 , desde que i 6 E1 E2 .
13. Como X e finito, pois e um subconjunto de E, e cada (e, a), para e X e a , e
um conjunto de estados, basta mostrar que f (A) f (B) = f (A B) para quaisquer
A, B E. Sejam, ent
ao, A e B subconjuntos arbitrarios de E.
f (A) f (B) f (A B).
Seja e f (A) f (B). Tem-se dois casos a considerar: e f (A) e e f (B). Suponha,
inicialmente, que e f (A). Ser
a mostrado, por inducao sobre o n
umero mnimo de
transic
oes necessarios para inclusao de um estado em f (A), que e f (A B). Se
este n
umero e zero, e A pela definicao de f ; segue-se que e A B. Novamente, pela
definic
ao de f , e f (A B). Suponha, como hip
otese de inducao, que se o n
umero
mnimo de transic
oes necessarios para inclusao de um estado em f (A) for n (n 0),
e f (A B). Seja n + 1 o n
umero mnimo de transicoes necessarios para inclusao
de um certo estado e em f (A); neste caso, pela definicao de f , existe um estado e
tal que e (e , ) e e f (A). Pela hip
otese de inducao, tem-se que e f (A B).

Pela definic
ao de f , como e (e , ) e e f (A B), conclui-se que e f (A B).
Portanto, f (A) f (A B). De forma an
aloga, mostra-se que f (B) f (A B).
Conclusao: f (A) f (B) f (A B).
46

f (A B) f (A) f (B).
Seja e f (A B). Ser
a mostrado, por inducao sobre o n
umero mnimo de transicoes
necessarios para inclusao de um estado em f (A B), que e f (A) f (B). Se este
n
umero e zero, e A B pela definicao de f ; segue-se que e f (A), se e A, e
e f (B), se e B; logo, e f (A) f (B). Seja n 0, e suponha, como hip
otese de
inducao, que se o n
umero mnimo de transicoes necessarios para inclusao de um estado
em f (A B) for n, e f (A) f (B). Seja n + 1 o n
umero mnimo de transicoes
necessarios para inclusao de um certo estado e em f (A B); neste caso, pela definic
ao
de f , existe um estado e tal que e (e , ) e e f (A B). Pela hip
otese de inducao,
tem-se que e f (A) f (B). Pela definicao de f , como e (e , ), se e f (A),
e f (A), e se e f (B), e f (B). Conclui-se que e f (A) f (B). Portanto,
f (A B)E f (A) f (B).
14. Seja um AFN M = (E, , , I, F ). Um AFN equivalente, como pedido, seria M =
(E {i, f }, , , {i}, {f }), em que i, f 6 E, i 6= f e:
(e, a) = (e, a) para todo (e, a) E {};
(i, ) = I;

(i, a) = para a ;

(e, ) = (e, ) {f } para e F ;

(f, a) = para a {}.

2.4

Linguagens Regulares: Propriedades

1. A diferenca b
asica e que, no primeiro exemplo, s
ao considerados tres casos para v: v contendo apenas as, v contendo as e bs, e v contendo apenas bs; e, no segundo, e considerado
apenas um caso: visto que |uv| k, v contem apenas as.
2. Passo a passo:
k Nz L[|z| k u, v, w(z = uvw |uv| k |v| 1 i Nuv i w L)]
k Nz L[|z| k u, v, w(z = uvw |uv| k |v| 1 i Nuv i w L)]
k Nz L[|z| k u, v, w(z = uvw |uv| k |v| 1 i Nuv i w L)]
k Nz L[|z| k u, v, w(z = uvw |uv| k |v| 1 i Nuv i w L)]
k Nz L[|z| k u, v, w(z = uvw |uv| k |v| 1 i Nuv i w L)]
k Nz L[|z| k u, v, w((z = uvw |uv| k |v| 1) i Nuv i w L)]
k Nz L[|z| k u, v, w((z = uvw |uv| k |v| 1) i Nuv i w L)]
k Nz L[|z| k u, v, w((z = uvw |uv| k |v| 1) i Nuv i w 6 L)].
Assim, a contrapositiva e: k Nz L[|z| k u, v, w((z = uvw |uv| k |v|
1) i Nuv i w 6 L)] L n
ao e regular.
3.

a) Seja L = {0m 1n | m < n}. Suponha que L seja regular. Sejam k a constante do LB e
z = 0k 1k+1 . Sejam, de acordo com o LB, u, v e w tais que z = uvw, v 6= , |uv| k
e uv i w L para todo i 0. Mas, sendo z = uvw e |uv| k, v s
o contem 0s e,
2
k+|v|
k+1
2
portanto, uv w = 0
1 . E sendo v 6= , uv w 6 L. Isto contradiz o LB. Logo,
L n
ao e regular.
b) Seja L = {0n 12n | n 0}. Suponha que L seja regular. Sejam k a constante do LB e
z = 0k 12k . Sejam, de acordo com o LB, u, v e w tais que z = uvw, v 6= , |uv| k
47

e uv i w L para todo i 0. Mas, sendo z = uvw e |uv| k, v s


o contem 0s e,
portanto, uv 2 w = 0k+|v| 12k . E sendo v 6= , uv 2 w 6 L. Isto contradiz o LB. Logo, L
n
ao e regular.
c) Seja L = {0m 1n 0m | m, n 0}. Suponha que L seja regular. Sejam k a constante do
LB e z = 0k 10k . Sejam, de acordo com o LB, u, v e w tais que z = uvw, v 6= ,
|uv| k e uv i w L para todo i 0. Mas, sendo z = uvw e |uv| k, v s
o contem
0s e, portanto, uv 2 w = 0k+|v| 10k . E como 10k e sufixo de uv 2 w, 0k 1 deve ser prefixo
para que uv 2 w esteja em L. Mas, sendo v 6= , 0k 1 n
ao e prefixo de 0k+|v| 10k
e,portanto, uv 2 w 6 L. Isto contradiz o LB. Logo, L n
ao e regular.

d) Seja L = {xcx | x {a, b} }. Suponha que L e regular, e seja k a constante do LB.


Seja z = ak cak , e sejam u, v e w tais que z = uvw, v 6= e |uv| k. Segue-se, pelo
LB, que uv i w L para todo i 0. Mas, como |uv| k, uv 2 w = ak+|v| cak ; como
v 6= , uv 2 w 6 L. Contradicao. Portanto, L n
ao e regular.
e) Seja L = {10n 1n | n 0}. Suponha que L e regular, e seja k a constante do LB. Seja
z = 10k 1k , e sejam u, v e w tais que z = uvw, v 6= e |uv| k. Segue-se, pelo LB,
que uv i w L para todo i 0. Ha dois casos a considerar:
v contem o 1 inicial. Como v 6= e |uv| k, tem-se que uw = 0k|v|+1 1k ; assim,
uv 0 w 6 L.
v n
ao contem o 1 inicial. Como v 6= e |uv| k, tem-se que uw = 10k|v| 1k ;
assim, uv 0 w 6 L.

Contradic
ao. Portanto, L n
ao e regular.
2

f) Seja L = {0n | n 0}. Suponha que L seja regular. Sejam k a constante do LB


2
e z = 0k . Como dito no LB, existem u, v e w tais que z = uvw, v 6= , |uv| k
2
e uv i w L para todo i 0. Mas, sendo z = uvw, uv 2 w = 0k +|v| . Sendo v 6= ,
k2 + |v| > k 2 ; e sendo |uv| k, k2 + |v| k2 + k < k2 + 2k + 1 = (k + 1)2 , o que
mostra que k2 + |v| < (k + 1)2 . Como k2 < k2 + |v| < (k + 1)2 , uv 2 w 6 L, o que
contradiz o LB. Portanto, L n
ao e regular.
4.

a) Seja L = {0, 1} {0n 1n | n 0}. Supondo que L seja regular, L tambem e, visto que
as linguagens regulares s
ao fechadas sob complementacao. Mas L = {0n 1n | n 0},
e esta n
ao e regular. Contradicao! Logo, L n
ao e regular.
b) Seja L = {0m 1n | m < n} {0m 1n | m > n}. Suponha que L e regular. Ent
ao

L {0} {1} tambem e regular, pois as linguagens regulares s


ao fechadas sob complementac
ao e sob intersec
ao. Mas, L {0} {1} = {0n 1n | n 0}, que n
ao e regular.
Contradic
ao! Logo, L n
ao e regular.
c) Seja L = {w {0, 1} | o n
umero de 0s em w e igual ao n
umero de 1s}. Entao, como
as linguagens regulares s
ao fechadas sob intersecao, L {0} {1} deve ser regular.
Mas, L {0} {1} = {0n 1n | n 0}, linguagem n
ao regular. Contradicao! Logo, L
n
ao e regular.
d) Seja L = {w {0, 1} | o n
umero de 0s em w e igual ao n
umero de 1s} {0n 1n | n
0}. Se L fosse regular, ent
ao L {1} {0} tambem seria, pois as linguagens regulares
s
ao fechadas sob intersec
ao. Mas, L {1} {0} = {1n 0n | n 0}, que n
ao e regular.
Portanto, L n
ao e regular.

5.

a) A linguagem pode ser expressa assim: L = L {a, b, c} {a}{a, b, c} . Como L e a


intersec
ao de duas linguagens regulares, L e regular.
b) A linguagem pode ser expressa assim: L = L {a, b, c} {a}{a, b, c} . Como L e a
uni
ao de duas linguagens regulares, L e regular.
48

0

? 1

- 0/0 
 1

-  0
1/1 
 0

1

?


2/2

 

Figura 2.9: Maquina de Moore para o resto da divisao por 3.


c) A linguagem pode ser expressa assim:
L = [L {a, b, c} {a}{a, b, c} ] [L {a, b, c} {a}{a, b, c} ].
Como as linguagens regulares s
ao fechadas sob complementacao, intersecao e uni
ao,
segue-se que L e regular.
d) A linguagem pode ser expressa assim: L = L {a, b, c} {a}{a, b, c} . Como as
linguagens regulares s
ao fechadas sob complementacao e intersecao, segue-se que L
e regular.
6. O AFD e (E, {0, 1}, , i, F ), em que:
E = {{0}, {1, 4}, {3}, {2, 5}} {000, 001, 010, 011, 100, 101, 110, 111};

([X, x], d) = [1 (X, d), 2 (x, d)] para:

X {{0}, {1, 4}, {3}, {2, 5}},


x {000, 001, 010, 011, 100, 101, 110, 111},
d {0, 1},

sendo que 1 e 2 s
ao as funcoes de transicao dos AFDs dados;
i = [{0}, 000];

F = {{0}} {000, 001, 010, 011}.


7.

a) {0m 1n | m < n} {0m 1n | m > n} {0n 1n | n 0} = {0} {1} .

b) O complemento de {0, 1} {01, 10} e {01, 10} .


c) {0n 1n | 0 n 101000 } e finita.

8. O conjunto das palavras sobre 2 que tem como sufixo alguma palavra de L e 2 (L 2 ).
Esta e regular, visto que as linguagens regulares s
ao fechadas sob intersecao e concatenac
ao.

2.5

M
aquinas de Mealy e de Moore

1. A Figura 2.9 apresenta o diagrama de estados para uma m


aquina de Moore que determina
o resto da divis
ao por 3 de um n
umero na representacao bin
aria.
2. A Figura 2.10 apresenta o diagrama de estados para uma m
aquina de Moore que determina
a quantidade de 1s presentes nos u
ltimos 3 dgitos de palavras sobre {0, 1}.
3. A Figura 2.11 apresenta o diagrama de estados para uma m
aquina de Mealy que determina
o quociente da divis
ao por 3 de um n
umero na representacao bin
aria.
49

0
1


    



? 
?
111- 000/0
001/1
011/2
111/3

      


6
6@ 0
1
@
0
1
0
0
@

 ? 
@



?
R
0 
0
1
100/1 
010/1
101/2 
110/2




  
1    
6


0

Figura 2.10: Maquina de Moore para n


umero de 1s nos u
ltimos 3.
0/0

1/1



? 1/0 - 0/0 -
? 

- 0 
1 
2
 1/1
 0/1
 

Figura 2.11: Maquina de Moore para o quociente da divisao por 3.


4. Maquina de Mealy para soma em bin
ario:
({v0 , v1 }, {[0, 0], [0, 1], [1, 0], [1, 1]}, {0, 1}, , , v0 )
onde e est
ao dados na tabela:
/
v0
v1

[0, 0]
v0 /0
v0 /1

[0, 1]
v0 /1
v1 /0

[1, 0]
v0 /1
v1 /0

[1, 1]
v1 /0
v1 /1

Evidentemente, o estado em que a m


aquina p
ara e importante. Se for v1 , existe um dgito
1 a acrescentar `
a sada.
5. A Figura 2.12 apresenta o diagrama de estados para uma m
aquina de Mealy equivalente
`a m
aquina de Moore referida.
6. A Figura 2.13 apresenta o diagrama de estados para uma m
aquina de Moore equivalente
`a m
aquina de Mealy refereida.

2.6
1.

Express
oes Regulares
a) 0 + (0 + 1)0 + 11.
0/0

1/2



? 1/1 - 0/2 -
? 

- 0 
1 
2
 1/0
 0/1
 

Figura 2.12: Maquina de Mealy equivalente a de Moore.


50

 

0 - [2, 0]/0
*

H
 

H 1
1 
HH
6
6
0
1




HH

? 



?
j
H
- [0, 0]/0
[2, 1]/1
1
0
1
0

Y
H



HH


HH

0 H 
 0
?
 



H ?
[0, 1]/1 
[1, 1]/1
1 




[1, 0]/0

Figura 2.13: Maquina de Mealy equivalente a m


aquina de Moore.
b) (00 + 111 ) 0101(0 + 1).
2.

a) Conjunto das palavras iniciadas com 0 e terminadas com 1.


b) Conjunto das palavras com pelo menos um smbolo.
c) Conjunto das palavras com pelo menos tres smbolos, em que o antepen
ultimo e 1.
d) Conjunto das palavras sem ocorrencias de 11.

3.

a) (a + b)3 (a + b) .
b) a(a + b)((a + b)(a + b)) .
c) b (ab ab ) .
d) (a + b) bb(a + b) .
e) (a + ba) bb(ab + a) .
f) a ( + b)a ( + b)a .
g) (c (a + b)c (a + b)) c .
h) (a + b + c) (a + b)( + c).

4.

a) + = +
=+
= .

(13)
(14)
(3)

b) 0 + 1 + 0 1 + (0 + 1) = (0 + 1) , visto que r + s = s se L(r) L(s). No presente


caso, r = 0 + 1 + 0 1 e s = (0 + 1) .
c) (0 + 00) (1 + 01) = 0 (000 ) (1 + 01), por (9). Esta, por sua vez, e igual a 0 (1 + 01),
pois 0 (000 ) = 0 , ja que rs = r se L(s) e L(s) L(r); no caso, r = 0 e s =
(000 ) . Continuando: 0 (1 + 01) = 0 (1 + 01), por (4), e 0 (1 + 01) = 0 ( + 0)1,
por (6). Finalmente, 0 ( + 0)1 = 0 1, pelo motivo ja visto: rs = r se L(s) e
L(s) L(r); no caso, r = 0 e s = + 0. Logo, (0 + 00) (1 + 01) = 0 1.

d) (0 + 01) (0 1 + 1) = (0 + 01) ((0 1 ) 1 )


= (0 + 01) ((0 + 1) 1 )
= (0 + 01) ((0 + 1) )
= (0 + 01) (0 + 1)
= (0 + 1) .

(18)
(18)
(20)
(11)

Esta u
ltima se deve ao fato de que rs = s se L(r) e L(r) L(s); no caso,
r = (0 + 01) e s = (0 + 1) .
51



b



c 
a




Figura 2.14: AFD para (ab) ac.



b





a


?
b





-
a


Figura 2.15: AFD para (ab) (ba) .

e) ((00 + 01 + 10 + 11) (0 + 1)) = (0 + 1) , baseado no fato de que (rs) = s , se


L(r) L(s ). No presente caso, r = (00 + 01 + 10 + 11) e s = (0 + 1) .
f) (0 + 1) 0(0 + 1) 1(0 + 1) = 1 0(0 + 1) 1(0 + 1) , pois (r + s) r(r + s) = s r(r + s)
para quaisquer ERs r e s; para o presente caso, r = 0 e s = 1. Prosseguindo:
1 0(0 + 1) 1(0 + 1) = 1 00 1(0 + 1) pois, de forma similar, (r + s) s(r + s) =
r s(r + s) . Portanto, (0 + 1) 0(0 + 1) 1(0 + 1) = 1 00 1(0 + 1) .

5.

a) O diagrama de estados est


a mostrado na Figura 2.14.
b) O diagrama de estados est
a mostrado na Figura 2.15.
c) O diagrama de estados est
a mostrado na Figura 2.16.
d) O diagrama de estados est
a mostrado na Figura 2.17.
e) O diagrama de estados est
a mostrado na Figura 2.18.

6. As 16 possibilidades:

a





b



a


?b




a
-
b


Figura 2.16: AFD para (ab a) (ba b) .


52

b
a



?
?







b a a b 






6
6



? 



Figura 2.17: AFD para (aa + b) baab.




Y
*H

H



H aH a
a
HH HH



c - HH H


c

j
H


*
H


c
 

H

b b
bHH 

H
j
H




Figura 2.18: AFD para ((aa + bb) cc) .


nenhum :
q = :
r = :
s = :
t = :
q = r = :
q = s = :
q = t = :

q r(s + tq r)
r(s + tr)

q r(tq r)
q rs

r(tr)
rs

r = s = :
r = t = :
s = t = :
q = r = s = :
q = r = t = :
q = s = t = :
r = s = t = :
q = r = s = t = :

qr

7. Eliminando-se o estado 3, obtem-se o diagrama ER da Figura 2.19(a). Eliminando-se o


estado 1 deste u
ltimo, obtem-se o diagrama ER da Figura 2.19(b), de onde se extrai a
solucao: (aa) ab(bb + ba(aa) ab) .
8.

a) A Figura 2.20(a) mostra um AFD para a linguagem. Eliminando-se 2 e 5, obtemse o diagrama ER da Figura 2.20(b). Em seguida, eliminando-se 4, obtem-se um
diagrama ER a partir do qual se obtem a ER 000 . Eliminando-se 3 em vez de 4,
obtem-se um diagrama ER a partir do qual obtem a ER (01 + 11 + 000 1)1 . Assim,
a ER e: 000 + (01 + 11 + 000 1)1 .
b) A Figura 2.21(a) mostra um AFD para a linguagem. Eliminando-se 3, obtem-se o
diagrama ER da Figura 2.21(b), a partir do qual se obtem a ER 1(1 + 00 1) .
aa
bb





a
b

ba 




?
?
- 0
2
0
2
- 1
-
-
a
b


ab 

(a) Eliminando-se o estado 3.

(b) Eliminando-se o estado 1.

Figura 2.19: Diagramas ER para a questao 7.


53








0 0 - 1
0
2
3



Z



Z
1
1
Z1
ZZ
?
?


~

1
- 4 
1
5






(a) O diagrama inicial.








00 3
0






Z
Z
01 + 11 Z
1
ZZ
?

~



1
4





(b) Eliminando-se os estados 2 e 5.

Figura 2.20: Diagramas ER para a questao 8(a).

1
0





1


?
? 
1 - 1
2
- 3



0


1 +00 1




?
1 - 1
2





(a) O diagrama inicial.

(b) Eliminando-se o estado 3.

Figura 2.21: Diagramas ER para a questao 8(b).


c) A Figura 2.22(a) mostra um AFD para a linguagem. Eliminando-se 2 e 3, obtem-se o
diagrama ER da Figura 2.22(b), a partir do qual se obtem a ER 11 00 1(1 + 00 1) .
d) Considere a Figura 2.8 do livro. Eliminando-se ip e depois pi obtem-se o diagrama ER
a partir do qual se obtem a ER (00+11) (01+10)[00+11+(01+10)(00+11) (01+10)] .
9.

a) Seja um AFN M = (E, , , I, F ).


(a) Se |I| > 1, obtenha o AFN equivalente com um u
nico estado inicial M =
(E , , , {i}, F ), em que:
E = E {i}, em que i 6 E;
(i, ) = I;
(e, ) = para e E;
(i, a) = para (e, a) E ;
(e, a) = (e, a) para (e, a) E ;
sen
ao M e o pr
oprio M (com (e, ) = para todo estado).

(b) Seja, ent


ao, M = (E , , , I, F ). Se |F | > 1, obtenha o AFN equivalente com
um u
nico estado final M = (E {f }, , , {i}, {f }), em que:
f 6 E ;
(e, ) = {f } para todo e F ;
(e, ) = para e E F ;
(f, a) = para todo a {};
(e, a) = (e, a) para (e, a) E ;
1
0
1






0



? 
?
?
1 0 - 1
2
3
4
-


1


(a) O diagrama inicial.

(b) Eliminando-se os estados 2 e 3.

Figura 2.22: Diagramas ER para a questao 8(c).


54

1 +00 1




?

1
- 1 11 00 4





b


?

c
a








- A
B
C
-
-


a

b


6

b,c

Figura 2.23: AFN obtido de GR, questao 2.


sen
ao M e o pr
oprio M (com (e, ) = para todo estado).
(c) Em seguida, basta executar o miolo do algoritmo da Figura 2.33, eliminando-se
todos os estados, menos os estados inicial e final.
b) O processo indicado no item (a) pode ser adaptado facilmente para AFNs.
10. Uma ER sem ocorrencias de fecho de Kleene s
o pode denotar linguagens finitas. Isto
ser
a provado por induc
ao no n
umero de operadores da ER. ERs sem operadores s
ao das
formas , e a para a , as quais denotam linguagens finitas. Suponha, como hip
otese
de induc
ao, que ERs com n ou menos operadores denotam linguagens finitas. Seja uma
ER com n + 1 operadores. Ent
ao a ER e da forma (rs) ou (r + s), em que r e s s
ao ERs
com n ou menos operadores. Como, pela hip
otese de inducao, r e s denotam linguagens
finitas, a ER, que denota no primeiro caso L(r) L(s), e no segundo L(r)L(s), e tambem
finita. Isto conclui a demonstracao.
Alem do que foi provado acima, tem-se tambem que qualquer linguagem finita pode ser
denotada por uma ER sem ocorrencias de fecho de Kleene. A demonstracao e simples:
dada uma linguagem finita de n palavras {w1 , w2 , . . . , wn }, pode-se construir a seguinte
ER, que denota a linguagem: w1 + w2 + + wn .

2.7
1.

Gram
aticas Regulares
a) ({P }, {0, 1}, {}, P ).

b) ({P }, {0, 1}, {P }, P ).


c)

d)

e)

f)

P 0A | 1A |
A 0B | 1B
B 0P | 1P

pp 0 ip | 1 pi |
ip 0 pp | 1 ii
pi 0 ii | 1 pp
ii 0 pi | 1 ip

P 0A | 1P |
A 1B
B 1P

P 0P | 1P | 1A
A 0B | 1B
B 0|1

2. A Figura 2.23 mostra um AFN para a linguagem.


3. A Figura 2.24 mostra um AFN para a linguagem.
55



b

a - P
A
- B

b

6


a,b

?








Figura 2.24: AFN obtido de GR, questao 3.


4. A gram
atica e:
pp 0 ip | 1 pi

ip 0 pp | 1 ii

pi 0 ii | 1 pp |

ii 0 pi | 1 ip

5. Completando a prova do teorema em questao, ser


a provado por inducao sobre |w| o lema

i we se, e somente se, e ({i},


w) para todo e E e w .

Para w = tem-se:

i e i = e pelas definic
oes de e R

e ({i}, ) pela definicao de


Suponha que o resultado vale para um x arbitrario. Tem-se, entao, para w = xa,
onde a :

i xae i xe e e ae R pelas definicoes de e R

e ({i},
x) e e ae R pela hip
otese de inducao

e ({i},
x) e e (e , a) pela definicao de R

e ({i},
xa) pela definicao de
6. Suponha que x = a1 a2 . . . an , sendo n 2. Entao a regra X xY pode ser substituda
pelas regras:
X a 1 R1

R1 a 2 R2
..
.

Rn1 an Y
em que R1 , R2 ,. . . , Rn s
ao vari
aveis novas, sem ocorrencias em qualquer outra regra da
gram
atica. De forma similar, a regra X x pode ser substituda pelas mesmas regras,
exceto a u
ltima, que fica sendo Rn1 an . Evidentemente, a linguagem gerada n
ao se
altera.
7. As construc
oes mencionadas a seguir s
ao todas possveis, como mostrado no livro.
56

b


?


c
a




c 
a
b



6
6
6



b,c

a,b,c

Figura 2.25: AFD da questao 1(a).






a,b 

a 2
-


a,b 
Figura 2.26: AFD da questao 1(b).
a) S
ao necessarias, no mnimo, duas regras, uma com recursao e outra para por fim ao
processo de recursao.
b) Sim. Pode-se, por exemplo, construir um AF que reconhece a linguagem denotada
pela ER e, a partir dele, construir a GR.
c) Sim. Pode-se, por exemplo, a partir de um AFD (em formato de arvore ou n
ao) que
reconhece a linguagem, construir a GR.
d) Sim. Por exemplo: 1. da GR G obtem-se um AF M que reconhece L(G); 2. a partir
de M , obtem-se um AFD M equivalente; 3. a partir de M obtem-se uma GR G
que gera L(M ). G e equivalente a G e tem a caracterstica desejada.
8. Assim como no exerccio anterior, os passos mencionados a seguir s
ao todos possveis,
como mostrado no livro.
a) Para verificar se L(G1 ) = basta fazer:

1. M AF que aceita L(G1 );


2. se algum estado final de M e alcancavel a partir do estado inicial, L(G1 ) 6= ;
caso contr
ario, L(G1 ) = .

b) Para verificar se L(G1 ) L(G2 ) = basta fazer:


1.
2.
3.
4.

2.8

M1 AF que aceita L(G1 ); M1 AFD que aceita L(M1 );


M2 AF que aceita L(G2 ); M2 AFD que aceita L(M2 );
M3 AFD que aceita L(M1 ) L(M2 ) (produto);
se algum estado final de M3 e alcancavel a partir do estado inicial, L(G1 )
L(G2 ) 6= ; caso contr
ario, L(G1 ) L(G2 ) = .

Liguagens Regulares: Conclus


ao

Nao h
a exerccios para esta sec
ao.

2.9
1.

Exerccios
a) O diagrama de estados est
a mostrado na Figura 2.25.
b) O diagrama de estados est
a mostrado na Figura 2.26.
c) O diagrama de estados est
a mostrado na Figura 2.27.
d) O diagrama de estados est
a mostrado na Figura 2.28.
57

b


?


b







a -



a



6

b

Figura
2.27: AFD da questao 1(c).
b




? 

a a



6





a
-
a

?






6


Figura 2.28: AFD da questao 1(d).


e) O diagrama de estados est
a mostrado na Figura 2.29.
f) O diagrama de estados est
a mostrado na Figura 2.30.
g) O diagrama de estados est
a mostrado na Figura 2.31.
h) Na Figura 2.32 est
a mostrado o diagrama de estados de um AFN com dois estados
iniciais: 1 e 2. A partir do estado 1, e lido um prefixo x terminado em b, e a partir
do estado 2 tal prefixo e (que tambem n
ao termina em a). Um AFD equivalente
est
a mostrado na Figura 2.33.
i) O diagrama de estados est
a mostrado na Figura 2.34.
j) O diagrama de estados est
a mostrado na Figura 2.35.
2.

a) O diagrama de estados est


a mostrado na Figura 2.36.
b) O diagrama de estados est
a mostrado na Figura 2.37.
c) Para este exerccio estou supondo que:
toda palavra da linguagem deve ter no mnimo 4 smbolos;
nos u
ltimos 4 smbolos, nem sempre o n
umero de 0s e par, ou seja, ele pode ser
par ou mpar;
entre o u
ltimo 1 antes dos 4 u
ltimos smbolos, se existir, e o primeiro 1 dos 4
u
ltimos smbolos, se existir, deve haver um n
umero par de smbolos.
A soluc
ao est
a mostrada na Figura 2.38.
d) A Figura 2.39 mostra um AFN para a linguagem.







a a a



Z



Z
b
b
Zb
ZZ
?
?


~



b
b
5






Figura 2.29: AFD da questao 1(e).


58

a,c







?
b - BC 
- AC
b,c







d

?
?





- BD
a,d 
AD
-


b


6


b,d

Figura 2.30: AFD da questao 1(f).


- 1

6

b




?
- 2



6


? 
4 

6





?





Figura 2.31: AFD da questao 1(g).


a,b

?





? 
b b - 1
2
3





6
6
a


? 


? 

b 4





Figura 2.32: AFN da questao 1(h).


b





a

? 

b - {1, 2, 3}
- {1, 2}
{1, 4, 5}





a


6
6
b

a
a
b 
?


 ?



a,b 

b - {1, 2, 4}
{1, 5}
{1,
3,
5}
-




a



Figura 2.33: AFD da questao 1(h).

59









a 13

AK


 6A

@
a

@a
12


A
@




R
@
A b


- 11
A
e 
a,b
b a 





Aa
@
 A


b@
b
A
@





R
@
? 
A
- 31
21



b



Figura 2.34: AFD da questao 1(i).











a - 31  a
b - 43
21
42







b




 6
6







- 11
b a



@
b@
@


R
@
?




b





?
a - 13 
12
24
43





b

a





Figura 2.35: AFD da questao 1(j).


0,1







? 
0,1 0,1 - 
1 1 - 1
2
3
4
5








Figura 2.36: AFN da questao 2(a).







3Q

0,1
1
  0
Q


3Q

0
1
Q


Q
Q





?
s
Q
s
Q

Q


3

3Q



Q
Q




1Q
1Q
0,1
1
s
Q
s
Q
Q

3


Q


0Q
1
s
Q


Figura 2.37: AFN da questao 2(b).


60





0,1 -



0,1  6





0


? 
1

@
1@
@
0
R
@



0,1 - 
43


0,1 -


6


6




0 0 0



6


Figura 2.38: AFN da questao 2(c).






1 1 




6
6
6



0,1

0,1

0,1

0,1

?



Figura 2.39: AFN da questao 2(d).

0
1



1
0


?
? 
- 0
- 1
- 2
1
0


1 
0
?






?
0 0 




6


0

Figura 2.40: AFN da questao 2(e).

61

0,1


? 

0,1


?





0,1 0,1 - 0
1
2







1
0


16




? 0 -
?
0 - m
- i
f



1



Figura 2.41: AFDs para L1 e L2 , questao 3.


e) A Figura 2.40 mostra um AFN para a linguagem.
3. A Figura 2.41 mostra AFDs para L1 e L2 . O produto dos dois resulta no AFD
(E, {0, 1}, , [0, i], {[0, f ]})
, em que E e constam dos estados e transicoes que aparecem na tabela:

[0, i]
[0, m]
[1, m]
[2, m]
[0, f ]
[1, f ]
[2, f ]
[0, e]
[1, e]
[2, e]

0
[1, m]
[1, f ]
[2, f ]
[0, f ]
[1, f ]
[2, f ]
[0, f ]
[1, e]
[2, e]
[0, e]

1
[1, e]
[1, m]
[2, m]
[0, m]
[1, m]
[2, m]
[0, m]
[1, e]
[2, e]
[0, e]

Minimizando-se esse AFD, obtem-se um equivalente de 6 estados. S


ao equivalentes:
[0, e], [1, e] e [2, e];

[1, m] e [1, f ],

[2, m] e [2, f ].

4. O conjunto de todas as mensagens ja enviadas ate este momento e um conjunto finito.


Logo, e regular.
5. Sejam M = (E, , , I, F ) e M = (E , , , I , F ). Observe que, pelo enunciado, E E,
I I e F F , e tambem que (vendo uma funcao como um conjunto) , sendo que
contem todas as transic
oes que n
ao envolvam os estados retirados.
a) 1. L(M ) L(M )
w).
Seja w . Como I I e , para todo i I iI (i, w) = iI (i,

Portanto, toda palavra reconhecida por M e reconhecida por M .


2. L(M ) L(M )
Seja w . Suponha que w L(M ). Entao para qualquer estado e E visitado
x) para algum
no reconhecimento de w, existem x e y tais que w = xy, e (i,

i I e f (e, y) para algum f F . Ou seja, e e alcancavel a partir do estado


62

inicial i e a partir dele e alcancado o estado final f ! Logo, todo estado e visitado no
reconhecimento de w por M encontra-se em E , juntamente com todas as transicoes
entre eles; com isso, w e reconhecida por M .
b) ()
Suponha que o diagrama de estados de M n
ao tenha ciclos. Suponha que L(M )
seja infinita. Seja k o n
umero de estados de M . Sendo L(M ) infinita, tem palavras
de tamanho maior ou igual a k. Mas, para reconhecer tais palavras, seria necessario
passar por mais de k estados! Logo, L(M ) = L(M ) n
ao pode ser infinita. Portanto,

se o diagrama de estados de M n
ao tem ciclos, L(M ) e finita.
()
Suponha que o diagrama de estados de M tenha ciclos. Seja e um estado de M que
faca parte de algum ciclo e suponha, entao, que para um certo v , e (e, v)
(observe que v 6= , visto que AFN n
ao tem transicoes ). Sejam i I e x tais

que e (i, x) (se n


ao existissem tais i e x, e teria sido eliminado) e sejam f F

e y tais que f (f, y) (se n


ao existissem tais f e y, e teria sido eliminado).
i

Ent
ao, xv y L(M ) para todo i 0! Portanto, L(M ) = L(M ) e infinita. Assim,
se L(M ) e finita, o diagrama de estados de M n
ao tem ciclos.
6.

a) L(M1 ) = .
b) L(M2 ) = {}.

7.

a) Suponha que TL seja uma progressao geometrica, e sejam n e r tais que TL =


{n, n + r, n + 2r, . . .}. L nada mais e do que a linguagem denotada por an (ar ) .
Como L pode ser denotada por uma express
ao regular, L e regular.
b) Seja (E, {a}, , i, {f1 , f2 , . . . , fk }) um AFD mnimo que reconheca L, e suponha que
ele tenha k estados, k > 0. (Se k = 0, L = .) Seja o conjunto Lj = {w
w) = fj }. Segue-se, por definicao, que L = k Lj . Assim, basta mostrar
{a} | (i,
j=1
ao progressoes aritmeticas. Sejam nj , para 1 j k, os
que os conjuntos TLj s
menores n
umeros naturais tais que anj Lj . Como o AFD e mnimo, nj existe para
todo j. Como o aut
omato e determinstico e o alfabeto tem apenas um smbolo, para
cada estado final fj existe no m
aximo um ciclo que inicia e termina no mesmo; se n
ao
existir ciclo nenhum, tome rj = 0, e se existir um ciclo, tome rj igual ao n
umero tal
j , arj ) = fj . Segue-se que Lj = {anj +qrj | q 0} e, portanto, TL e progress
que (f
ao
j
aritmetica.

8.

a) Sim. Basta tomar R1 = e R2 = .

b) Nao. Toda linguagem sobre e subconjunto de .


c) Sim. Toda linguagem sobre e subconjunto de .
d) Sim. Unindo-se duas linguagens n
ao regulares de alfabetos disjuntos, obtem-se uma
linguagem n
ao regular. Unindo-se uma linguagem n
ao regular L com a linguagem

n
ao regular L, obtem-se .
e) Sim. A intersec
ao de uma linguagem n
ao regular L com a linguagem n
ao regular L
e . Se uma linguagem n
ao regular L est
a contida em outra, a intersecao e L.
f) Nao. O complemento de uma linguagem n
ao regular L n
ao pode ser regular, pois se
fosse, o seu complemento, que e L, seria regular!

9.

a) L = {0n 1n+10 | n 0}.


63

Suponha que L seja regular. Seja k a constante do LB, e seja z = 0k 1k+10 . Como
z L e |z| > k, sejam, de acordo com o LB, u, v e w tais que z = uvw, |uv| k,
|v| > 0 e uv i w L para todo i 0. Mas, se |uv| k segue-se que v s
o pode conter 0s,
e se |v| > 0, v contem pelo menos um 0; segue-se, entao que uv 2 w = 0k+|v| 1k+10 6 L,
contradizendo o LB. Conclui-se que L n
ao e regular.
b) L = {0n y | y {0, 1} e |y| n}.
Suponha que L seja regular. Seja k a constante do LB, e seja z = 0k 1k , uma palavra
de L. Como |z| > k, sejam, de acordo com o LB, u, v e w tais que z = uvw, |uv| k,
|v| > 0 e uv i w L para todo i 0. Mas, se |uv| k e |v| > 0, segue-se que v e
constituda de pelo menos um 0, e uv 0 w = 0k|v| 1k , com |v| > 0. Assim, uv 0 w 6 L,
o que contradiz o LB. Logo, L n
ao e regular.
c) L = {0m 1n | m 6= n}.
Suponha que L seja regular. Entao, pelas propriedades de fechamento, L e regular
e, assim, L {0} {1} tambem e regular. Mas L {0} {1} = {0n 1n | n 0}, que
n
ao e regular. Contradic
ao. Logo, L n
ao e regular.
d) L = {am bn cm+n | m, n > 0}.
Suponha que L seja regular. Seja k a constante do LB, e seja z = ak bck+1 L. J
a
que |z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v s
o tem as e, assim,
0
k|v|
k+1
uv w = a
bc . E se |v| > 0, (k |v|) + 1 < k + 1 e, portanto, ak|v| bck+1 6 L,
o que contradiz o LB. Logo, L n
ao e regular.
2

e) L = {an bn | n 0}.
2
a
Suponha que L seja regular. Seja k a constante do LB, e seja z = ak bk L. J
que |z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v s
o tem as e, assim,
2
2
2
2
k+|v|
2
k+|v|
k
bk 6 L, o que
uv w = a
b . E se |v| > 0, (k + |v|) > k . Portanto, a
contradiz o LB. Logo, L n
ao e regular.
3

f) L = {an | n 0}.
3
Suponha que L seja regular. Seja k a constante do LB, e seja z = ak L. Como
|z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0 e
3
uv i w L para todo i 0. Dado que z = uvw, uv 2 w = ak +|v| . Sendo |v| > 0,
k3 + |v| > k 3 . De |uv| k, segue-se que |v| k e, logo, k3 + |v| k3 + k; como
k3 + k < k 3 + 3k2 + 3k + 1 = (k + 1)3 , tem-se que k3 + |v| < (k + 1)3 . Assim,
3
k3 < k3 + |v| < (k + 1)3 e, portanto, k3 + |v| n
ao e um cubo perfeito e ak +|v| 6 L,
contradizendo o LB. Conclusao: L n
ao e regular.
g) L = {am bn | n m 2n}.
Suponha que L seja regular. Seja k a constante do LB, e seja z = ak bk . Como z L
e |z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v s
o tem as e, assim,
0
k|v|
k
k|v|
k
uv w = a
b . E se |v| > 0, k |v| < k. Portanto, a
b 6 L, o que contradiz o
LB. Logo, L n
ao e regular.
h) L = {xx | x {a, b} }.
Suponha que L seja regular. Seja k a constante do LB, e seja z = ak bak b. Como
z L e |z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v e uma subpalavra do
prefixo de k as e, assim, uv 2 w = ak+|v| bak b. Sendo |v| > 0, se uv 2 w tiver um n
umero
64

par de smbolos, a primeira metade conter


a apenas 0s e os dois 1s ficar
ao na segunda
metade. Portanto, uv 2 w 6 L, o que contradiz o LB. Logo, L n
ao e regular.

i) L = {xx | x {0, 1} }.
L {0} {1} = {0n 1n | n 0}. Como as linguagens regulares s
ao fechadas sob
intersec
ao, se L fosse regular, {0n 1n | n 0} tambem seria.

j) L = {w {0, 1} | w 6= wR }.
Se L fosse regular, pelas propriedades de fechamento, L tambem seria. Mas L e o
conjunto dos palndromos sobre {0, 1}, que n
ao e regular, como provado a seguir
usando-se o LB.
Suponha que L seja regular. Seja k a constante do LB, e seja z = 0k 10k . Como
z L e |z| > k, o LB diz que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v e uma subpalavra
do prefixo de k 0s e, assim, uv 2 w = 0k+|v| 110k b. Sendo |v| > 0, a primeira metade
de uv 2 w (incluindo o smbolo do meio se |uv 2 w| for mpar) conter
a apenas 0s e 1
ao
ficar
a na segunda metade. Portanto, uv 2 w 6 L, o que contradiz o LB. Logo, L n
e regular.
k) L = {w {a, b, c} | o n
umero de as, bs e cs, em w, e o mesmo}.
Suponha que L e regular. Como {a} {b} {c} tambem e regular e as linguagens
regulares s
ao fechadas sob intersecao, L {a} {b} {c} deveria ser regular. Mas

L {a} {b} {c} = {an bn cn | n 0}, e esta u


ltima n
ao e regular. Logo, L n
ao e
regular.
l) Seja L = {w {0, 1} | o n
umero de 0s em w e um cubo perfeito}.
Suponha que L e regular. Como {0} tambem e regular e as linguagens regulares s
ao
3
fechadas sob intersec
ao, L {0} deveria ser regular. Mas L {0} = {an | n 0},
e esta u
ltima n
ao e regular (como ja mostrado em questao anterior). Logo, L n
ao e
regular.
m) Seja L = {0m 1n | mdc(m, n) = 1}.
Suponha que L e regular. Seja k a constante do lema do bombeamento e considere
z = 0(k+1)!+1 1(k+1)! . Pelo referido lema, existem u, v e w tais que z = uvw, |v| > 0,
|uv| k e uv i w L para todo i 0. Mas se z = uvw, |v| > 0 e |uv| k,
uv (k+1)!+2 w 6 L, pois, sendo |uv| k,

o n
umero de as de uv (k+1)!+2 w e (k + 1)! + 1 + ((k + 1)! + 2 1)|v| = [(k + 1)! +
1](1 + |v|), que e divisvel por 1 + |v|;
o n
umero de bs continua sendo (k + 1)!, que tambem e divisvel por 1 + |v| (pois
2 1 + |v| k + 1, ja que |v| > 0);

e com isso, o m
aximo divisor comum de [(k + 1)! + 1](1 + |v|) e (k + 1)! e no mnimo
1 + |v|.

n) L = {ak bm cn | k 6= m ou m 6= n}.
Suponha que L e regular. Como {a} {b} tambem e regular e as linguagens regulares
s
ao fechadas sob intersec
ao, L {a} {b} deveria ser regular. Mas L {a} {b} =
k
m
{a b | k 6= m}, e esta u
ltima n
ao e regular (como provado em questao anterior.
Logo, L n
ao e regular.
o) {0m 1n 0n | m, n > 0}.
Suponha que L seja regular. Seja k a constante do LB, e seja z = 01k 0k . Como
z L e |z| > k, o LB afirma que existem u, v e w tais que z = uvw, |uv| k, |v| > 0
65

e uv i w L para todo i 0. Se z = uvw e |uv| k, entao v e uma subpalavra do


prefixo 01k de z. Considera-se dois casos:
Caso 1. v comeca com 0. Entao uv 0 w comeca com 1. Logo, uv 0 w 6 L.
Caso 2. v n
ao comeca com 0. Entao uv 0 w = 01k|v| 0k e, como |v| > 0, uv 0 w 6 L.
Portanto, em qualquer caso uv 0 w 6 L, o que contradiz o LB. Logo, L n
ao e regular.
10.

regular. ER que a denota: ([0, 1] + [1, 0]) .


a) E
b) Nao e regular. Seja L a linguagem em questao. Entao L {[0, 1]} {[1, 0]} =
{[0, 1]n [1, 0]n | n 0}. Como esta u
ltima n
ao e regular e as linguagens regulares
s
ao fechadas sob intersec
ao, L n
ao e regular.
regular. A seguinte ER denota as palavras em que b1 = 0: ([0, 0]+[1, 0][1, 1] [0, 1]) .
c) E
Analogamente, tem-se uma ER para as com b1 = 1: ([1, 1] + [0, 1][0, 0] [1, 0]) .
d) Nao e regular. Seja L a linguagem em questao. Entao, assim como no item (b),
L {[0, 1]} {[1, 0]} = {[0, 1]n [1, 0]n | n 0}. Como esta u
ltima n
ao e regular e as
linguagens regulares s
ao fechadas sob intersecao, L n
ao e regular.

11. Seja L uma linguagem regular infinita. Pelo LB, dada uma palavra x de tamanho maior
que a constante referida no lema, e tal palavra existe, pois L e infinita, ela pode ser
dividida em tres partes u, v e w, de forma que:
uvw = x,

v 6= e

uv k w L para todo k 0.
Assim, seja uma dessas palavras uvw = x. Tome m = |uw| e n = |v| (note que n > 0).
Pelo LB, uv k w L para todo k 0, de onde se tira que |uv k w| = |uw| + k|v| = m + kn
para todo k 0. Isto mostra, como requerido, que existem m, n N, n > 0, tais que para
todo k 0, L contem alguma palavra z (a palavra uv k w) tal que |z| = m + kn
12. Uma generalizaca
o do lema do bombeamento: Seja L uma linguagem regular. Entao existe
uma constante k > 0 tal que para qualquer palavra xz L com |z| k existem u, v e w
que satisfazem as seguintes condicoes:
z = uvw;

|uv| k;
v 6= ; e

xuv i w L para todo i 0.


Uso do lema para provar que L = {0m 1n 0n } | m, n > 0 n
ao e regular:

Suponha que L seja regular. Seja k a constante do lema, e seja a palavra xz = 01k 0k ,
onde x = 0 e z = 1k 0k . Como xz L e |z| > k, o LB afirma que existem u, v e w tais que
z = uvw, |uv| k, |v| > 0 e xuv i w L para todo i 0. Se z = uvw e |uv| k, ent
ao
v s
o tem 1s e, assim, xuv 2 w = 01k+|v| 0k . E se |v| > 0, 01k+|v| 0k 6 L, o que contradiz o
lema. Logo, L n
ao e regular.
13. Variante do lema do bombeamento: Seja L uma linguagem regular. Entao existe uma
constante k > 0 tal que para qualquer palavra z 6 L com |z| k existem u, v e w que
satisfazem as seguintes condic
oes:
z = uvw;
66

|uv| k;
v 6= ; e

uv i w 6 L para todo i 0.
A demonstrac
ao e similar ao do lema original. Este lema, como o original, serve para
provar, que uma linguagem n
ao e regular. E, assim como quando se usa o lema original,
a prova e feita por contradic
ao. Segue um exemplo.
Seja L = {am bn | m 6= n}. Suponha que L seja uma linguagem regular. Seja k a constante
referida no lema, e seja z = ak bk . Como z 6 L e |z| > k, o lema diz que que existem u, v e
w de forma que as seguintes condicoes se verificam: z = uvw, |uv| k, v 6= e uv i w 6 L
para todo i 0. Neste caso, v s
o tem as, pois z = uvw = ak bk e |uv| k, e v tem pelo
menos um a, pois v 6= . Isto implica que uv 2 w = ak+|v| bk L, o que contraria o lema.
Conclui-se, assim, que L n
ao e linguagem regular.
14.

a) Dado um AFN M = (E, , , I, F ) para L, obtem-se um AFN M para pref (L):


M = (E, , , I, F ), em que

F = {e E | ({e},
w) F 6= para alguma w }.
Em outras palavras: basta tornar estados finais todos os estados a partir dos quais
se alcance algum estado final.
b) Dado um AFN M = (E, , , I, F ) para L, obtem-se um AFN M para suf (L):
M = (E, , , I , F ), em que
w) para alguma w }.
I = {e E | e (I,
Em outras palavras: basta tornar estados iniciais todos os estados alcanc
aveis a
partir de algum estado inicial.
c) Dado um AFN (E, , , I, F ) que reconheca L, constroi-se um AFN que reconhece
rev (L), (E, , , F, I) (observe a troca dos conjuntos de estados inciais e finais), sendo
tal que todas as transic
oes s
ao invertidas, ou seja, (e, a) = {e | e (e , a)}.

d) Pelo exerccio anterior, rev (L) e regular. Como as linguagens regulares s


ao fechadas
sob concatenac
ao e crev (L) = Lrev (L), segue-se que crev (L) e regular.

e) Seja um AFN M = (E, , , I, F ) tal que L(M ) = L. A partir de M constroi-se o


seguinte AFN que reconhece mpal (L): (E , , , I , F ), onde:
E = E E;
I = I F ;
(veja a ilustrac
ao na Figura 2.42) para cada (e1 , e2 ) E e a :
([e1 , e2 ], a) = {[e1 , e2 ] | e1 (e1 , a) e e2 (e2 , a)}; e
F = {[e, e] | e E}.
f ) Suponha que L 6= e seja M = (E, , , I, F ) um AFN para L sem estados in
uteis, ou

seja, em que para todo estado e existem x e y tais que e (I, x) e ({e}, y) F 6= .
(Qualquer estado que n
ao satisfaca essas condicoes pode ser eliminado sem alterar
a linguagem reconhecida.) Ser
a mostrado como obter, a partir de M , um AFN para dc(L) com 2|E|2 estados M = (E , , , I , F ). Nas explicacoes a seguir,
considere M simulando M , de forma que uma palavra M est
a reconhecendo yx,
como conseq
uencia de M reconhecer xy.
67





e1

2


@
@
@ a
@
@
R
@




a


e1

e2





[e1 , e2 ]



- [e , e ]
1 2



Figura 2.42: Ilustracao para o exerccio 14(e).


E = E E {p, s}.
Seja uma palavra xy reconhecida por M . Entao M deve reconhecer yx. Um
estado [e1 , e2 , s] de M modela o caso em que M , comecando pelo estado e1 , ja
est
a no estado e2 e leu parte do sufixo y (por isso, s). E um estado [e1 , e2 , p] de
M modela o caso em que M , comecando pelo estado e1 , ja est
a no estado e2 e
leu parte do prefixo x (por isso, p).
I = {[e, e, s] | e E}.
Quando M comeca no estado [e, e, s], simula o caso em que M , comecando pelo
estado e, est
a prestes a comecar a ler um sufixo y.

F = {[e, e, p] | e E}.
Quando M terminar no estado [e, e, p], ter
a acabado de simular M lendo o
prefixo x e terminando no estado e.
Para cada estado e E haver
a duas copias do AFN M :

([e, e , p], a) = [e, (e , a), p] para todo e E e todo a ;


([e, e , s], a) = [e, (e , a), s] para todo e E e todo a ;
Uma c
opia do AFN M e para reconhecer sufixos y (s) e a outra para prefixos x
(p).
A ligac
ao do reconhecimento de um sufixo (s) com o reconhecimento de um
prefixo e feita pelas -transicoes:
([e, f, s], ) = {[e, i, p] | i I} para todo e E e f F .

g) Similar ao item (e). Seja um AFN M = (E, , , I, F ) tal que L(M ) = L. A partir
de M constroi-se o seguinte AFN que reconhece pm(L): (E , , , I , F ), onde:
E = E E;
I = I F ;
para cada (e1 , e2 ) E e a :
([e1 , e2 ], a) = {[e1 , e2 ] | e1 (e1 , a) e e2 (e2 , b) para algum b }; e
F = {[e, e] | e E}.

h) Sejam dois AFNs M1 = (E1 , , 1 , I1 , F1 ) e M2 = (E2 , , 2 , I2 , F2 ) tais que L(M1 ) =


sempre possvel, e trivial, tornar os alfabetos identicos sem
L1 e L(M2 ) = L2 . (E
1 , L2 ) e
alterar as linguagens.) Um AFN M3 = (E3 , , 3 , I3 , F3 ) que reconhece (L
tal que:
68

E3 = E1 E2 ;
I3 = I1 I2 ;
para cada (e1 , e2 ) E3 e a :
3 ([e1 , e2 ], a) = {[e1 , e2 ] | e1 1 (e1 , a)} {[e1 , e2 ] | e2 2 (e2 , a)}; e
F3 = F1 F2 .
15. Seja um AFN M = (E, , , i, F ). Um AFD M equivalente sem transicoes para o estado
inicial: M = (E {i }, , , i , F ), tal que i 6 E, (e, a) = (e, a) para todo e E e
todo a , (i , a) = (i, a) para todo a , e F = F se i 6 F , e F = F {i } se i F .
16.

a) Por induc
ao sobre n. Primeiro, observe que se L1 e L2 s
ao regulares, L1 L2 e regular,
pois as linguagens regulares s
ao fechadas sob uni
ao. Seja n 2 e n linguagens
S
regulares L1 , L2 , . . . , Ln . Suponha, como hip
otese de inducao, que 2in Li seja
regular. Dada essa hip
otese e o fato de que as linguagens regulares s
ao fechadas sob
uni
ao, segue-se que
[
[
Li = (
Li ) Ln+1
2in+1

2in

e regular.
b) Cada linguagem {ai bi }, para i 2, e uma linguagem regular, mas
[

{ai bi } = {ai bi | i 2}

i2

n
ao e.
17. () Suponha que L {} e regular. Como (L {}) {} = L {} e as linguagens
regulares s
ao fechadas sob diferenca, L {} e regular.

() Suponha que L {} e regular. Como (L {}) {} = L {} e as linguagens


regulares s
ao fechadas sob uni
ao, L {} e regular.

18. Seja r uma express


ao regular que denota L. Seja r a express
ao regular obtida de r
substituindo-se cada smbolo do alfabeto, a, de r por h(a). Mostra-se facilmente, por
inducao a partir da definic
ao de express
ao regular, que r denota h(L).
Agora, para provar o fechamento sob homorfismo inverso, seja um AFD para L, M =
h(a)) para todo
(E, , , i, F ). Seja o AFD M = (E, , , i, F ) em que (e, a) = (e,

h(w)). Como
e E e a . Pode-se provar, por inducao sobre |w|, que (e, w) = (e,
os estados iniciais e finais dos dois AFDs s
ao os mesmos, segue-se que w L(M ) se, e
somente se, h(w) L(M ) e, portanto, L(M ) = h1 (L).
19. Seja L = {an bn | n 0} e h : {an b} {1} tal que h(a) = e h(b) = 1. Segue-que que
h(L) = {1} e, assim, h(L) e regular, embora L n
ao seja.
20. Para cada a , seja er (a) uma express
ao regular que denota s(a) (que existe, pois s(a)
e regular). Seja r uma express
ao regular que denota L. Seja r a express
ao regular obtida
de r substituindo-se cada smbolo do alfabeto, a, de r por er (a). Mostra-se facilmente,
por induc
ao a partir da definic
ao de express
ao regular, que r denota s(L).
21. Seja um AFD M = (E, , , i, F ) que reconheca L1 . Um AFD que reconhece L1 /L2 e o
AFD M = (E, , , i, F ), cuja u
nica diferenca com relacao a M1 e o conjunto de estados

y) F }.
finais, assim definido: F = {e E | y L2 (e,
69

22.

a) Suponha que L F seja regular. F L tambem e regular, pois e finita. Logo,


seu complemento, F L, tambem e regular. Como a intersecao de duas linguagens
regulares e regular, segue-se que (LF )F L e regular. Mas, (LF )F L = L,
que n
ao e regular. Contradicao. Portanto, L F n
ao e regular.

b) Suponha que L F seja regular. F L tambem e regular, pois e finita. Como a


uni
ao de duas linguagens regulares e regular, segue-se que (L F ) (F L) e regular.
Mas, (L F ) (F L) = L, que n
ao e regular. Contradicao. Portanto, L F n
ao
e regular.
23.

a) Nao. Por exemplo, L = para uma linguagem n


ao regular L sobre .

b) Nao. Por exemplo, L = para uma linguagem n


ao regular L sobre que
contenha .
c) Sim. Seja subp(L1 ) = {w | w e uma subpalavra de L1 }. Toda subpalavra de uma
palavra x e o prefixo de um sufixo de x (e vice-versa). Assim, subp(L1 ) = pref (suf (L1 )).
Segue, pelos exerccios 14(a) e 14(b), que subp(L1 ) e regular.
24.

a) () Suponha que L(M ) = . Como M n


ao reconhece nada, segue-se o resultado.
() Suponha que o AFD M n
ao reconheca palavra de tamanho menor que n. Com
o objetivo de se chegar a uma contradicao, suponha que L(M ) 6= . Entao a menor
palavra aceita por M tem tamanho maior ou igual a n. Com isso, pelo lema do
bombeamento, para uma para dessas, z, existem u, v e w tais que z = uvw, |v| > 0
e uv i w L para todo i 0. Em particular, uw L e, como |uw| < |z| (ja que
|v| > 0) e como z e uma menor palavra que M aceita, chega-se a uma contradicao.
Conclui-se que L(M ) = .

b) () Suponha que L(M ) e finita. Se M reconhecesse uma palavra z de tamanho


maior ou igual a n, ent
ao, pelo lema do bombeamento, existiriam u, v e w tais que
z = uvw, |v| > 0 e uv i w L para todo i 0. Com isso, L(M ) seria infinita! Logo,
M n
ao reconhece palavra de tamanho maior ou igual a n.
() Suponha que L(M ) e infinita. Entao M reconhece palavra a partir de qualquer
tamanho e, assim, reconhece palavras de tamanho maior ou igual a 2n. Seja, ent
ao
uma palavra z, de tamanho menor possvel, maior ou igual a 2n. Pelo lema do
bombeamento, existem u, v e w tais que z = uvw, |v| > 0, |uv| k e uv i w L para
todo i 0. Em particular, uw L. Como |v| > 0, essa u
ltima palavra e menor que
z. Como ela n
ao pode ser maior ou igual a 2n (pois z e a menor possvel de tamanho
maior ou igual a 2n) e |uv| k, conclui-se que |uw| e maior ou igual a n e menor
que 2n.
25. Todos os passos dos PDs a seguir s
ao corroborados por algoritmos desenvolvidos no
captulo.
a) Um PD para o problema seria: Obtenha (AFNs e depois) AFDs M1 para L(r1 ) e
M2 para L(r2 ). Em seguida, a partir de M1 e M2 , obtenha AFDs M3 para L(M1 )
L(M2 ) = L(M1 ) L(M2 ) e M4 para L(M2 ) L(M1 ) = L(M2 ) L(M1 ). Finalmente,
verifique se ambos os AFDs, M3 e M4 , reconhecem alguma palavra de tamanho
menor que o respectivo n
umero de estados; se sim, L(r1 ) 6= L(r2 ); caso contr
ario,
L(r1 ) = L(r2 ).
b) Similar ao anterior: Obtenha AFDs M1 para L(r1 ) e M2 para L(r2 ). Em seguida,
obtenha um AFD M3 para L(M1 ) L(M2 ) = L(M1 ) L(M2 ). Finalmente, verifique
se M3 reconhece alguma palavra de tamanho menor que o n
umero de estados; se sim,
L(r1 ) 6 L(r2 ); caso contr
ario, L(r1 ) L(r2 ).
70

c) Um PD para o problema seria: Obtenha um (AFN e depois) AFD M para L(r1 ).


Em seguida, minimize M . Se o resultado for um AFD do tipo ({e}, , , e, {e}), em
que (e, a) = e para todo a , L(r1 ) = ; caso contr
ario, L(r1 ) 6= .

10) = {C} e (D,

26. Tem-se: (A,


10) = (B,
10) = (c,
10) = {A, C}. Portanto, uma
resposta e w = 0 e e = C.
Um algoritmo basta testar as computacoes possveis do AFN para palavras w de tamanho
no m
aximo igual ao n
umero de estados do AFN menos 1.
27. Segue uma m
aquina de Moore:
, [1]

, [2]




 {1}

?
? 
- 1/1
2/2
-

6 {2}, {3}, {2, 3}
{1}, {1, 3}

{3}, {1, 3}



{3}

2/2



{1}, {2}, {1, 2}
6


?
-
3/3


6


, [2]

, [3]

28. Segue uma m


aquina de Moore/Mealy:
, [1]/

, [2]/




 {1}/

?
? 
- 1/1
2/2
-

6 {2}, {3}, {2, 3}/
{1}, {1, 3}/

{3}, {1, 3}/ /

 {3}/
2/2

?
-



6 {1}, {2}, {1, 2}/


, [2]/

3/3


6


, [3]/

29. Acrescentar um smbolo ao alfabeto de sada e, para cada estado final f , fazer (f ) =
(f )a, onde e a func
ao de sada anterior, a nova e a e o smbolo acrescentado. Alem

disso, (e) = (e) se e n


ao e estado final. Dessa forma, a palavra e considerada aceita se,
e somente se, o u
ltimo smbolo da palavra de sada e a. E a sada propriamente, deve ser
considerada como sendo a sada atual, removidas todas as ocorrencias de a.
30. Nao aumenta. Seja P = {x1 , x2 , . . . , xn } o conjunto das palavras que aparecem nas
contra-domnio da func
ao de sada: : E P . Uma m
aquina de Mealy equivalente a
uma m
aquina de Mealy M com tal funcao de sada seria uma m
aquina M identica a

M , s
o que sua func
ao de sada seria do tipo : E , onde = {a1 , a2 , . . . , an } e
(e, a) = ai sse (e, a) = xi . Desta forma, a sada de M seria obtida da sada s(i , w) de
M simplesmente substituindo-se nesta cada ai por xi .
71

31.

a) ER: (1(0 + 1)) ( + 1)


GR:
I 1P |
P 0I | 1I |

b) ER: + 0[(1 + 01)(0 + 10)] ( + 0) + 1[(0 + 10)(1 + 01)] ( + 1)


GR:
P 0Z1 | 1U1 |
Z1 0Z2 | 1U1 |
Z2 1U1 |
U1 0Z1 | 1U2 |
U2 0Z1 |

c) ER: (1 + 0111) ( + 0 + 01 + 011)


GR:
P
A
B
B

1P | 0A |
1B |
1C |
1P |

d) Segue um diagrama ER inicial:


1

0
0

A
1
1

B
1

0
0

1
Eliminando-se D, E, C e B, nessa ordem, obtem-se o diagrama ER:
0(0 + 100) 110

1
0
P

A
1 + 0(0 + 100) 1(01 + 11)

ER: [1 + 0[0(0 + 100) 110] [1 + 0(0 + 100) 1(01 + 11)]] ( + 0).


GR:
P
A
B
C
D

0A | 1P |
0B |
0B | 1C
0D | 1E
0B | 1P
72

E 0A | 1P

e) Segue um AFD para a linguagem:


1
0
P

0,1

0,1

ER: [(1 + 01) [ + 0 + 00( + 0 + 1)( + 0 + 1)].


GR:
P
A
B
C

0A | 1P |
0B | 1P |
0C | 1C |
0|1|

32. Ordem de eliminac


ao de estados: {l, r}, {h, c}, {r}, {l}, {h, c, r}, {h, l, c}, {h, l, r}, {c}.
Sejam:
x = r(cc) cl + l(rr) cr;
y = lc(cc) r + rc(rr) l;

u = ss + rr + lc(cc) cl + rc(rr) cr;


v = ss + r(cc) r + l(rr) l;

Obtem-se o diagrama ER:


cc + csu sc

cc + csv sc
csu yv sc

{h, l, c, r}

{}

csv xu sc

Uma ER e: (cc + csu sc) csu yv sc[cc + csv sc + csv xu sc(cc + csu sc) csu yv sc] .
33.

a) Pode-se obter trivialmente um AFN e um AFD para L(r1 ) com os diagramas de


estados:
a
a,b
a

3
b

a,b

3
b

2
b

Do u
ltimo, obtem-se o AFD que reconhece L(r1 ):
73

a,b

a
1

a,b

3
b

2
b

Deste obtem-se, finalmente a ER + a+ + b+ .


b) AFDs para L(r2 ) e L(r2 ):
a

1
a

a,b

a,b

b + ab a

b) .

c) Primeiro, obtem-se um AFD para L(r3 ):


b

b
0

b
e

a,b

Em seguida, um AFD para L(r3 ):


b

b
0

a
a

b
e

+ ab a)(a

Do u
ltimo obtem-se o diagrama ER:
A ER e, ent
ao, (b

a,b

O diagrama ER com o estado 1 eliminado:


74

a+b

b
a

ab

ab

b + aa

aa

b
e

a+b

Para simplificar a obtenc


ao da ER, e conveniente acrescentar um estado, que ser
a
o novo estado final, e transicoes sob dos estados finais anteriores para ele (o que,
evidentemente, n
ao altera a linguagem aceita):
b
a

ab

ab

aa

b
a+b

b + aa

Eliminando-se o estado e (lembrando que r = r para qualquer ER r):


b

ab

ab

aa

b + aa

+ b(a + b)
Eliminando-se o estado 2, obtem-se:

aa + abb a

b + aa + abb a
abb

+ b(a + b) + abb

Finalmente, obtem-se a ER: + b(a + b) + abb + (aa + abb a)(b + aa + abb a) abb .
d) Um diagrama ER inicial, ja com estado final e transicoes , como no exerccio anterior:
75

ip
a

b
a

pp

ii

b
pi

Eliminando-se o estado ip:


a
aa

bb
ab

pp

+b

ii
b

ba

a
a

pi

Eliminando-se o estado pi:

aa + bb
pp

aa + bb
ab + ba
ii

+a+b

ab + ba
a+b

Finalmente, eliminando-se o estado ii:

aa + bb + (ab + ba)(aa + bb) (ab + ba)


pp

a + b + (ab + ba)(aa + bb) ( + a + b)

A ER: [aa + bb + (ab + ba)(aa + bb) (ab + ba)] [a + b + (ab + ba)(aa + bb) ( + a + b)].
e) Um diagrama ER inicial, obtido a partir do produto dos AFDs para L(r1 ) (ver item
a) e L(r4 ) (ver item d):
76

1pp
a

b
a

1ip

3pi

0pp

b
a

3pp

3ii
a

b
2pi

3ip
b

b
2pp

Eliminando-se os estados 1pp e 2pp, obtem-se:


aa
ab

1ip
a

0pp

3pi
a

b
a

3pp

3ii
a

b
2pi

ba

b
3ip

bb
Eliminando-se os estados 1ip e 2pi:

a(aa) ab
3pi
a
0pp

a(aa) b + b(bb) a

b
a

b
3pp

3ii
a

b
3ip
b(bb) ba

Eliminando-se os estados 3ip e 3pi:


77

aa + bb
3ii

a(aa) b + b(bb) a + a(aa) aba + b(bb) bab

ab + ba
aa + bb
ab + ba

0pp

3pp
a(aa) abb + b(bb) baa

Apos eliminar o estado 3ii, obtem-se a ER: r + st , onde onde r = a(aa) abb +
b(bb) baa, s = (a(aa) b + b(bb) a + a(aa) aba + b(bb) bab)(aa + bb) (ab + ba) e t =
aa + bb + (ab + ba)(aa + bb) (ab + ba).
f ) O diagrama ER inicial e o mesmo que o do exemplo anterior, s
o que com os estados
finais sendo 3ii, 3ip e 3pi. Fazendo-se como no exemplo anterior, ap
os a eliminac
ao
dos estados 1pp, 2pp, 1ip e 2pi, obtem-se:

a(aa) ab
3pi
a
0pp

a(aa) b + b(bb) a

b
a

3pp

3ii
a

b
3ip
b(bb) ba

Apos eliminar 3pp e acrescentar um novo estado final com transicoes sob :
bb
a(aa) ab
3pi

a
0pp

a(aa) b + b(bb) a

3ii

ab

ba

b
b

3ip

b(bb) ba
aa
Eliminando-se 3pi e criando-se nomes para as ERs de cada transicao, para simplificar
o trabalho posterior, obtem-se:
78

x1 = a(aa) ab(bb)
y1 = a(bb) a
0pp

x2 = a(aa) b + b(bb) a + a(aa) ab(bb) a

3ii

y2 = a(bb)
y3 = b + a(bb) ba

z3 = b + ab(bb) a
3ip
x3 = b(bb) ba + a(aa) ab(bb) ba

z2 = + ab(bb)

z1 = aa + ab(bb) ba

Para simplificar, ser


ao usados os r
otulos criados na figura anterior. Com isto, eliminandose 3ip, obtem-se:
y1 + y3 z1 z3
x2 + x3 z1 z3

0pp

y2 + y3 z1 z2

3ii

x1 + x3 z1 z2
A ER: x1 + x3 z1 z2 + (x2 + x3 z1 z3 )(y1 + y3 z1 z3 ) (y2 + y3 z1 z2 ).
34. Para maior legibilidade ser
ao usados diagramas de estado.

a) AFN para :
AFN para {}:

AFN para {a}:

b) Suponha a existencia de AFNs M1 e M2 satisfazendo `as tres condicoes. Diagramaticamente:

i1

M1

i2

f1

M2

f2

A seguir, mostra-se como construir AFNs para L(M1 ) L(M2 ), L(M1 )L(M2 ) e
L(M1 ) .
79

AFN para L(M1 ) L(M2 ):


M1

i1

f1

i3

f3

M2

i2

f2

AFN para L(M1 )L(M2 ):

M1

i1

f1

M2

i2

f2

AFN para L(M1 ) :

i3

i1

M1

f1

f3

As tres condic
oes, sendo asseguradas na parte base (a) e tambem nos processos de
construc
ao da parte indutiva (b), alem de n
ao atrapalhar em nada, simplificam esses
mesmos processos, visto que propiciam a necessidade de considerar apenas os casos
em que M1 e M2 satisfacam essas condicoes. Por exemplo, n
ao e preciso considerar
casos em que M1 ou M2 tenham mais de um estado final.
35. Dada uma ER r sob , seja (r) uma ER modificada em que os smbolos repetidos s
ao
substitudos por novos, de forma que (r) fique sem smbolos repetidos. Seja (r) o
conjunto dos smbolos que ocorrem em r. (Exemplo: se r = (a + bb) ((aa) b), com (r) =
{a, b}, poder-se-ia ter (r) = (a + bb1 ) ((a1 a2 ) b2 ), com ((r)) = {a, a1 , a2 , b, b1 , b2 } .)
Seja ainda (x) o smbolo de (r) correspondente a x ((r)). (Para o exemplo,
(a) = (a1 ) = (a2 ) = a e (b) = (b1 ) = (b2 ) = b.) Para a construcao do AFN ser
ao
usadas tres func
oes, definidas recursivamente a seguir.
Dada uma ER modificada r, prm(r) d
a o conjunto dos smbolos de (r) que podem iniciar
uma palavra de L(r). Recursivamente:
(a) prm() = ,
prm() = ,
80

prm(x) = {x} para todo x (r);

(b) prm(r + s) = prm(r) prm(s),


prm(rs) = prm(r) prm(s), se L(r), e prm(rs) = prm(r), caso contr
ario,
prm(r ) = prm(r).
Dada uma ER modificada r, ult(r) d
a o conjunto dos smbolos de (r) que podem terminar
uma palavra de L(r). Recursivamente:
(a) ult() = ,
ult() = ,
ult(x) = {x} para todo x (r);

(b) ult(r + s) = ult(r) ult(s),


ult(rs) = ult(r) ult(s), se L(s), e ult(rs) = ult(s), caso contr
ario,
ult(r ) = ult(r).
Dada uma ER modificada r e um smbolo x (r), prx(r, x) d
a o conjunto dos smbolos
de (r) que podem vir ap
os x em palavras de L(r). Recursivamente:
(a) prx(x, x) = para todo x (r);

(b) prx(r + s, x) = prx(r, x), se x (r), e prx(r + s, x) = prx(s, x), se x (s),


prx(rs, x) = prx(r, x), se x (r) ult(r), prx(rs, x) = prx(r, x) prm(s), se
x ult(r), e prx(rs, x) = prx(s, x), se x (s),
prx(r , x) = prx(r, x), se x (r) ult(r), e prx(r , x) = prx(r, x) prm(r), se
x ult(r).
O seguinte AFN, denominado aut
omato de Glushkov, reconhece L(r):
Mr = (Er {i}, , r , {i}, Fr ), em que:
Er = ((r));

r (i, a) = {y prm((r)) | (y) = a}, e r (x, a) = {y prx((r), x) | (y) = a} para


todo x ((r)) e a ;
Fr = ult((r)) {i}, se L(r), e Fr = ult((r)), se 6 L(r).

36. Definic
ao recursiva de f (X), sendo X E:
(a) X f (X);

(b) se e f (X) e r R e L(r), entao (e, r) f (X).


Denotando por Ce,x o conjunto
assim:

rRxL(r)

w) = para w ,
(a) (,

(X,
) = f (X) para X E;
S
S

(
(b) (X,
w) =
xy=wx6=

ef (X)

(e, r), pode ser definida recursivamente

Ce,x , y) para X E e w + .

w) F 6= }.
37. Seja um diagrama ER D = (E, , , I, F ). L(D) = {w | (I,
38. Seja = {a1 , a2 , . . . , an }. Ent
ao pode-se substituir as express
oes b
asicas para expressar
e por a1 + a2 + an e (a1 + a2 + an ) , respectivamente, e substituir as ERs das
formas r s (intersec
ao) e r c (complementacao) por ERs assim obtidas, respectivamente:
81

r s:

1. obter um ADF Mr para L(r) e outro para L(s) (teorema 12);


2. obter um ADF Mrs para L(r s) fazendo o produto de Mr e Ms (teorema 4);
3. obter uma ER a partir de Mrs (teorema 13).

rc :

1. obter um ADF Mr para L(r) (teorema 12);


2. obter um ADF Mrc para L(r) a partir de Mr (teorema 4);
3. obter uma ER a partir de Mrc (teorema 13).

39. Dada uma gram


atica linear `
a direita G = (V, , R, P ), pode-se obter uma linear `a esquerda
R

G = (V, , R , P ) em que R = {X wR | X w R}, e vice-versa. Pode-se provar


por induc
ao sobre o n
umero de regras utilizadas para gerar w, que w L(G) se, e somente
se, wR L(GR ). Como a classe das linguagens regulares e fechada sob reverso, segue-se
que as gram
aticas lineares `
a esquerda geram exatamente a classe das linguagens regulares.
40.

a) Seja um AFNE M = (E, , , I, F ). Uma gram


atica que gera L(M ) seria (E
{P }, , R, P ), em que P 6 E e R consta da regras:

P we , para cada w 6= e e tais que e (e, w) para algum e f (I);


P , se f (I) F 6= ;
e we , para cada w 6= e e tais que e (e , w) para algum e f ({e});
e , para cada e tal que f ({e}) F 6= .

b) Seja uma gram


atica (V, , R, P ). Um AFNE que reconhece L(G) seria (V, , , {P }, F ),
em que:
Y (X, w) se, e somente se, X wY R;
F = {X | X R}.
41. Sim, e possvel. Por exemplo, a gram
atica
P 0A |
A P1
gera {0n 1n | n 0}, uma linguagem n
ao regular.

82

Captulo 3

Aut
omatos de Pilha
3.1

Uma Introdu
c
ao Informal

Nesta secao n
ao h
a exerccios.

3.2

Aut
omatos de Pilha Determinsticos

1. () Sejam [e1 , z1 ] (e, a, b) e [e2 , z2 ] (e, a , b ) duas transioes compatveis, ou seja,


tais que (a = a a = a = ) (b = b b = b = ). Existem 9 casos a
considerar:
1.
2.
3.
4.
5.
6.
7.
8.
9.

a = a b = b . Ent
ao [e, ay, b] [e1 , y, z1 ] e [e, ay, b] [e2 , y, z2 ].

a = a b = . Ent
ao [e, ay, b ] [e1 , y, z1 b ] e [e, ay, b ] [e2 , y, z2 ].
a = a b = . Ent
ao [e, ay, b] [e1 , y, z1 ] e [e, ay, b] [e2 , y, z2 b].

a = b = b . Ent
ao [e, a y, b] [e1 , a y, z1 ] e [e, a y, b] [e2 , y, z2 ].
a = b = . Ent
ao [e, a y, b ] [e1 , a y, z1 b ] e [e, a y, b ] [e2 , y, z2 ].
a = b = . Ent
ao [e, a y, b] [e1 , a y, z1 ] e [e, a y, b] [e2 , y, z2 b].
a = b = b . Ent
ao [e, ay, b] [e1 , y, z1 ] e [e, ay, b] [e2 , ay, z2 ].

a = b = . Ent
ao [e, ay, b ] [e1 , y, z1 b ] e [e, ay, b ] [e2 , y, z2 ].
a = b = . Ent
ao [e, ay, b] [e1 , y, z1 ] e [e, ay, b] [e2 , ay, z2 b].

Para cada caso, mostrou-se que as duas transicoes podem ocorrer simultaneamente
para a mesma configurac
ao.
() Suponha que duas transic
oes [e1 , z1 ] (e1 , a1 , b1 ) e [e2 , z2 ] (e2 , a2 , b2 ) podem
ocorrer simultaneamente a partir de uma configuracao [e, x, ]. Entao:
i. e1 = e2 = e;
ii. a1 = a2 = primeiro smbolo de x, ou a1 ou a2 , ou ambos, s
ao ;
iii. b1 = b2 = primeiro smbolo de , ou b1 ou b2 , ou ambos, s
ao .
Em outras palavras, as duas transicoes s
ao compatveis.
2. Um APD que satisfaz as exigencias e aquele cujo diagrama de estados e:
1, F/
1, /F
0, /X
0, X/
=
m0
m1
1, X/
1, /X
0, /F
0, F/
83

3.

a) Um APD para {0n 12n | n 0}:


0, /XX
0

1, X/
1, X/

b) Um APD para {03n 12n | n 0}:


1, X/

0, /

0, /XX
0

1, X/

0, /

c) Um APD para {w0wR | w {1, 2} }:


1, /U
2, /D

1, U/
2, D/
0, /

d) Um APD para {0m 1n | m < n}:

, /F

1, X/

1, X/

1, F/

1, F/
f

0, /X

1, /

e) Um APD para {0m 1n # | m 6= n}:


1, F/
1, /

1, X/
1, X/
, /F
i

1, F/

#, X/

#, X/
2

0, /X

, F/

#, /
4

, X/
f ) Um APD para {w# {0, 1} | o n
umero de 0s em w e maior que o de 1s}:
84

a)

b)

c)

d)

m0
0, /F
#, /
f1

4.

1, /F

1, F/

0, /X
1, X/

m1
0, F/

, F/

0, X/
1, /X

f2

, X/
Para reconhecer uma palavra w, n
ao h
a como um APD reconhecer o termino da
primeira metade de w para que possa finalizar o seu armazenamento e comecar a ler
a segunda metade e compara-la com a primeira.
Durante seu processamento, o APD deve necessariamente registrar a diferenca entre
os n
umeros de 0s e de 1s. Para isso, deve ser usada a pilha, pois n
ao existe limite para
a diferenca. Com isto, a pilha poder
a n
ao estar vazia quando a palavra terminar. E
o APD n
ao tem como saber que a palavra termina.
Como no item anterior, se o n
umero de 0s da palavra for maior que o de 1s, o APD
poder
a estar com a pilha n
ao vazia ao termino da palavra (representado a diferenca),
sem possibilidade de reconhecer que a palavra terminou.
Analoga ao item (b).

(, /X
), X/
Generalizando para n parenteses balanceados (ai , fi ):

5. Um APD para parenteses balanceados:

ai , /Xi para i = 1, 2, . . . , n
fi , Xi / para i = 1, 2, . . . , n
6. Um APD para express
oes prefixadas e aquele cujo diagrama de estados e:
i

, /X

+, X/XX
, X/XX
t, X/

7. O diagrama de estados de um APD para express


oes posfixadas:
i

3.3
1.

t, /

+, X/
, X/
t, /X

Aut
omatos de Pilha N
ao Determinsticos

a) Arvore
de computac
oes para aa:
[i, aa, ]

[i, a, B]

[i, , BB]

[f, aa, ]

[f, a, B]

[f, , BB]

85


Arvore
de computac
oes para bb:
[i, bb, ]

[f, bb, ]

Arvore
de computac
oes para aabcc:
[i, aabcc, ]

[i, abcc, B]

[i, bcc, BB]

[f, aabcc, ]

[f, abcc, B]

[f, bcc, BB]

[f, cc, CB]

[f, c, B]

[f, bcbc, BB]

[f, cbc, CB]

[f, bc, B]

[f, , ]

[f, c, C]

Arvore
de computac
oes para aabcc:
[i, aabcbc, ]

[i, abcbc, B]

[i, bcbc, BB]

[f, aabcbc, ]

[f, abcbc, B]

Apenas aabcc e reconhecida por M .


b) L(M ) = {an (bc)n | n 0}.
2. APN para {w {a, b, c, d} | w = wR }:
a, /
b, /
c, /
d, /

a, 0/
b, 1/
, 0/
, 1/

a, /00
b, /01
c, /10
d, /11
3.

c, 0/
d, 1/

a) APN para {0n 1n | n 0} {0n 12n | n 0}:


1, X/

1, X/

1, /
0, /X

1, X/
1, /

86

b) APN para {0n 1k | n k 2n}:


0, /XX
0, /X

1, X/
1, X/

c) APN para {0n 1n 0k | n, k 0}:


0, /X

0, /

1, X/
, /

, /

d) APN para {0m 1n | m > n}:


0, /X
0, /

1, X/
0, /

4. Reconhecimento por estado final:

a, /X
a, /F

b, X/
b, X/

b, F/
b, F/

Reconhecimento por pilha vazia:

a, /X

b, X/
b, X/

5.

a) Por estado final:


87

1, X/

1, X/

, F/
, /F

, F/

1, /
1, X/

0, /X

1, /

Por pilha vazia:


1, X/

1, X/

1, /
1, X/

0, /X

1, /

b) Por estado final:


0, /XX
0, /X
, /F

1, X/
, F/

1, X/

Por piha vazia:


0, /XX
0, /X

1, X/
1, X/

c) Por estado final:


0, /X
, /F

0, /

1, X/
, /

Por pilha vazia:


88

, F/

0, /X

0, /

1, X/
, /

, /

d) Por estado final:


0, /X
0, /
, /F

1, X/
0, /

, F/

Por pilha vazia:


0, /X
0, /

1, X/
0, /

6. Uma transic
ao da forma
e

a, b/c1 c2 . . . cn

para n 2, tem o mesmo efeito que n transicoes:


e

a, b/c1

e1

, /c2

en1

e2

, /cn

em que os n 1 estados e1 , e2 , . . . , en1 s


ao estados novos.
7. Seja um AFNE M = (E, , , I, F ). Um APN equivalente seria
M = ({i, m, f } N, , E, , {i}, {f })
em que N e s
ao dados por:
(i, , ) = {[m, e] | e I};

comecando com N = , para cada transicao do AFNE da forma e (e, w), w :

se |w| 1, [m, e ] (m, w, e);


se w = a1 a2 an para n 2, fazer [e1 , e ] (m, a1 , e), [e2 , ] (e1 , a2 , ),
. . . , [m, ] (en1 , an , ), sendo e1 , e2 , . . . , en1 estados novos acrescidos a
N.

para cada e F , [f, ] (m, , e);


8. APD para L = {w {0, 1} | o n
umero de 0s em w difere do de 1s}:
89

1, /F

1, F/

0, /X
1, X/

m0
0, /F

0, F/

1, F/

1, /F

m1

0, X/
1, /X

m1

0, X/
1, /X

APD para L#:


0, /X
1, X/

m0
0, /F

0, F/

#, /

#, /
f1

f2
, F/

, X/
9. Seja um AFD M = (E, , , i, F ). Um APD equivalente que reconhece por estado final e
tambem por estado final e pilha vazia e (E, , {X}, , i, F ) em que para todo e E e todo
a , (e, a, ) = [(e, a), ].
Um APD que reconhece L(M ) {} por pilha vazia e (E {i }, , {X}, , i ) em que i 6 E
e e assim definida:
(i , , ) = [i, ], se i F , e (i , , ) = [i, X], se i 6 F ;

para cada transic


ao (e, a) = e :

se
se
se
se

eF
eF
e 6 F
e 6 F

e
e
e
e

e
e
e
e

F,
6 F ,
F,
6 F ,

(e, a, ) = [e , ];
(e, a, ) = [e , X];
(e, a, X) = [e , ];
(e, a, X) = [e , X].

10. Seja um AP M = (E, , , , I, F ). Um AP que reconhece L(M ) {} e (E {i }


N, , {F}, , {i }, F ), em que i 6 E, F 6 e e novos estados em N s
ao assim
obtidos:
(i , , ) = {[i, F] | i I};

para cada transic


ao [e , z] (e, a, X):

[e , z] (e, a, X), e
se a 6= , colocar um novo estado d em N e acrescentar as transicoes [d, ]
(e, a, X) e [e , z] (d, , F).

3.4
1.

Gram
aticas Livres do Contexto
a) Para {0n 1n | n 0} {0n 12n | n 0}:
P A|B
A 0A1 |
B 0B11 |

b) Para {0n 1k | n k 2n}:


P 0P 1 | 0P 11 |

c) Para {0n 1n 0k | n, k 0}:


90

P AB
A 0A1 |
B 0B |
d) Para {0m 1n | m > n}:
P 0P 1 | 0P | 0
2.

a) Para {am bn c3m+2n+1 | m, n 0}:


P aP ccc | X
X bXcc | c
b) Para {an b2n+k c3k | n, k 0}:
P AB
A aAbb |
B bBccc |
c) Para {am bn ck | n > m + k}:
P ABC
A aAb |
B bB | b
C bCc |

3.

a) Para L1 :
X 0X11 | 0X111 |
b) Para L2 :
Y AB
A aAbb |
B bBc |
c) Para (L1 L2 )2 :
P ZZ
Z X |Y
mais as regras de (a) e (b).

4.

a) P AB aAbB acbB acbbBc acbbbBcc acbbbacc

b) AD:

91

c) L(G) = {an cbn | n 0}{bn acn | n 0}.


5.

a) G e ambgua, pois existem duas derivacoes mais `


a esquerda da palavra aaabb:
P aP b aaaP bb aaabb
P aaP b aaaP bb aaabb

b) Uma gram
atica n
ao ambgua equivalente a G e
P aP b | X
X aaXb |
6. Sim. Uma gram
atica ambgua que gera {}:
P X |
X

Uma gram
atica ambgua que gera {0}:
P X |0
X 0

7. Como hcmdi e hexp-reli s


ao u
teis, para mostrar a ambiguidade basta apresentar duas
subADs com raiz rotulada hcmdi e gerando uma (a mesma) forma sentencial contendo
apenas terminais e essas duas vari
aveis. Duas ADs para
se hexp-reli ent
ao se hexp-reli ent
ao hcmdi sen
ao hcmdi
s
ao:
hcmdi
se

hexp-reli

hexp-reli

se

hcmdi

ent
ao

ent
ao

hcmdi

sen
ao

hcmdi

e:
hcmdi
se

hexp-reli

hcmdi

ent
ao

se

hexp-reli

sen
ao

ent
ao

hcmdi

hcmdi

Para eliminar a ambig


uidade favorecendo a interpretacao relativa `a primeira AD acima,
pode-se substituir as regras por:
hcmdi se1 | se2

hse1i sehexp-reli ent


ao hcmdi sen
ao hcmdi |
houtrocmdi
92

hse2i sehexp-reli ent


ao hcmdi |
sehexp-reli ent
ao hse1i sen
ao hse2i

houtrocmdi outros. . .

8. Vari
aveis anul
aveis: A = {A, B, P }. A GLC resultante e:
P BP A | P A | BA | BP | B | A |
A aA | a

B Bba | ba

(P P n
ao foi acrescida por motivos obvios.)
9.

a) Conjuntos enc(X): enc(P ) = {P, A, B, C}, enc(A) = {A, B, C}, enc(B) = {B} e
enc(C) = {C}. A GLC resultante e:
P
A
B
C

BC | bB | b | cC | c
bB | b | cC | c
bB | b
cC | c

b) A vari
avel A e in
util, visto que n
ao existem u e v tais tais que P uAv.
10.

a) Para FNC: se n = 0, o tamanho e 1, correspondendo `a derivacao P . Se n 1,


o tamanho e 2n 1. Segue demonstracao:
O tamanho e o n
umero de vertices internos da arvore de derivacao. Uma subAD S
constituda apenas pelos vertices internos e estritamente bin
aria e tem n folhas (que
s
ao os pais dos n terminais). Ser
a provado por inducao sobre n que S contem 2n 1
vertices. Se S contem apenas uma folha, contem apenas um vertice; e 2 1 1 = 1.
Seja n 1, e suponha, como hip
otese de inducao que se S contem n folhas, ent
ao
contem 2n 1 vertices. Entao, para S com n + 1 folhas, se forem retiradas duas
folhas filhas do mesmo pai (o que e possvel, visto que S e estritamente bin
aria e tem
mais de um vertice), a AD resultante tem n folhas e, pela hip
otese de inducao, tem
2n 1 vertices. Recolocando-se as duas folhas, ve-se que S tem 2n 1 + 2 vertices,
ou seja, 2(n + 1) 1 vertices.
Para FNG: se n = 0, o tamanho e 1, correspondendo `a derivacao P . Se n 1,
o tamanho e n, pois cada passo de derivacao gera exatamente mais um terminal.
b) Para FNC: se n = 0, a profundidade da AD e 1, correspondendo `a derivacao P .
Se n 1, a profundidade m
axima da AD e n, pois a AD de profundidade m
axima
e conseguida de forma que em cada nvel da AD, exceto o 0 (da raiz) e o u
ltimo
(rotulado com um terminal), existem exatamente dois vertices, um rotulado com um
terminal, e o outro com um n
ao terminal, filhos do mesmo pai. (O caso em que todos
os filhos da esquerda s
ao sempre terminais e suficiente para provar o resultado.)
axima ocorre quando a gram
atica e
Para FNG: o mesmo que para FNC. A AD m
regular (a gerac
ao de cada terminal provoca um aumento de nvel).
c) Para FNC: se n = 0, a profundidade da AD e 1, correspondendo `a derivacao P .
Se n 1, a profundidade mnima da AD e log2 n + 1, pois a profundidade de uma
arvore estritamente bin
aria de n folhas em que o pen
ultimo nvel est
a completo e
log2 n; e a profundidade mnima da AD e um a mais.
a
Para FNG: se n = 0 ou n = 1, a profundidade da AD e 1, correspondendo `
derivac
ao P ou P a, a . Se n 2, a profundidade mnima da AD e 2,
93

correspondendo a uma derivacao da forma


n1

P a1 X2 X3 . . . Xn a1 a2 a3 . . . an
usando-se regras das formas P a1 X2 X3 . . . Xn e regras Xi ai .
11. Eliminando-se a recursao direta a` esquerda, obtem-se:
E aZ | a

Z +EZ | EZ | +E | E

12. Algoritmo para obtenc


ao de GLC na FNG:

Entrada: (1) uma GLC G = (V, , R, P ).


Sada: uma GLC G equivalente a G, na FNG.
P uma vari
avel que n
ao pertence a V ;
se P ocorre do lado direito de alguma regra ent
ao
V V {P }; R R {P P };
sen
ao
V V ; R R; P P
fimse;
elimine regras (algoritmo da Figura 3.22);
elimine regras unit
arias (algoritmo da Figura 3.24);
/* aqui pode-se eliminar vari
aveis in
uteis */
Numerar as vari
veis de 1 a |V |, sendo 1 o n
umero de P ;
/* o n
umero de uma vari
vel X ser
a designado #X */
para cada A V na ordem de numerac
ao fa
ca
enquanto existe regra A By R tal que #B #A fa
ca
se #B < #A ent
ao
aplique Teorema 24, substituindo B, atualizando R
sen
ao
aplique Teorema 23, atualizando R e V
fimse
fimenquanto
fimpara;
aplique o teorema 24 na ordem decrescente de numerac
ao das vari
veis V {P };
aplique o teorema 24 para as regras introduzidas na aplicac
ao do Teorema 23;
providencie a troca de terminais por vari
aveis no lado direito das regras;
retorne G = (V , , R , P ).

13. Eliminando-se regras , obtem-se:


P ABC | AB | BC | B

A aAb | ab

B bB | b

C bCc | bc

Eliminando-se regras de cadeias, obtem-se:


P ABC | AB | BC | bB | b

A aAb | ab

B bB | b

C bCc | bc
94

Aplicando-se o Teorema 24 nas regras P :


P aAbBC | abBC | aAbB | abB | bBC | bC | bB | b
A aAb | ab

B bB | b

C bCc | bc

Trocando-se terminais por vari


aveis:
P aAY BC | aY BC | aAY B | aY B | bBC | bC | bB | b
A aAY | aY
B bB | b

C bCZ | bZ

Y b

Z c

Um APN para a linguagem e ({i, f }, , {P, A, B, C, Y, Z}, , {i}, {f }), em que consta
das transic
oes:
(i, , ) = {[f, P ]};

(f, a, P ) = {[f, AY BC], [f, Y BC], [f, AY B], [f, Y B]};


(f, b, P ) = {[f, BC], [f, C], [f, B], [f, ]};

(f, a, A) = {[f, AY ], [f, Y ]};


(f, b, B) = {[f, B], [f, ]};

(f, b, C) = {[f, CZ], [f, Z]};

(f, b, Y ) = {[f, ]};


(f, b, Z) = {[f, ]};

14. Seja uma GLC qualquer G = (V, , R, P ). Um AP que reconhece L(G) e ({i, f }, , V
, , {i}, {f }), onde e assim determinada:
(i, , ) = [f, P ];

para cada X w R, (f, , X) = [f, w];

para cada a , (f, a, a) = [f, ].


15. Uma gram
atica com duas vari
aveis:
hi, , ii | (hi, 0, ii

hi, 0, ii (hi, 0, iihi, 0, ii


hi, 0, ii )hi, , ii

16. A gram
atica, ja sem vari
aveis in
uteis:
P he0 , , e0 i | he0 , , e1 i
he0 , , e0 i

he0 , , e1 i 0he0 , A, e1 i

he0 , A, e1 i 0he0 , A, e1 ihe1 , A, e1 i | 1he1 , , e1 i


95

he1 , A, e1 i 1he1 , , e1 i

he1 , , e1 i

17. Algoritmo para obter uma GLC a partir de um AP:

Entrada: um AP M = (E, , , , I, F ), I 6= , F 6= .
Sada: uma GLC (V, , R, P ) que aceita L(M ).
R {P [i, , f ] | i I e f F };
N {[i, , f ] | i I e f F };
V {P };
repita
[e, X, d] uma vari
avel em N ;
N N {[e, X, d]};
V V {[e, X, d]};
se e = d e X = ent
ao
R R {[e, X, d] }
fimse; se [e , z] (e, a, X), a {} e X {} ent
ao
se z = ent
ao
R R {[e, X, d] a[e , , d]};
N N ({[e , , d]} V )
sen
ao
seja z = Y1 Y2 . . . Yn , n 1;
para cada d1 , d2 , . . . , dn1 ) E n1 fa
ca
R R {[e, X, d] a[e , Y1 , d1 ][d1 , Y2 , d2 ] . . . [dn1 , Yn , d]};
N N ({[e , Y1 , d1 ], [d1 , Y2 , d2 ], . . . , [dn1 , Yn , d]} V )
fimpara
fimse
fimse;
se [e , z] (e, a, ), a {} e X 6= ent
ao
se z = ent
ao
R R {[e, X, d] a[e , X, d]};
N N ({[e , X, d]} V )
sen
ao
seja z = Y1 Y2 . . . Yn , n 1;
para cada d1 , d2 , . . . , dn ) E n fa
ca
R R {[e, X, d] a[e , Y1 , d1 ] . . . [dn1 , Yn , dn ][dn , X, d]};
N N ({[e , Y1 , d1 ], . . . , [dn1 , Yn , dn ], [dn , X, d]} V )
fimpara
fimse
fimse;
at
e N = ;
retorne (V, , R, P ).

18. Ser
a usado o algoritmo da questao anterior. Imediatamente antes do comando repita
tem-se:
V = {P }

N = {[0, , 1]}

R = {P [0, , 1]}
Ao atingir o final do repita pela primeira vez:
V = {P, [0, , 1]}
N = {[0, A, 1]}

R={

P
[0, , 1]

[0, , 1],
a[0, A, 1]}
96

Ao atingir o final do repita pela segunda vez:


V = {P, [0, , 1], [0, A, 1]}
N = {[1, B, 1], [0, A, 0], [1, A, 1]}
R={

P
[0, , 1]
[0, A, 1]

[0, , 1],
a[0, A, 1],
b[1, B, 1] |
a[0, A, 0][0, A, 1] |
a[0, A, 1][1, A, 1]}

A vari
avel [0, A, 0] e in
util, pois e impossvel, no AP, partir do estado 0 com A na pilha,
a eliminada de N
ler uma palavra e voltar ao estado 0, com a pilha o vazia. Assim, ela ser
e de R, embora o algoritmo n
ao faca isso, obtendo-se:
V = {P, [0, , 1], [0, A, 1]}
N = {[1, B, 1], [1, A, 1]}
R={

P
[0, , 1]
[0, A, 1]

[0, , 1],
a[0, A, 1],
b[1, B, 1] |
a[0, A, 1][1, A, 1]}

Com tal atualizac


ao, ao atingir o final do repita pela terceira vez:
V = {P, [0, , 1], [0, A, 1], [1, B, 1]}
N = {[1, A, 1], [1, , 1]}
R={

P
[0, , 1]
[0, A, 1]

[1, B, 1]

[0, , 1],
a[0, A, 1],
b[1, B, 1] |
a[0, A, 1][1, A, 1],
c[1, , 1]}

Ao atingir o final do repita pela quarta vez:


V = {P, [0, , 1], [0, A, 1], [1, B, 1], [1, A, 1]}
N = {[1, , 1]}
R={

P
[0, , 1]
[0, A, 1]

[1, B, 1]
[1, A, 1]

[0, , 1],
a[0, A, 1],
b[1, B, 1] |
a[0, A, 1][1, A, 1],
c[1, , 1],
b[1, B, 1]}

Ao final do repita pela quinta vez:


V = {P, [0, , 1], [0, A, 1], [1, B, 1], [1, A, 1], [1, , 1]}
N = {}
97

R={

P
[0, , 1]
[0, A, 1]

[1, B, 1]
[1, A, 1]
[1, , 1]

[0, , 1],
a[0, A, 1],
b[1, B, 1] |
a[0, A, 1][1, A, 1],
c[1, , 1],
b[1, B, 1],
}

19. Como sugerido no final do Teorema 27, ser


a provado:

[e, X, dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ] se, e somente se, [e, w, X] [d0 , , Y1 . . . Yn ]


para todo e, d0 , . . . dn E, X {}, Y1 , . . . Yn e w .

Assim, sejam e, d0 , . . . dn E, X {}, Y1 , . . . Yn e w arbitrarios. Primeiro,


ser
a mostrado por induc
ao sobre k que

se [e, X, dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ] entao [e, w, X] [d0 , , Y1 . . . Yn ].


0

Inicialmente, suponha que [e, X, dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ]. Segue-se que w = ,


0

n = 1, X = Y1 , d0 = e e, portanto, [e, , X] [e, , X], como requerido. Seja k 0.


Suponha, como hip
otese de inducao, que

se [e, X, dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ] entao [e, w, X] [d0 , , Y1 . . . Yn ].


k+1

Suponha que [e, X, dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ]. Considerando apenas derivacoes


mais `a esquerda (n
ao h
a perda de generalidade), tem-se que:
k

[e, X, dn ] x[c, Z, di ][di , Yi+1 , di+1 ] [dn1 , Yn , dn ] w[d0 , Y1 , d1 ] [dn1 , Yn , dn ]


sendo que w = xa e a u
ltima regra aplicada foi da forma:
[c, Z, di ] a[d0 , Y1 , d1 ] [di1 , Yi , di ].

Pela hip
otese de induc
ao, [e, x, X] [c, , ZYi+1 . . . Yn ]. Considera-se cada um dos formatos possveis para a u
ltima regra aplicada:
0

[c, , c] . Neste caso, tem-se: a = , Z = , i = 0 e c = d0 . Logo, [c, , ZYi+1 . . . Yn ]


[d0 , , Y1 . . . Yn ] e, portanto,

[e, w, X] [c, , ZYi+1 . . . Yn ] [d0 , , Y1 . . . Yn ].


.
[c, Z, d] a[e , , d]. Neste caso, tem-se: i = 1, d0 = e , d1 = d e Y1 = . E, como
tal regra surge devido `
a transicao [e , ] (c, a, Z)], segue-se que [c, a, Z] [e , , ]
e, portanto,

[e, w, X] [c, a, ZYi+1 . . . Yn ] [d0 , , Y1 . . . Yn ].


.
98

Regra [e, X, dn ] a[e , Y1 , d1 ] . . . [dn1 , Yn , dn ]. Aqui tem-se: w = a e d0 = e .

E, como tal regra surge devido `a transicao [e , Y1 . . . Yn ] (e, a, X)], [e, a, X]


[e , , Y1 . . . Yn ].

Regra [e, Z, d] a[e , Z, d], Z . Aqui tem-se: w = a, n = 1, d0 = e , d1 = d


e Y1 = Z. E, como tal regra surge devido `a transicao [e , ] (e, a, )], [e, a, Z]
[e , , Z].
Regra [e, Z, cm+1 ] a[e , Y1 , c1 ] . . . [cm1 , Ym , cm ][cm , Z, cm+1 ]. Aqui tem-se: w = a,
d0 = e , ci = di para i = 1, . . . , m, n = m + 1 e Yn = Z. E, como tal regra surge

devido `
a transic
ao [e , Y1 . . . Ym ] (e, a, )], [e, a, Z] [e , , Y1 . . . Ym Z].

3.5
1.

Linguagens Livres do Contexto: Propriedades


a) Seja L = {w {0, 1} | w tem n
umero par de 0s}. Seja uma palavra arbitraria z L
de pelo menos dois smbolos. Ha dois casos a considerar:
Caso 1 : z n
ao contem 0s. Entao, tome u = v = w = y = e x = z. Isso satisfaz as
4 condic
oes do lema.
Caso 2 : z contem 0s. Entao, tome u = 1m , sendo m o n
umero de 1s antes do
primeiro 0, v = 0, w = 1n , sendo n o n
umero de 1s entre o primeiro e o segundo 0,
x = 0 e y contendo o resto de z. Isso satisfaz as 4 condicoes do lema.
Conclusao: L satisfaz o LB para LLCs.
b) Seja L = {w {0, 1} | w tem n
umero igual de 0s e1s}. Seja uma palavra arbitraria
z L de pelo menos dois smbolos. Tal palavra contem pelo menos um 0 e um 1 e e
possvel fazer z = u0w1y (no caso, v = 0 e x = 1) ou z = u1w0y (no caso, v = 1 e
x = 0), sendo u, v, w, x e y como no LB. Em qualquer caso, as 4 condicoes do lema
s
ao satisfeitas. Conclusao: L satisfaz o LB para LLCs.

2.

a) Suponha que L = {an | n 0} e LLC. Seja k a constante do LB e z = ak . Sejam


u, v, w, x e y tais que uvwxy = z, |vx| > 0 e |vwx| k. Neste caso,
|uv 2 wx2 y| > k2 , pois |vx| > 0; e
|uv 2 wx2 y| = |z| + |vx| k2 + k, ja que |vwx| k, e por sua vez k2 + k <
k2 + 2k + 1 = (k + 1)2 ; ou seja, |uv 2 wx2 y| < (k + 1)2 .

Como 0 < |uv 2 wx2 y| < (k + 1)2 , o n


umero de smbolos de uv 2 wx2 y n
ao e quadrado
2
2
perfeito e, assim, uv wx y 6 L, contradizendo o LB. Logo, L n
ao e LL

b) Suponha que L = {an b2n an | n 0} e LLC. Seja k a constante do LB e z = ak b2k ak .


Sejam u, v, w, x e y tais que uvwxy = z, |vx| > 0 e |vwx| k. Tem-se dois casos a
considerar:

(a) vx contem algum a do prefixo de n as. Entao, como |vwx| k, uv 0 wx0 y e da


forma akp b2kq ak , em que 1 p k (pois |vx| > 0) e 0 q < k. Logo,
uv 0 wx0 y 6 L.
(b) vx n
ao contem a do prefixo de n as. Entao, como |vwx| k, uv 0 wx0 y e da
forma ak b2kq akp , em que 0 p k, 0 q k e p + q > 0 (pois |vx| > 0).
Logo, uv 0 wx0 y 6 L.

Como 0 < |uv 0 wx0 y| 6 L em qualquer caso, contradiz-se o LB. Logo, L n


ao e LLC.

c) Suponha que L = {an bk cn dk | k, n > 0} e LLC. Seja k a constante do LB e z =


ak bk ck dk . Sejam u, v, w, x e y tais que uvwxy = z, |vx| > 0 e |vwx| k. Pelo LB,
uv i wxi y L para todo i 0. Como |vx| > 0, tem-se 4 casos a considerar:
99

1.
2.
3.
4.

vx
vx
vx
vx

contem
contem
contem
contem

as.
bs.
cs.
ds.

Como
Como
Como
Como

|vwx| k,
|vwx| k,
|vwx| k,
|vwx| k,

n
ao
n
ao
n
ao
n
ao

h
a
h
a
h
a
h
a

cs
ds
as
bs

em
em
em
em

vx.
vx.
vx.
vx.

Assim,
Assim,
Assim,
Assim,

uv 2 wx2 y
uv 2 wx2 y
uv 2 wx2 y
uv 2 wx2 y

Contradic
ao. Portanto, L n
ao e LLC.
3.

6 L.

6 L.
6 L.
6 L.

a) L1 e LLC. Uma GLC para L1 :


P aP b | A | B | bXa
A aA | a
B aB | b
X aX | bX |

b) L1 L2 e LLC, pois L1 e LLC e L2 e regular.

c) Como L2 e regular, L2 e regular. E como L1 e LLC, L1 L2 e LLC.

4. Nao. Seja X uma linguagem qualquer n


ao LLC sobre o alfabeto . X e e LLC.
5.

LLC. Uma GLC para a linguagem:


a) E
P aP bP | bP aP | cP |

b) Seja L a linguagem em questao. Suponha que L seja LLC. Entao:


L {a} {b} {c} = {an bn cn | n 0}
Como as LLCs s
ao fechadas sob interseccao com linguagens regulares, tem-se uma
contradic
ao, visto que {an bn cn | n 0} n
ao e LLC. Portanto, L n
ao e LLC.

c) Seja L a linguagem em questao. Suponha que L seja LLC. Entao:


2

L {c} = {cn | n 0}
Como as LLCs s
ao fechadas sob interseccao com linguagens regulares, tem-se uma
2
ao e LLC. Portanto, L n
ao e LLC.
contradic
ao, visto que {cn | n 0} n
6. Seja L uma LLC qualquer e G = (V, , R, P ) uma GLC que a reconhece. A GLC G =
(V, , R , P ), onde R = {X v R | X v R} reconhece LR . Isto segue do fato
n
que para todo n 0 e toda forma sentencial u (V ) , P G u se, e somente se,
n
n
n
a mostrado por inducao sobre n, que se P G u entao P G uR para
P G uR . Ser
todo u (V ) . A demonstracao da recproca pode ser feita de forma an
aloga. Para
0
0
n = 0, tem-se, por definic
ao, que o u
nico u tal que P G u e u = P ; e P G P = P R .
n
Seja n um n
umero natural arbitrario e suponha, como hip
otese de inducao, que se P G u
n+1
n
entao P G uR para todo u (V ) . Suponha que P G z. Basta, entao, mostrar
n+1
ao, existem x, y (V ) e Y s R tais que:
que P G z R . Por definc
n

P G xY y G xsy.
n

Pela hip
otese de induc
ao, P G (xY y)R = y R Y xR . E como, por definicao de G ,
Y sR R , segue-se que:
n

P G y R Y xR G y R sR xR = (xsy)R = z R .
n+1

Portanto, P G z R , como requerido.


100

7. Suponha que L e uma LLC e R uma linguagem regular. Como as linguagens regulares s
ao
fechadas sob complementac
ao, R e regular; e como as LLCs s
ao fechadas sob intersec
ao
com linguagens regulares, L R e LLC. Mas L R = L R. Logo, se L e uma LLC e R
uma linguagem regular, ent
ao L R e uma LLC.
8. Seja L uma LLC arbitraria de alfabeto . Como as LLCs n
ao s
ao fechadas sob complementac
ao, L = L pode n
ao ser LLC. Mas e LLC! Portanto, as LLCs n
ao s
ao
fechadas sob diferenca.
9.

Seja h : um homomorfismo e G uma GLC na FNC para uma certa LLC


L sobre . Para obter uma GLC G que aceite h(L) sobre , basta substituir cada
regra de G da forma X a, onde a e um terminal, por X h(a). Pode-se provar
por induc
ao sobre o tamanho das derivacoes que w e derivavel em G se, e somente
se, h(w) e deriv
avel em G .
Seja s : P( ) {} uma substituicao e G uma GLC na FNC para uma certa
LLC L sobre . Como s(a), para a , e uma linguagem regular, seja Gs(a) uma
gram
atica regular que gere s(a) e que n
ao contenha vari
aveis em comum com G nem
com Gs(b) para b 6= a. Para obter uma GLC G que aceite s(L) sobre , basta
substituir cada regra de G da forma X a, onde a e um terminal, por X Pa ,
onde Pa e o smbolo de partida de Gs(a), e acrescentar `as suas regras as de todas as
gram
aticas Gs(a). Pode-se provar por inducao sobre o tamanho das derivacoes que
w e deriv
avel em G se, e somente se, as palavras em s(w) s
ao derivaveis em G .

10. APD para L1 = {w {0, 1} | w tem mais 1s que 0s} com reconhecimento por estado
final:
0, /X
1, X/

1, /F

1, F/
=

m0
0, /F

m1
0, F/

0, X/
1, /X

AFD para L2 = {w {0, 1} | |w| 2 e o pen


ultimo smbolo de w e 1}:
0

01

1
00

11

1
0

10

Um APD para L1 L2 que reconhece por estado final usando o metodo requerido seria
({=, m0, m1} {00, 01, 10, 11}, {0, 1}, {F, X}, , {[=, 00]}, {[m1, 10], [m1, 11]})
em que e dada por:
([=, 00], 0, ) = [[m0, 00], F],
([=, 00], 1, ) = [[m1, 01], F],
([=, 01], 0, ) = [[m0, 10], F],
([=, 01], 1, ) = [[m1, 11], F],
([=, 10], 0, ) = [[m0, 00], F],
101

([=, 10], 1, ) = [[m1, 01], F],


([=, 11], 0, ) = [[m0, 10], F],
([=, 11], 1, ) = [[m1, 11], F],
([m0, 00], 0, ) = [[m0, 00], X],
([m0, 00], 1, X) = [[m0, 01], ],
([m0, 00], 1, F) = [[=, 01], ],
e assim por diante. . .
11. Seja k a constante do LB. Ser
a mostrado que L(M ) e infinita se, e somente se, M aceita
alguma palavra de tamanho k a 2k 1. Assim, para testar se L(M ) e infinita, basta
verificar se M aceita alguma palavra de tamanho k a 2k 1; se aceita, L(M ) e infinita,
caso contr
ario e finita.
() Se M aceita alguma palavra z de tamanho k a 2k 1, pelo LB existem u, v, w, x
e y tais z = uvwxy, |vx| > 0, |vwx| k e uv i wxi y L(M ) i 0. Portanto, L(M ) e
infinita.
() Suponha que L(M ) e infinita. Seja z a menor palavra tal que |z| k em L(M ).
Suponha que |z| 2k. Pelo LB, existem u, v, w, x e y tais w = uvwxy, |vx| > 0,
|vwx| k e uv i wxi y L(M ) i 0. Neste caso, uwy L(M ); mas, como |z| 2k,
|uwy| k, o que contradiz a suposicao de que z e a menor palavra de L(M ) tal que
|z| k. Portanto, |z| < 2k e, assim, M aceita alguma palavra de tamanho k a 2k 1.

3.6
1.

Exerccios
a) Um APD para {0n 1n | n 0}{0n 1n | n 0}:
0, /X

0, /Y

1, X/
0, /Y

1, X/

1, Y/

b) Um APD para {0n 1n 2k | n, k 0}:


0, /X

1, X/
1, X/

2, /

2, /
2, /

c) Um APN para {0n 1n 0k | n, k 0}:


0, /X
i

0, /

1, X/
0, /

1, X/
0, /

102

1, Y/

Nao h
a como saber, no estado i, se uma seq
uencia de 0s ser
a seguida de 1s (caso em
que n > 0 e se deve contar os 0s) ou n
ao (caso em que n = 0 e k > 0 e n
ao se deve
contar os 0s). No entanto, existe APD para esta linguagem que reconhece por estado
final.
d) Um APD para {0n 1n 0k | n 1 e k 0}:
0, /X

0, /

1, X/
1, X/

0, /

e) Um APD para {w {0, 1} | w tem algum prefixo com mais 1s que 0s}:
1, F/

0, /X
1, X/

m0

1, /

0, /F

m1

0, /
1, /

f ) Um APN para {w {0, 1} | w tem algum sufixo com mais 1s que 0s}:
0, /
1, /

1, /F

1, /

u
0, F/

1, /X
0, X/

Nao h
a como saber, no estado i, se um 1 lido e o u
ltimo a partir do qual o n
umero
de 0s e 1s e sempre o mesmo (caso em que deve ser tomada a transicao para o estado
u) ou n
ao (caso em que deve ser tomado o loop).

2.

a) Um APD para EB:


(, /A
, A/X

V, /
F, /

), X/

&, A/X
|, A/X
->, A/X
<->, A/X

b) Segue um avaliador de EBs baseado no APD anterior. Supoe-se a existencia de


func
oes n
ao, e, ou, se e sse para as operacoes logicas obvias.
103

(, /A
, A/
, /A

), n /n
ao(n)
), n2 &n1 /e(n1 , n2 )
), n2 | n1 /ou(n1 , n2 )
), n2 ->n1 /se(n1 , n2 )
), n2 <->n1 /sse(n1 , n2 )
V, /V
F, /F
#, nA/n
&, nA/&n
|, nA/ | n
->, nA/->n
<->, nA/<->n

3. Sejam dois APNs M1 = (E1 , 1 , 1 , 1 , I1 , F1 ) e M1 = (E2 , 2 , 2 , 2 , I2 , F2 ) tais que


E1 E2 = e 1 2 = , sem perda de generalidade, visto que estados podem ser
renomeados sem alterar a linguagem aceita.
a) APN para L(M1 ) L(M2 ): (E1 E2 , 1 2 , 1 2 , 1 2 , I1 I2 , F1 F2 ). Neste
caso, o fato que 1 2 = n
ao e relevante.

b) APN para L(M1 )L(M2 ): (E1 E2 , 1 2 , 1 2 , 3 , I1 , F2 ), em que 3 consta das


transic
oes 1 e 2 mais as transicoes 3 (e, , ) = {[e , ] | e I2 } para cada e F1 .
Neste caso, o fato que 1 2 = e fundamental.
c) APN para L(M1 ) : (E1 {i}, 1 , 1 {#}, , {i}, {i}), em que i 6 E1 , # 6 1 e
consta de 1 mais as transicoes:
(i, , ) = {[e, #] | e I1 }, e
(e, , #) = {[i, ]} para cada e F1 .
4. Seja um AP M = (E, , , , I, F ) cuja pilha pode conter, no m
aximo, n smbolos. Um
AFN que reconhece L(M ) e M = (E , , , I , F ), onde:
E = E {z | |z| n};

I = I {};

F = F {}; e

para cada transic


ao de M , [e , z] (e, a, X), tem-se transicoes em M da forma

[e , zy] ([e, Xy], a) para cada y tal que |Xy| n e |zy| n; estas s
ao as
u
nicas transic
oes de M .
5. Seja um AFN M = (E, , , I, F ). Um APN de dois estados que reconhece L(M ) seria
P = ({i, f }, , E, P , {i}, {f }), sendo as transicoes constitudas de:
P (i, , ) = {[e, f ] | e I};

[f, e ] P (f, a, e) para todo e (e, a); e

[f, ] P (f, , e) para todo e F .

6. S
o h
a fechamento com relac
ao a complementacao. Seguem ontra-exemplos para os outros
casos:
104

a) Uniao: {an bn | n 0} e {an b2n | n 0} s


ao reconhecveis por APDs por estado final,
mas sua uni
ao n
ao e.
b) Intersec
ao: {an bn ck | n, k 0} e {an bk ck | n, k 0} s
ao reconhecveis por APDs por
estado final, mas sua intersecao n
ao e.
7. Seja um APN M = (E, , , , I, F ). Um APN M tal que LV (M ) = L(M ) e M =
(E {i, f }, , {#}, , {i}), em que i, f 6 E, # 6 e consta das transicoe de mais:
(i, , ) = {[e, #] | e I};

(e, , #) = {[f, ]} para todo e F .


Agora, seja um APN M = (E, , , , I). Um APN M tal que L(M ) = LV (M ) e
M = (E, , , , I, E).
8. Seja um APN M = (E, , , , I, F ). Um APN M tal que LF (M ) = L(M ) e M =
(E {i, f }, , {#}, , {i}, {f }), em que i, f 6 E, # 6 e consta das transicoe de
mais:
(i, , ) = {[e, #] | e I};

(e, , #) = {[f, ]} para todo e F .


9. APD sem transic
oes .
10. Seja M = (E, , , , i, F ) um APD sem transicoes . Um APD M que aceita LF (M ){#}
por pilha vazia e M = (E {i , v}, {#}, {$}, , i ), em que $ 6 , i 6 E e
consta das transic
oe de mais:
(i , , ) = [i, $];

para cada e F , (e, #, ) = [v, ];

(v, , X) = [v, ] para todo X ;

(v, , $) = [v, ].

Observe que, como M n


ao tem trasicoes , uma transicao (e, #, ) = [v, ] n
ao e compatvel com nenhuma outra que emane de e.
11.

a) {an bn cn | n 0}.
a, /X, #/#
, /#, /#

b, X/, /X

b, X/, /X

c, #/#, X/

, #/#, /

, #/, #/

b) {an bn cn dn | n 0}.
a, /X, #/#
, /#, /#

b, X/, /X

b, X/, /X

c, /X, X/

, #/#, /

d, X/, #/#

, /, #/#

, #/, #/

12. Um aut
omato de pilha com fita bidirecional e uma octupla (E, , , h, i, , I, F ), em que:
105

E, , e F s
ao como em APs;

, a func
ao de transic
ao, e uma funcao parcial de E ( {}) ( {}) para D,
sendo D constitudo dos subconjuntos finitos de E {D, E, I};

I, um subconjunto de E, e o conjunto de estados iniciais.

As opc
oes D, E e I especificam que o cabecote de leitura e movido para a direita, esquerda
ou fica im
ovel, respectivamente. Elas ser
ao escritas por u
ltimo, separadas do restante do
r
otulo da transic
ao por uma vrgula.
a) {an bn cn | n 0}.
a, /X, D
, /#, I

b, X/, D

b, #/#, E
, #/#, E

b, X/, D

b, /X, D

a, #/#, D
c, X/, D
i, #/, I
c, X/, D

b) {an bn cn dn | n 0}.
a, /X, D
, /#, I

b, X/, D

b, #/#, E
, #/#, E

b, X/, D

b, /X, D

a, #/#, D
c, X/, D

i, #/, I
13.

a)

{am bn c2(m+n) | m, n
P aP cc | B
B bBcc |

b, #/#, D

d, X/, D
c, /X, D

d, X/, D
0}.

, #/#, E

c, #/#, E

c, X/, D

b) {w {a, b} | o n
umero de as em w e o dobro do n
umero de bs}.
P aP aP bP | aP bP aP | bP aP aP |

c) {w {a, b} | o n
umero de as em w e diferente do n
umero de bs}.
P A|B
A aA | IA | aI
B bB | IB | bI
I aIbI | bIaI |

Observe que A (a + I) aI e I w, em que w pode ser qualquer palavra com


n
umero igual de as e bs.
d) {am bn ck | n > m ou n > k}.
P XC | AY

106

X aXb | bX | b
Y bXc | Xc | c

C cC |

A aA |

e) {am bn ci | m + n > i}.


P aP c | bQc | aA | bB

Q bQc | bB

A aA | bB |
B bB |

f) {am bn cp dq | m + n p + q}.
P aP d | bQd | aRc | bSc | A | B

Q bQd | bSc | B

R aRc | bSc | A | B
S bSc | B

A aA | bB |
B bB |

g) {w {a, b} | w n
ao e da forma xx}.
P AB | BA | A | B

A XAX | a

B XBX | b
X a|b

14. Uma GLC tendo em vista a definicao original:


E (E + E) | (EE) | E | a | b
Uma GLC (n
ao ambigua) para ERs com as regras de precedencia usuais e parenteses `
a
vontade:
E E + T |T
T EF | F
F I | I
I (E) | a | b
15.

a) P AP B aAbP B aaAbbP B aabbP B aabbB aabbba

b) Arvore
de derivac
ao:
107

c) L(G) =

k0 {a

n bn | n

0}k {bn an | n > 0}k .

16. Sejam v1 , v2 , . . . , vn os vertices internos (ou seja, n


ao folhas) da AD, sendo v1 a raiz da
AD. Para 1 i n, seja n(vi ) o n
umero de vertices internos descendentes de vi , incluindo
o pr
oprio vi , e seja d(vi ) o n
umero de derivacoes que levam `a AD de raiz vi . O n
umero
de derivac
oes que levam `
a AD e:
d(v1 ) =

n(v1 )!
.
n(v1 ) n(v2 ) n(vn )

Assim, o n
umero de derivac
oes que levam `a AD da Figura 3.16 e 11!/(11.10.2.1.7.6.3.2.1.2.1) =
360.
Para provar o resultado anterior, veja que (a) se a AD tem apenas um vertice, v1 , d(v1 ) =
n(v1 ) = 1, e (b) se a AD tem mais de um vertice, sendo vf1 , vf2 , . . . , vfk os filhos da raiz
P
v1 , n(v1 ) = 1 + kj=1 n(vfj ), e
d(v1 ) =

Pk

j=1 n(vfj )

n(vf1 ), . . . , n(vfk )

k
Y

d(vfj ) =

j=1

k
Y
n(v1 )!

d(vfj ).
n(v1 ) n(vf1 )! . . . n(vfk )! j=1

O primeiro fator e o n
umero de intercalamentos dos vertices das subarvores, considerando,
temporariamente, os vertices de uma mesma subarvore como identicos. O segundo, d
a os
n
umeros de derivac
oes possveis levando em conta cada subarvore (para cada intercalamento possvel). Agora, o resultado pode ser provado por inducao forte sobre o n
umero
de vertices internos da AD.
17.

a) L(G) = {xyxR | x {a, b} e y {a}+ {b}+ }.

b) A palavra aabb tem duas DMEs:

P aAb aaAb aaAbb aabb e


P aAb aAbb aaAbb aabb.

Logo, G e ambgua.

c) Uma GLC n
ao ambgua equivalente:
P aP a | bP b | AB
A aA | a
B Bb | b
108

18. Ser
a mostrado que para todo x {a, b} , x L(G) se, e somente se, todo prefixo de x
tem no mnimo tantos as quantos bs. Seja x {a, b} .
n

() Ser
a mostrado, por induc
ao sobre n, que para todo n 1, se P x, entao todo
1
prefixo de x tem no mnimo tantos as quantos bs. Observe, inicialmente, que P x
apenas em um caso: aplicando-se a regra P para gerar x = ; e tem tantos as
quantos bs: zero. Agora, seja n 1 e suponha, como hip
otese de inducao, que para k n,
k
se P x, ent
ao todo prefixo de x tem no mnimo tantos as quantos bs. Uma derivac
ao
de n + 1 passos s
o pode ter duas formas, correspondendo `as aplicacoes das duas regras
recursivas:
n

1. P aP x (regra P aP ) ou
n

2. P aP bP x (regra P aP bP ).
n

No primeiro caso, x = ay e P y. Desta u


ltima, segue-se, pela hip
otese de inducao, que
todo prefixo de y tem no mnimo tantos as quantos bs; logo, como x = ay, todo prefixo
de x tem no mnimo tantos as quantos bs (na verdade, mais as que bs nesse caso). No
n
n
segundo caso, existem y1 e y2 tais que P 1 y1 , P 2 y2 , x = ay1 by2 e n1 + n2 = n. Pela
hip
otese de induc
ao, tanto em y1 , quanto em y2 , os prefixos tem no mnimo tantos as
quantos bs. Segue-se que os prefixos de ay1 tem mais as que bs, os prefixos de ay1 b tem
no mnimo tantos as quantos bs, e os prefixos de ay1 by2 = x tem no mnimo tantos as
quantos bs.
() Ser
a mostrado, por induc
ao sobre n, que para todo n e x tais que |x| = n, se todo
prefixo de x tem no mnimo tantos as quantos bs, entao x L(G). Para n = 0, apenas
x = e tal que |x| = 0; e L(G), pois P . Seja n 0 e suponha que para todo x
tal que |x| = k, para 0 k n, se todo prefixo de x tem no mnimo tantos as quantos bs,

entao x L(G), ou seja, P x. Seja, entao, um w arbitrario tal que |w| = n + 1 e todo
prefixo de w tenha no mnimo tantos as quantos bs. Basta mostrar que w L(G). Como
|w| > 0, e todo prefixo de w tem no mnimo tantos as quantos bs, w = ay para algum y
de n smbolos. Dois casos:
1. Todo prefixo de y tem no mnimo tantos as quantos bs.

Pela hip
otese de induc
ao, P y. Como G tem a regra P aP , segue-se que

P aP ay = w. Logo, w L(G).

2. Existe prefixo de y com menos as que bs.


Como todo prefixo de w = ay tem no mnimo tantos as quantos bs, deve existir b tal
que y = x1 bx2 , sendo que todo prefixo de x1 tem no mnimo tantos as quantos bs,
x1 b tem tantos as quantos bs e todo prefixo de x2 tem no mnimo tantos as quantos

bs. Pela hip


otese de induc
ao, P x1 e P x2 . Como G tem a regra P aP bP ,

segue-se que P aP bP ax1 bP ax1 bx2 = w. Logo, w L(G).


19. Seja G = (V, , R, P ) uma GLC sem smbolo de partida recursivo, na FNG, que gere a
linguagem. Um APN sem transicoes que aceita L(G) e M = ({i, f }, , V, , {i}, F ), em
que:
F = {i, f }, se P R, e F = {f }, se P 6 R;

(i, a, ) = {[f, y] | P ay R}}; e

para cada a e cada X V {P }, (f, a, X) = {[f, y] | X ay R}.


20. Seja uma GLC (V, , R, P ) na FNG. Se n
ao existir alguma regra da forma X aY1 Y2 . . . Yn
com n > 2, G ja est
a na forma pretendida. Se existir, basta fazer o seguinte:
109

1. Obter G = (V V , , R , P ), em que:

para cada regra da forma X aY1 Y2 . . . Yn com n 2, V contem n1 vari


aveis
novas;
R contem todas as regras de R com o lado direito com, no m
aximo, uma vari
avel
mais, para cada regra da forma X aY1 Y2 . . . Yn com n 2, n regras do tipo:
X aZ1
Z1 Y 1 Z2
Z2 Y 2 Z3
..
.
Zn1 Yn1 Yn
em que Z1 , . . . , Zn1 s
ao as n1 vari
aveis novas correspondentes `a regra original.

2. Por construc
ao, toda regra de G e de uma das formas:

P
X
X
X

,
a, com X V ,
aY , com X V e Y V V , ou
Y Z, com X V e Y V e Z V V .

Para cada regra desta u


ltima forma, aplicar o Teorema 24: substituir X Y Z
pelas regras
X a1 W1 Z | a2 W2 Z | . . . | ak Wk Z

sendo a1 W1 , a2 W2 , . . . , ak Wk os lados direitos de todas as regras Y . Observe que,


como Y V , ai e Wi V V {}.
21. Para a vari
avel de partida, o processo termina imediatamente, ja que ela tem o menor
n
umero. Assim, basta mostrar que o processo termina para uma vari
avel X de n
umero
n (#X = n), supondo, como hip
otese de inducao, que termina para vari
aveis de n
umero
menor que n. Seja, ent
ao, uma vari
avel X tal que #X = n. Se n
ao existe regra cujo lado
direito comeca com uma vari
avel de n
umero menor que ou igual a n, o processo termina
imediatamente. Caso haja regra da forma X Y w com #Y < n, ela e substituda,
aplicando-se o Teorema 24, por regras da forma X zw para cada regra Y z. Se z
comeca com vari
avel, o n
umero dela e maior que o de Y (pois #Y < n). Assim, repetindose a aplicac
ao do Teorema 24, sempre que preciso, obtem-se lados direitos de regras X
comecando com vari
aveis de n
umero cada vez maior , mas menor ou igual a n. Com isso,
s
o ir
ao restar, se restar, regras X Y w com #Y = n (ou seja X = Y ) ou #Y > n.
Se houver regra da forma X Y w com X = Y , aplica-se o Teorema 23. E o processo
termina, de qualquer maneira.
22.

a) Seja uma GLC G = (V, , R, P ). Para verificar se L(G) = :

determine I1 = {X V | X w para algum w } usando o algoritmo


da Figura 3.18(a);
se P 6 I1 ent
ao
retorne sim /* L(G) = */
sen
ao
retorne n
ao /* L(G) 6= */
fimse.
b) Seja uma GLC G = (V, , R, P ). Para verificar se L(G) e finita:
110

elimine toda vari


avel in
util de G, obtendo G = (V , , R , P ) como
mostrado na prova do Teorema 17;
se R tem regra recursiva (da forma X xXy) ent
ao
retorne n
ao /* L(G) e infinita */
sen
ao
retorne sim /* L(G) e finita*/
fimse.
23. S
ao dadas uma GLC G e uma palavra w. Sega G uma GLC equivalente a G em que
o smbolo de partida seja P , a u
nica transicao , se houver, seja P , e P n
ao seja
recursivo. Como cada regra de G (com excecao de P ) tem o lado direito maior
ou igual ao lado esquerdo e como P n
ao e recursivo, se u v entao |u| |v| (a menos
que u = P e v = ). Com isto, o n
umero de derivacoes da forma P z, em que
|z| = |w|, e nas quais n
ao ocorrem formas sentencias identicas e finito. Evidentemente,
se alguma dessas formas sentenciais z for w, w L(G); caso contr
ario, w 6 L(G).
24.

a) Uma GLC que gera L = {am bn ck | m 6= n ou n 6= k}:


P
X
Y
A
B
C

XC | AY
aXb | aA | bB
bY c | bB | cC
aA |
bB |
cC |

b) Suponha que L e uma LLC. Entao L{a} {b} {c} deve ser LLC. Mas L{a} {b} {c} =
ao e uma LLC.
{an bn cn | n 0}, que n
ao e LLC. Logo, L n
25.

a) L = {0m 1n 2k | m < n < k}. Suponha que L e LLC e seja k a constante do LB.
Seja z = 0k 1k+1 2k+2 . Como |z| > k, o LB diz que existem u, v, w, x e y tais que
z = uvwxy, |vwx| k, vx 6= e uv i wxi y L para todo i 0. Tem-se dois casos:
Caso 1: vx contem 0. Sendo |vwx| k, vx n
ao pode conter 2s; e sendo vx 6= , o
n
umero de 0s em uv 3 wx3 y ser
a maior ou igual ao de 2s. Logo, uv 3 wx3 y 6 L.
Caso 2: vx n
ao contem 0. Sendo vx 6= , vx contem 1 ou 2. Se vx contiver 1s, o
n
umero de 0s em uv 0 wx0 y ser
a maior ou igual ao de 1s; e se vx n
ao contiver 1s, o
0
0
0
n
umero de 1s em uv wx y ser
a maior ou igual ao de 2s. Logo, uv wx0 y 6 L.
Em qualquer caso, entra-se em contradicao com o LB. Portanto, L n
ao e LLC.
2

b) L = {0n 1n | n 0}. Suponha que L e LLC e seja k a constante do LB. Seja


2
z = 0k 1k . Como |z| > k, o LB diz que existem u, v, w, x e y tais que z = uvwxy,
|vwx| k, vx 6= e uv i wxi y L para todo i 0. Se vx 6= , |uv 2 wx2 y| > k + k2 .
E se |vwx| k, |vx| k e, assim, |uv 2 wx2 y| k + k2 + k = 2k + k2 < 2 + 3k + k 2 =
(k + 1) + (k + 1)2 . Portanto, k + k2 < |uv 2 wx2 y| < (k + 1) + (k + 1)2 e, logo, n
ao
existe n tal que |uv 2 wx2 y| = n + n2 . Assim, n
ao e possvel que uv 2 wx2 y seja da
2
forma 0n 1n , o que contradiz o LB.
c) L = {0n 1n 2k | n k 2n}. Suponha que L seja LLC e seja k a constante do LB.
Seja z = 0k 1k 22k . Como |z| > k, o LB diz que existem u, v, w, x e y tais que
z = uvwxy, |vwx| k, vx 6= e uv i wxi y L para todo i 0. Tem-se dois casos:
Caso 1: vx contem 0. Sendo |vwx| k, vx n
ao pode conter 2s; e sendo vx 6= , o
0
0
n
umero de 2s em uv wx y ser
a mais que o dobro do de 0s. Logo, uv 0 wx0 y 6 L.
111

Caso 2: vx n
ao contem 0. Sendo vx 6= , vx contem 1 ou 2. Se vx contiver 1s, o
n
umero de 1s em uv 2 wx2 y ser
a maior que de 0s; e se vx n
ao contiver 1, o n
umero de
2
2
2
2
2s em uv wx y ser
a mais que o dobro do de 0s. Logo, uv wx y 6 L.
Em qualquer caso, entra-se em contradicao com o LB. Portanto, L n
ao e LLC.
d) L = {ww | w {0, 1} }. Suponha que L seja LLC e seja k a constante do LB. Seja
z = 0k 10k 1. Como |z| > k, o LB diz que existem u, v, w, x e y tais que z = uvwxy,
|vwx| k, vx 6= e uv i wxi y L para todo i 0. Tem-se tres casos:
Caso 1: vx contem apenas 0s do prefixo de k 0s. Sendo vx 6= , se uv 2 wx2 y tem
n
umero par de smbolos, a primeira metade tem 0 no final e a segunda metade tem
1. Logo, uv 2 wx2 y n
ao e da forma ww e, assim, uv 2 wx2 y 6 L.
Caso 2: vx contem 1. Como |vwx| k, uv 0 wx0 y conter
a apenas um dos dois 1s
0
0
e, portanto, uv wx y 6 L (uma palavra com apenas um 1 nunca pode ser da forma
ww).
Caso 3: vx contem apenas 0s do sufixo de k 0s. Sendo vx 6= , se uv 2 wx2 y tem
n
umero par de smbolos, a primeira metade tem 0 no final e a segunda metade tem
1. Logo, uv 2 wx2 y n
ao e da forma ww e, assim, uv 2 wx2 y 6 L.
Em qualquer caso, entra-se em contradicao com o LB. Portanto, L n
ao e LLC.
e) L = {wwR w | w {0, 1} }. Suponha que L seja LLC e seja k a constante do LB.
Seja z = 0k 1102k 1. Como |z| > k, o LB diz que existem u, v, w, x e y tais que
z = uvwxy, |vwx| k, vx 6= e uv i wxi y L para todo i 0. Tem-se tres casos:
Caso 1: vx contem apenas 0s do prefixo de k 0s. Sendo vx 6= , se uv 2 wx2 y tem um
n
umero de smbolos m
ultiplo de 3, a primeira terca parte tem 0 no final e a terceira
tem 1 no final. Logo, uv 2 wx2 y 6 L.
Caso 2: vx contem 1. Como |vwx| k, uv 0 wx0 y conter
a apenas 1s dos primeiros dois
0
0
tercos ou ent
ao o 1 do final; logo, uv wx y tem um ou dois 1s e, assim, uv 0 wx0 y 6 L.
Caso 3: vx contem apenas 0s do terco final de z. Sendo vx 6= , se uv 2 wx2 y tem um
n
umero de smbolos m
ultiplo de 3, a segunda terca parte comeca com 0 e a terceira
tem 1 no final. Logo, uv 2 wx2 y 6 L.
Em qualquer caso, entra-se em contradicao com o LB. Portanto, L n
ao e LLC.
26. Igual ao Exerccio 13(g).
27.

a) Suponha que L e LLC e F e finita. Como F e finita, e regular. Como as linguagens


regulares s
ao fechadas sob complementacao, F e regular. A intersecao de LLC com
linguagem regular e LLC; assim, L F = L F e LLC. Conclusao: se L e uma LLC
e F e finita, ent
ao L F e LLC.
b) Suponha que L e LLC e R e regular. Como as linguagens regulares s
ao fechadas sob
complementac
ao, R e regular. A intersecao de LLC com linguagem regular e LLC;
assim, se L e uma LLC e R e regular, entao L R e LLC. Conclusao: se L e uma
LLC e R e regular, ent
ao L R e LLC.
c) Suponha que L n
ao e LLC e F e finita. Suponha que L F e LLC. Como L F e
finita, e LLC. Como as LLCs s
ao fechadas sob uni
ao, (L F ) (L F ) e LLC. Mas
(L F ) (L F ) = L, que n
ao e LLC. Contradicao! Logo se L n
ao e uma LLC e F
e finita, ent
ao L F n
ao e LLC.

d) Seja L n
ao LLC sobre o alfabeto . e regular e L = , uma linguagem
regular. Assim, se L n
ao e uma LLC e R e regular, L R pode ser LLC.
112

e) Suponha que L n
ao e LLC e F e finita. Suponha que L F e LLC. Como F L
e finita, e regular e, assim, F L tambem e regular. Mas, (L F ) (F L) =
ao e LLC. Contradicao! Logo se L n
ao e uma LLC e F
(L F ) F L = L e esta n
e finita, ent
ao L F n
ao e LLC.
f ) Seja L n
ao LLC sobre o alfabeto . e uma linguagem regular e L = .
Portanto, se L n
ao e uma LLC e R e regular, L R pode ser LLC.

113

114

Captulo 4

M
aquinas de Turing
4.1
1.

M
O que E
aquina de Turing
0/0 D
1/1 D

0/0 E
1/1 E

1/0 E
/ E
h/h D

h/h D

0/1 E
/0 E

/0 E

0/1 D

2.

a/a D
X/X D
/X E

a/ D

X/a D

X/a D

/ E

a/a D

X/X E
a/a E

/ D
/ E

/a E
a/a E

3.

0/0 D

h/h D
/a E

/ D

/ D

a/a D
4.

a) MT de 1 estado: ({0}, {a, b}, {h, , a, b}, h, , , 0, {0}), onde consta de: (0, b) =
[0, b, E], (0, ) = [0, , E], (0, h) = [0, h, D].
115

b) MT de 1 transic
ao: ({0, 1}, {a, b}, {h, , a, b}, h, , , 0, {1}), onde consta de: (0, a) =
[1, a, E].

5.

a/a D
b/b D

a/ D

/ E

2a

3a

a/ E

/ D

1
b/ D

2b

/ E

4
3b

a)
a/a D
a/a D

b)
a/a D
b/b D

/ E

a/a E
b/b E

b/ E
/ E

a/a D
b/b D

6.

/ E

a/ D

/ E

/ D

b/ E
a/a E
b/b E

c)
116

b/b D

b/ D

/ E

a/a D
b/b D
/ E

a/ D
/ D

a/a E
/ E

b/ E
a/a E
b/b E

d)

a/a D
X/X D
X/ D

a/ D

b/X E
a/a E
b/b E
X/X E

/ D
/ E

a/X E

b/ D
b/b D
X/X D

e)
X/X E
b/b E
a/a E
c/X E
a/a D
b/b D
X/X D
a/ D

/ D

b/b D
X/X D
d/d D

b/ D
X/X D
/ E

X/X D
/ E

/ E

b/ D
X/X D
/ E

117

/ D

d/ E
d/d E
X/X E
b/b E

f)
a/a D
B/B D

b/b D
C/C D
b/B D

a/ D

c/C E
C/C
/ D
b/b
B/B
/ E
a/a

B/ D

/ E

B/ D
C/ D

g)

E
E
E
E

a/a D
b/b D
/ E
a/X D,b/Y D

A/A E
B/B E
C/C E

a/A E,b/B E
X/X D,Y/Y D

a/a E
b/b E

A/ E

X/C D
/ E

A/A D,B/B D
C/C D Y/C D
A/A D
B/B D

B/ E

A/A E
B/B E
C/C E
7.
e0

a/a D

e1

a/a D

e2

a/a D

a/a D
ej+i1

8.

a/a D

ej
a/a D

ej+2

a)
118

a/a D

ej+1

h/h D

/ E
a/a E
b/b E

a/a D
b/b D
1

/ D

/ D

/# E

h/h D

X/ D
X/ D

a/a D
X/X D

X/X E
a/a E

a/ D

#/ E

b/X E
/ D

a/a D
a/a D
b/b D
/ d

#/ E

a/a E / D
b/b E
a/a E
b/b E
/ E

/# E

b) Se k = 1, a MT e ({0}, {a, b}, {a, b, h, }, h, , {}, 0, {0}}), que reconhece {a, b} .


MTs para k 2 podem ser assim construdas:
a/A D
b/B D

a0

a/a D
b/b D

a1

a/a D
b/b D

a2

ak
a/X E
b/Y E
a/a E
b/b E

a/a D,b/b D

a/a D
b/b D
bk

b1
..
.

X/a D
Y/b D

b0

/ E

A/A D
B/B D

h/h D

a/a E,b/b E
A/A E,B/B E

/ D
A/A E
B/B E

A/A E
B/B E

a/A D
b/B D

X/A D
Y/B D

A/ D

B/ D

X/A D
Y/B D
/ E

A/A D,B/B D
X/X D,Y/Y D

/ D
b/Y E

A/A D,B/B D
X/X D,Y/Y D

9. Seja um AFD M = (E, , , i, F ). Uma MT que reconhece L(M ) seria


M = (E, , {h, }, h, , , i, F ),
em que para todo par (e, a) E , (e, a) = [(e, a), a, D].
119

a/X E

X/X E,Y/Y E
A/A E,B/B E

10. Diagrama de estados de uma m


aquina de Turing para parenteses balanceados:
(/( D
X/X D

X/X E
(/X D

X/X E
/ E

h/h D

)/X E
11. Seja M = (E, , , h, , , i, F ) a MT original.
a) Se M reconhece por estado final, uma MT que reconhece L(M ) por parada em estado
final e: (E, , , h, , , i, F ), sendo como , mas com (e, a) indefinido para todo
(e, a) F .

b) Se M reconhece por parada, uma MT que reconhece L(M ) por estado final e: (E
{n}, , , h, , , i, {n}), sendo que n 6 E e e como , mas com o acrescimo das
transic
oes (e, a) = [n, a, D], para cada (e, a) tal que (e, a) e indefinido.
c) Se M reconhece por parada em estado final, uma MT que reconhece L(M ) por parada
e: (E {n}, , , h, , , i), sendo que n 6 E e e como , mas com o acrescimo
das transic
oes (e, a) = [n, a, D], para cada (e, a) (E F ) tal que (e, a) e
indefinido e (n, a) = [n, a, D], para cada a .

4.2

Algumas Varia
c
oes de M
aquinas de Turing

1. O loop com r
otulo / D (estado 4) representa 8 transicoes: 000/000 D, 001/001 D, 010/010
D, 011/011 D, 100/100 D, 101/101 D, 110/110 D e 111/111 D.
00 /00
01 /01
10 /10
11 /11
1

D
D
D
D

00 /000 E
01 /011 E
10 /101 E

/ E

h /h D
16

01 /010 E
10 /100 E
11 /111 E

11 /110 E

h /h D

00 /001 E
/001 E

/ D

/ E
15

h /h D

000/ D
/ E

111/ D
p

/000 E

13
/111 E

14

120

2.

X/X D
/X E

X/X E

/X D

0/0 D

0/0 D
X/X E

0/0 E

X/X D

0/0 E

X/X E

/X E

0/0 D
X/X D

X/X E
/X D

0/0 E

X/X E

X/X D

0/0 D

0/0 D

X/X D

3.
0/0 D,/X D
0/0 D,/X D

1/1 I,X/X E

1/1 I,/ E

0/0 D,/X D
0/0 D,X/X D

1/1 D,h/h D
0/0 D,X/X D

/ I,X/X I

4. Comecando pela transic


ao [b, 0, D] (a, 0), M reconhece as palavras de 0 + 01(0 + 1) , ja
que a ocorrencia de ou 1 faz M parar no estado final b, e a ocorrencia de 0 faz M entrar
em loop. Por outro lado, comecando pela transicao [d, 0, D] (a, 0), M reconhece as
palavras de 00 , ja que no estado d s
o s
ao admitidos 0s ate o final da palavra de entrada,
quando ocorre a transic
ao para o estado final b (avancando-se o para cabecote para a
direita, onde est
a um : assim, M p
ara em b). Portanto, M reconhece 0+ + 01(0 + 1) .
5.

a)
0/ D,/0 D
1/ D,/1 D

0/ D,/0 D
1/ D,/1 D

0/0 D,/ I
1/1 D,/ I

0/0 D,/ I
1/1 D,/ I

b)
121

0/0 E,0/0 E
1/1 E,1/1 E

/ E,/ E

/ E,h/h D

0/0 D,/0 D
1/1 D,/1 D

0/0 D,0/X E
1/1 D,1/X E

0/0 D,X/X D
1/1 D,X/X D
0/0 I,h/h D
1/1 I,h/h D

0/0 I,/ E
1/1 I,/ E
/ E,h/h D

/ E,X/X E

c)
b/ D,/X D
c/ D,/X D

a/ D,X/X E
c/ D,X/X E

a/a I,/ E
c/c I,/ E

a/a I,X/X D
c/c I,X/X D

a/a I,h/h D
c/c I,h/h D

a/a D,/X D
c/c D,/X D

a/a D,/X D
c/c D,/X D

a/a I,/ E
b/b I,/ E

/ I,h/h I

a/a D,h/h I
b/b D,h/h I
a/a D,h/h I
a/a D,X/X E
b/b D,h/h I
b/b D,X/X E
6. Seja uma MT M = (E, , , h, , , i, F ). Uma MT com um u
nico estado final que reconhece L(M ) por estado final e M = (E {f }, , , h, , , i, {f }), em que f 6 E e e tal
que:
(e, a) = (e, a) para todo (e, a) tal que (e, a) e definido;

(e, a) = [f, a, D] para todo (e, a) F tal que (e, a) e indefinido;


(e, a) e indefinido nos casos restantes.

7. Seja {i1 , i2 , . . . , in } o conjunto de estados iniciais. Basta acrescentar um novo estado i


como estado inicial e acrescentar as transicoes (i, a) = {[ik , a, I] | 1 k n}, para cada
a {}.
8. A m
aquina de Turing em quest
ao e uma octupla (E, , , h, , , i, F ) em que E, , h,
i e F s
ao como em MTs padrao, cuidando que E, D 6 , e : E E ( {E, D})
e a func
ao de transic
ao, uma funcao parcial. O reconhecimento por esse tipo de MT e
definido da mesma forma que para MT padrao.
Ser
a mostrado que esse tipo de MT reconhece uma linguagem L se, e somente se, L e
LRE:
() Seja M = (E, , , h, , , i, F ) uma MT como definido acima. Uma MT padrao que
reconhece L(M ) seria (E N, , , h, , , i, F ), onde N e o conjunto de novos estados
obtido como a seguir e e assim obtida a partir de :
para cada transic
ao da forma (e, a) = [e , b], b :
criar um novo estado e1 ;
criar uma transic
ao (e, a) = [e1 , b, D]; e
122

criar transic
oes (e1 , c) = [e , c, E] para cada c {h}.

para cada transic


ao da forma (e, a) = [e , d], d {E, D}:
criar uma transic
ao (e, a) = [e , a, d].

() Seja M = (E, , , h, , , i, F ) uma MT padrao. Uma MT como definido acima que


reconhece L(M ) seria (E N, , , h, , , i, F ), onde N e o conjunto de novos estados
obtido como a seguir e e assim obtida a partir de :
para cada transic
ao da forma (e, a) = [e , b, d], b e d {E, D}:
criar um novo estado e1 ;
criar uma transic
ao (e, a) = [e1 , b]; e
criar uma transic
ao (e1 , b) = [e , d].

9. Basta mostrar como obter uma MT com a restricao em questao que seja equivalente a
uma MT padrao. Para isso, basta criar um novo smbolo de fita, B, e substituir a func
ao

de transic
ao da MT padrao pela funcao de transicao assim obtida:
se (e, a) = [e , b, d] e a 6= e b 6= , entao (e, a) = (e, a);
se (e, a) = [e , , d] e a 6= , entao (e, a) = [e , B, d];

se (e, ) = [e , a, d] e a 6= , entao (e, ) = [e , a, d] e (e, B) = [e , a, d];

se (e, ) = [e , , d], ent


ao (e, ) = [e , B, d] e (e, B) = [e , B, d].
Apenas essas transic
oes fazem parte da m
aquina.

10. A m
aquina de Turing em quest
ao e uma octupla (E, , , h, , , i, F ) em que E, , h, i
e F s
ao como em MTs padrao e : E E {E, D} e a funcao de transicao,
uma func
ao parcial. O reconhecimento por esse tipo de MT e definido da mesma forma
que para MT padrao.
Seja M = (E, , , h, , , i, F ) uma MT como definido acima. Uma MT padrao que
reconhece L(M ) seria (E N, , , h, , , i, F ), onde N e o conjunto de novos estados
obtido como a seguir e e obtida a partir de :
para cada transic
ao da forma (e, a, b) = [e , c, d]:

criar
criar
criar
criar

dois novos estados e1 e e2 ;


uma transic
ao (e, a) = [e1 , a, D];
uma transic
ao (e1 , b) = [e2 , b, E]; e
uma transic
ao (e2 , a) = [e , c, d].

Por outro lado, dada uma MT padrao M = (E, , , h, , , i, F ) uma MT como definido
acima equivalente seria (E, , , h, , , i, F ) em que e tal que, sendo (e, a) = [e , b, d],
(e, a, c) = [e, b, d] para cada c {i}.
11. Seja M = (E, , , h, , , i, F ) uma MT desse tipo. Ela reconhece, necessariamente, uma
linguagem regular. Lembrando que M e determinstica, obtem-se um AFD equivalente
(E {x, f }, , , i, F {f }), em que x, f 6 E e e obtida de assim:
para cada (e, a) E tal que (e, a) e indefinido:

se e F , fazer (e, a) = f ; caso contr


ario, fazer (e, a) = x;

fazer (f, a) = f para todo a ;

123

fazer (x, a) = x para todo a ;

para cada transic


ao da forma (e, a) = [e , b, D], a :
fazer (e, a) = e .

para cada transic


ao da forma (e, a) = [e , b, I], a :

seja (d, c) E tal que [e, a] [d, c] e (d, c) 6= [d , c , I] para quaisquer d e


c ; se (d, c) for definido, fazer (e, a) = (d, c); se n
ao for, fazer (e, a) = f se

e F , ou (e, a) = x se e 6 F .
12. Seja uma m
aquina de Turing M = (E, , , h, , , i, F ). Um AP de duas pilhas para
L(M ) e (E {i , j1 , j2 , f }, , {F}, , i , {f }), em que e contem apenas as transicoes:
(i , , , ) = [j1 , h, ]
(empilha h na pilha 1 e vai para o estado j1 );

para cada a : (j1 , a, , ) = [j1 , a, ]


(le a palavra de entrada e empilha na pilha 1);
(j1 , , , ) = [j2 , , F]
(acaba a leitura da palavra de entrada e empilha F na pilha 2);
para cada a : (j2 , , a, ) = [j2 , , a]
(transfere a palavra de entrada da pilha 1 para a pilha 2);
(j2 , , h, ) = [i, h, ]
(acaba a transferencia da palavra de entrada para a pilha 2 e vai para o estado i);
para cada (e, a) = [e , b, E], para cada c {h}: (e, , c, a) = [e , , cb]
(simula uma transic
ao com movimento para a esquerda);
para cada (e, a) = [e , b, D]: (e, , , a) = [e , b, ] e, se a = , tambem (e, , , F) =
[e , b, F]
(simula uma transic
ao com movimento para a direita);
para cada (e, a) E tal que (e, a) e indefinido e e F : (e, , , a) = [f, , a]
(simula aceitac
ao da MT).

4.3
1.

Gram
aticas e M
aquinas de Turing
a) Gramatica para {0n 1k 0n 1k | n, k 0}:
P AB
A 0AZ |
B 1B1 | X
Z1 1Z
ZX X0
X

b) Gramatica para {am bn ck | m < n < k}:


P aBP c | bXc
Ba aB
Bb bb
X bXc | Xc | c

c) Gramatica para {www | w {0, 1} }:


124

P 0P Z | 1P U | AB
0Z Z0
1Z Z1
0U U 0
1U U 1
BZ ZB0
BU U B1
AZ A0
AU A1
A
B
2. Seja uma GI G = (V, , R, P ) que contenha alguma regra cujo lado esquerdo s
o contem
terminais. Uma GI equivalente em que toda regra contem vari
avel do lado esquerdo seria
(V {N }, , R {N }, P ), em que N 6 V e R seria como R, exceto que: para cada
regra de N que contenha apenas terminais do lado esquerdo, escolher um terminal a que
aparece do lado esquerdo (basta um) e substituir toda ocorrencia de a em todas as regras
por aN .
3. Basta substituir cada regra u v em que |u| > |v|, u n
ao e uma vari
avel e v 6= , pela
|u||v|
regra u vX
, onde X e uma vari
avel nova (basta uma vari
avel nova X para a
gram
atica que est
a sendo criada), e acrescentar a regra X .
4.

P Bi

B aBA1 | bBA2

B h0

A1 i ai

A2 i bi

A1 a aA1

A1 b bA1

A2 a aA2

A2 b bA2
0a a1

a1b 0ab

b1b 0bb

h1b 0hb

1b 0 b
0b #
0h h#

0 #

0i #i
1a #
1h h#

125

1 #

1i #i

#a #
#b #

# #

a# #

b# #

# #

h#i
5.

a) Uma gram
atica com 4 regras que gera {an bn+1 cn+2 | n 0}:
P aP Bc | bcc
cB Bc
bB bb

b) Uma gram
atica com 6 regras que gera {am bn ck | m < n < k}:
P aP Bc | P Bc | P c | bcc
cB Bc
bB bb

6. Um ALL pode ser construdo a partir daquele do Exemplo 130, mostrado na Figura 4.16
do livro, aproveitando-se os estados 1 a 6, com as respectivas traniscoes, acrescentando-se
7 estados (numerados de 7 a 13) e as seguintes transicoes:
(5, h) = [7, h, D]
(8, b) = [8, b, D]
(9, c) = [10, , E]
(10, h) = [11, h, D]
(12, c) = [12, , D]

(7, ) = [7, , D]
(8, ) = [9, , D]
(10, ) = [10, , E]
(11, ) = [11, , D]
(12, h) = [13, h, D]

(7, b) = [8, , D]
(9, ) = [9, , D]
(10, b) = [9, , D]
(11, c) = [12, , D]

O ALL tem um u
nico estado final: 13.

7. Sim, a linguagem {ww | w {0, 1}+ } e uma LSC. Uma GSC para ela seria:
P 0P Z | 1P U | F0 0 | F1 1
0Z Z0

0U U 0

1Z Z1

1U U 1

F0 Z F0 0

F0 U F0 1
F1 Z F1 0

F1 U F1 1
F0 0

F1 1

126

8. Seja G = (V, , R, P ) uma GI que gere L. Uma GSC que gera L e (V {P , Z},
{#}, R , P ), em que P , Z 6 V e R contem:
a regra P P #;

cada regra u v de R tal que |u| |v|;

para cada regra u v de R tal que |u| > |v|, a regra u vZ |u||v| ;
para cada X V , a regra ZX XZ; e

a regra Z# ##.

4.4

Propriedades das LREs e das Linguagens Recursivas

1. Uma MT para L = {ab}{a, b, c} :


0

a/a D

b/b E

Uma MT para L:
a/a D
0

1
b/b E

Aplicando-se o metodo do Teorema 36, obtem-se a seguinte MT para L:


a/a D,/a D
b/b D,/b D
c/c D,/c D
i

a/a E,a/a E
b/b E,b/b E
c/c E,c/c E

/ E,/ E

h/h D,h/h D

[0, 0]

a/a D,a/a D

[1, 1]

b/b E,b/b E

[0, 2]

2. Seja uma GLC G = (V, , R, P ). Ser


a mostrado como construr uma MT de duas fitas que
aceita L(G) e que sempre p
ara. O conte
udo da fita 2 ser
a da forma:
hP #x1 #x2 # . . . #xn . . .
que codifica a uma derivac
ao P x1 x2 . . . xn . Segue o algoritmo da MT:
Escreva P (a vari
avel de partida) na fita 2.
ciclo
selecione uma posic
ao p na u
ltima forma sentencial que est
a na fita 2;
selecione uma regra u v R;
se u ocorre a partir da posicao p da fita 2 ent
ao
copie na fita 2 a u
ltima forma sentencial substituindo u por v;
se a u
ltima forma sentencial na fita 2 aparece anteriormente ent
ao
rejeite
sen
aose a u
ltima forma sentencial na fita 2 e maior que a palavra
de entrada na fita 1 ent
ao
rejeite
127

sen
aose a u
ltima forma sentencial na fita 2 e identica `a palavra
de entrada na fita 1 ent
ao
aceite
fimse
sen
ao
rejeite
fimse
fimciclo.
Como o conjunto de derivac
oes possveis de formas sentenciais xn tais que |xn | |w| e
xi 6= xj para i 6= j e finito (ja que V e finito), e o algoritmo corta derivacoes que n
ao
satifacam essas condic
oes, conclui-se que a MT sempre p
ara. Logo, L(G) e recursiva. E
como as linguagens recursivas s
ao fechadas sob complementacao, L(G) tambem e recursiva.
3.

ao fechadas
a) Suponha que L seja recursiva. Entao, como as linguagens recursivas s
ao e recursiva! Logo, L n
ao pode
sob complementac
ao, L = L e recursiva. Mas L n
ser recursiva.
ao
b) Se L e L fossem ambas LREs, entao, pelo Teorema 36, L seria recursiva. Mas L n
e recursiva! Logo, se L e LRE, L n
ao e LRE.

4.

a) Como as linguagens recursivas s


ao fechadas sob complementacao, R e recursiva.
ao fechadas sob intersecao, segue-se que L R e
Assim, R e LRE. Como as LREs s
LRE. Como L R = L R, L R e uma LRE.

b) e recursiva. E se L n
ao e recursiva, L = L n
ao e recursiva.

c) e recursiva. E L pode n
ao ser uma LRE, pois as LREs n
ao s
ao fechadas sob
complementac
ao.

5. Para mostrar o fechamento sob concatenacao, sejam M1 e M2 duas MTs. Ser


a mostrado
como construir uma MT n
ao determinstica de duas fitas que reconhece L(M1 )L(M2 ). A
MT tem os seguintes passos:
1. Copie na fita 2 um sufixo y da palavra de entrada w e apague tal sufixo da fita 1.
Apos isto, a fita 1 conter
a hx . . . e a fita 2 conter
a hy . . ., sendo xy = w. O sufixo
y e escolhido n
ao deterministicamente.
2. Simule M1 sobre a fita 1 (entrada x) deixando o cabecote da fita 2 im
ovel. Sempre
que M1 pare em estado final, coloque uma transicao para o incio da simulacao de
M2 (pr
oximo passo).
3. Simule M2 sobre a fita 2 (entrada y) deixando o cabecote da fita 1 im
ovel. Sempre
que M1 pare em estado final, aceite.
Para mostrar o fechamento sob fecho de Kleene, seja M uma MT. Ser
a mostrado como
construir uma MT n
ao determinstica de duas fitas que reconhece L(M ) . A MT tem os
seguintes passos:
1. Se a palavra de entrada for , aceite.
2. Copie na fita 2 um prefixo x 6= da palavra da fita 1 e apague-o da fita 1, deixando
o sufixo y (que pode ser ) restante na fita 1. O prefixo x e escolhido n
ao deterministicamente.
3. Simule M sobre a fita 2 (entrada x) deixando o cabecote da fita 1 im
ovel. Sempre
que M pare em estado final, coloque uma transicao para o teste do pr
oximo passo.
128

4. Se y = , aceite; se y 6= , volte ao passo 2.


6. Suponha que o conjunto de todas as MTs cujo alfabeto de entrada e {0, 1} e enumeravel, e
seja uma enumerac
ao qualquer: M0 , M1 ,. . . . Seja tambem uma enumeracao das palavras

de {0, 1} : w0 , w1 ,. . . . Pode-se definir a linguagem D tal que:


wi D se, e somente se, wi 6 L(Mi )
Ora, se alguma MT Mk reconhecesse D (neste caso, L(Mk ) = D), ela seria tal que
wk L(Mk ) se, e somente se, wk 6 L(Mk )! Contradicao. Logo, ja que o conjunto das
MTs e enumeravel, n
ao h
a MT que reconhece D e, portanto, D n
ao e LRE.

4.5
1.

Exerccios
a) Uma MT-padr
ao para f (w) = w2 :
0/0 E
1/1 E
5

Z/Z D
U/U D

0/0 D, Z/Z D
1/1 D, U/U D

0/Z D

0/0 E
1/1 E
Z/Z E
U/U E

/Z E

/U E

1/U D

7
0/0 D, Z/Z D
1/1 D, U/U D

h/h D

Z/0 D
U/1 D

/ E
h/h D

0/0 E
1/1 E

Uma MT de duas fitas para f (w) = w2 :

0/0 D,/0 D
1/1 D,/1 D
1

/ I,0/0 E
/ I,1/1 E

/ I,/ E

/0 D,0/0 D
/1 D,1/1 D

/ I,h/h D

b) Uma MT-padr
ao para f (w) = wR :
129

0/0 E,/ I
1/1 E,/ I

/ E,/ I

h/h D,/ I

X/0 D
0/0 D
1/1 D
2
0/X D

/ E
Z/Z E
U/U E

0/Z E
3

0/0 E
1/1 E

0/0 E
1/1 E

0/0 E
1/1 E

0/0 E
1/1 E

1/Z E

X/0 D
X/1 D

1
1/X D
X/0 D
0/U E

/ I
Z/0 D
U/1 D

Z/0 D
U/1 D

6
0/0 D
1/1 D

10

11

1/U E

X/1 D

/ E
0/0 D
1/1 D

/ E
Z/Z E
U/U E

X/1 D
12

h/h D

Uma MT de duas fitas para f (w) = wR :


0/ D,/0 D
1/ D,/1 D
1

2.

/ I,0/0 E
/ I,1/1 E

/ I,/ E

/0 E,0/ D
/1 E,1/ D

/ E,h/h D

h/h D,/ I

a) MT de duas fitas n
ao determinstica para {w {a, b} | w 6= wR }:

a/ D,/a D
b/ D,/b D

a/a D,a/a E
b/b D,b/b E

a/a I,/ E
b/b I,/ E
a/ D,/ E
b/ D,/ E

a/a
a/a
b/b
b/b

a/a D,b/b E
b/b D,a/a E

D,a/a
D,b/b
D,a/a
D,b/b
3

E
E
E
E

/ I,/ I

b) MT de duas fitas n
ao determinstica para {am ban | m n e divisvel por k}, onde k
e uma constante positiva:
130

a/ D,/a D
1
a/ D,/ I
2

a/a I,/ I
b/b I,/ I

k+1

a/ D,a/ E
b/ D,/ E

k+2
/ I,h/h I

a/ D,/ I
- k

k+3

c) MT de duas fitas n
ao determinstica para {a2 | n 0}:
a/a D,/a D

h/h D,h/h D
/ E,h/h I
a/a E,h/h I

a/a D,/a D
a/a I,/ E

/ E,h/h I

a/a D,/a D

a/a I,/ E

a/ D,a/ E

d) Segue uma MT de duas fitas para {an | n 0}, baseada em nk=1 (2k 1) = n2 . Os
n
umeros mpares s
ao gerados sucessivamente na fita 2 (em un
ario) e subtrados da
palavra de entrada.
P

a/ D,a/a D
a/ D,/a D

a/a I,/a D

/ I,/ I

a/a I,/a E

a/a I,a/a E

a/a I,h/h D

e) Segue uma MT de duas fitas para {an | n e primo}. Se o n


umero de as da fita de
entrada for mpar, e armazenado n/2 xs na fita 2. Enquanto o n
umero de as n
ao
for divisvel pelo n
umero da fita 2, o da fita 2 e decrementado. S
o quando o n
umero
da fita 2 atinge 1, o estado final e atingido. Se o n
umero da fita 1 for divisvel por
algum n
umero, a MT p
ara no estado D.
131

h/h I,x/x D

a/a D,x/x I
h/h D,x/x I

h/h I,/ E

/ I,x/ E
a/a D,/x D

/ I,/ E

a/a E,x/x D

h/h I,x/x D

a/a D,/ I
/ I,x/x E
/ I,h/h D

/ I,x/x E
/ I,x/x E

/ E,h/h D

a/a I,h/h D
a/a I,/ E

a/a I,x/x E

f ) Uma MT de tres fitas para {an! | n 0}:

a/a D,a/a D,/ I


a/a D,/a D,/ I

a/a E,/a E,/ I

a/a I,a/a E,/ I

a/a I,/ E,/a D


a/a I,h/h D,/ I

/ E,/ E, /a D
a/ E,a/a E,/ I

a/a E,h/h I,h/h I

h/h D,h/h D,/ I

/ E,h/h I,h/h I

a/ E,h/h I,/ I
a/ E,h/h I,/ I

3.
132

h/h D,h/h D,h/h D

h/h D,h/h I,/ E

/a D,h/h I,a/ E

/0 D

0/ E
/ D
0/0 E
1/1 E

/ D

1/ E

/ E
/ D

h/h D

/ E
0/ D

1/ D

/0 E

/1 E

/1 D

/h D
/ E

0/0 D
1/1 D

/ D
0/0 D
1/1 D

0/0 D
1/1 D

/ E

/ E

0/ E 0/0 E
1/1 E

0/ D

0/0 E
1/1 E

/ E
1/ D
/ D

1/ E

/ E

0/0 D
1/1 D
0/0 D
1/1 D
/ E

4. Toda linguagem que pode ser reconhecida por MT desse tipo e, obviamente, recursiva.
Por outro lado, se uma linguagem e recursiva, pode ser reconhecida por MT desse tipo:
seja uma MT-padr
ao que sempre pare M = (E, , , h, , , i, F ); uma MT do tipo em

considerac
ao que reconhece L(M ) e (E {esim , en
ao }, , , h, , , i), em que para todo
(e, a) E :
se (e, a) e definido, ent
ao (e, a) = (e, a);

se (e, a) e indefinido, ent


ao:

se e F , (e, a) = esim ;
se e 6 F , (e, a) = en
ao .

5. O u
nico smbolo a ser escrito em celulas da segunda trilha ser
a o . O par [a, ] sob

a
o cabecote (a na primeira trilha e na segunda) ser
a referido por a, o par [a, ] ser
referido por a e o par [, ] ser
a referido por simplesmente, por conveniencia. Segue a
MT:
0/0 D
1/1 D

0 /0 E

1 /1 E
/ E

0/ 0 D

0/ 0 E
0/0 E
1/1 E

0 /0 D

1 /1 D

1/ 1 D

1/ 1 E

0 /0 E

0/0 D
1/1 D

1 /1 E
/ E

133

6. Seja um APN M = (E, , , , I, F ). Uma MT n


ao determinstica de duas fitas equivalente
seria M = (E {f }, , {h, }, h, , , {i}, {i, f }), em que i, f 6 E e e assim
obtida a partir de ;
(i, c, ) = {[e, (c, I), (, E)] | e I} para cada c {} (pilha vazia: cabecote da
fita 2 na primeira posic
ao);
para cada transic
ao de M da forma
e

a, /

fazer:
se a = :

se a 6= :

c/c I,d/d I
a/a D,d/d I

para cada c {} e cada d {h}.

para cada d {h}.

para cada transic


ao de M da forma
e

a, /z

em que z = z1 . . . zn

fazer:
c/c I,d/d D

c/c I,/zn D

e1
se a = : e
para cada c {} e cada d {h};
a/a I,d/d D

se a 6= : e
para cada d {h}.

e1

a/a I,/zn D

e2

en

e2

en

c/c I,/z1 I

a/a D,/z1 I

para cada transic


ao de M da forma
e

a, b/

fazer:
se a = :

se a 6= :

c/c I,b/ E
a/a D,b/ E

para cada c {};

e
e

para cada transic


ao de M da forma
e

a, b/z

em que z = z1 . . . zn

fazer:
c/c I,b/zn D

se a = : e
para cada c {};
se a 6= :

a/a I,b/zn D

e1

e1

c/c I,/zn1 D

a/a I,/zn1 D

134

e2

en1

e2

en1

c/c I,/z1 I

a/a D,/z1 I

Finalmente, para cada e F , fazer:


e

/ I,h/h I

Segue a MT obtida a partir do APD da Figura 3.4, p


agina 151 do livro:

a/a I,/ E
b/b I,/ E
/ I,/ E

/ I,h/h I
a

/ I,h/h I

b/b D,X/ E

b
a/a I,h/h D
a/a I,X/X D

a/a D,/X I

b/b D,X/ E

a1

7.

Z/Z D
U/U D

Z/Z D
U/U D
/ D
Z/Z E

U/1 D
/Z D

0/0 D
1/1 D

/ E
/ D

/U E
/ E

Z/Z E
U/U E

Z/0 D
/Z E

U/U E
/ D

/ D

Z/Z D
U/U D / E

Z/Z D
U/U D

U/Z E

/ D
Z/U E

Z/Z D
U/U D

Z/U D

/Z E

Z/Z D

Z/Z E
U/U E

8. A MT e quase identica `
a da questao anterior; basta eliminar o estado , obtendo-se:
135

Z/Z D
U/U D

Z/Z D
U/U D
/ D
Z/Z E

U/1 D
/Z D

0/0 D
1/1 D

/ E
/ D

/U E
/ E

Z/Z E
U/U E

Z/0 D
/Z E

U/U E
/ D

/ D

Z/Z D
U/U D / E

Z/Z D
U/U D

Z/Z D
U/U D

U/Z E
Z/U E

/ D
Z/Z D

/Z E
Z/Z E
U/U E

9. MT com 3 fitas. A fita 2 conter


a a sada e a fita auxiliara na duplicacao da palavra na
fita 2. O n
umero n e representado por 1n+1 .

0/0 I,/1 E,/ I


0/ D,/ I,/ I 1/0 I,1/1 D,/ I

0/0 I,1/1 E,/ D

1/1 D,/1 I,/ I

0/0 I,1/1 D,/ I

0/0 I,h/h D,/ E


0/0 D,1/1 E,/ D

/ I,/1 I,/ I

/ I,1/1 D,/ I
0/0 D,/ E,h/h D

0/0 I,/1 D,/ E


0/0 I,/1 D,/ E

/ I,/1 I,/ I

10. Seja uma MT M = (E, , , h, , , i, F ) do tipo definido. Uma MT-padr


ao que simula
M seria M = (E {ex } N, , , h, , , i, F ), ex 6 E, N E = , tal que para cada
transic
ao da forma (e, a) = [e , b, D, n] h
a as transicoes (e1 , . . . , en1 N s
ao n1 estados
intermediarios novos):
(e, a) = [e1 , b, D], (e1 , c) = [e2 , c, D] para cada c {h}, . . . , (en1 , c) = [e , c, D]
para cada c {h};
para cada transic
ao da forma (e, a) = [e , b, E, n] h
a as transicoes (e1 , . . . , en1 N s
ao
n 1 estados intermediarios novos):
(e, a) = [e1 , b, E], (e1 , c) = [e2 , c, E] para cada c {h}, . . . , (en1 , c) = [e , c, E]
para cada c {h};
136

e para cada i = 1, . . . , n 1, (ei , h) = [ex , h, D].


Ha apenas essas transic
oes em M .
11. Seja uma m
aquina de duas fitas M = (E, , , h, , , i, F ) e X 6 , como referidos na Sec
ao
4.2.4. A MT M de quatro trilhas que simula M , como la esbocado, comeca escrevendo
h no incio da trilha 3, escrevendo as representacoes dos cabecotes nas trilhas 2 e 4, e
transitando para o estado [i, ], da seguinte forma, sendo i o estado inicial de
M e j mais um estado auxiliar:
(i , h, , , ) = [j, h, , h, , D];

(j, a, , , ) = [[i, ], X, , X, , I] para cada a {h}.


Para cada estado da forma [e, ], M busca os smbolos a1 e a2 das trilhas 1 e
3 cujas posic
oes est
ao marcadas pelos smbolos X das trilhas 2 e 4 e transita para o estado
[e, a1 a2 ], assim:
([e, ], a1 , , a2 , ) = [[e, ], a1 , , a2 , , D] para a1 , a2 ;
([e, ], a1 , X, a2 , ) = [[e, a1 ], a1 , X, a2 , , D] para a1 , a2 ;

([e, ], a1 , , a2 , X) = [[e, a2 ], a1 , , a2 , X, D] para a1 , a2 ;

([e, ], a1 , X, a2 , X) = [[e, a1 a2 ], a1 , X, a2 , X, I] para a1 , a2 ;

([e, a1 ], a1 , , a2 , ) = [[e, a1 ], a1 , , a2 , , D] para a1 , a1 , a2 ;

([e, a1 ], a1 , , a2 , X) = [[e, a1 a2 ], a1 , , a2 , X, I] para a1 , a1 , a2 ;

([e, a2 ], a1 , , a2 , ) = [[e, a2 ], a1 , , a2 , , D] para a1 , a2 , a2 ;

([e, a2 ], a1 , X, a2 , ) = [[e, a1 a2 ], a1 , X, a2 , , I] para a1 , a2 , a2 .

Para cada estado da forma [e, a1 a2 ], se (e, a1 , a2 ) e indefinido, ([e, a1 a2


], a1 , c1 , a2 , c2 ) e indefinido para todo a1 , c1 , a2 , c2 {X}. Mas se (e, a1 , a2 ) =
[e , b1 , d1 , b2 , d2 ], M busca, movendo seu cabecote da direita para a esquerda, os smbolos
a1 e a2 das trilhas 1 e 3 cujas posicoes est
ao marcadas pelos smbolos X das trilhas 2 e 4,
assim:
([e, a1 a2 ], a1 , , a2 , ) = [[e, a1 a2 ], a1 , , a2 , , E] para a1 , a2 ;
([e, a1 a2 ], a1 , X, a2 , ) = [[e, a1 a2 b1 ], b1 , , a2 , , d1 ] para a2 ;

([e, a1 a2 b1 ], a1 , , a2 , c) = [[e, a1 a2 b1 d1 ], a1 , X, a2 , c, I] para a1 , a2 e


c {, X};
([e, a1 a2 b1 d1 ], a1 , , a2 , ) = [[e, a1 a2 b1 d1 ], a1 , , a2 , , E] para a1 , a2 ;
([e, a1 a2 b1 d1 ], a1 , , a2 , X) = [[e, a1 a2 b1 d1 b2 ], a1 , , a2 , , d2 ] para a1 ;

([e, a1 a2 b1 d1 b2 ], a1 , , a2 , ) = [[e, a1 a2 b1 d1 b2 d2 ], a1 , , a2 , X, E] para a1 , a2 ;

([e, a1 a2 b1 d1 b2 d2 ], a1 , , a2 , ) = [[e, a1 a2 b1 d1 b2 d2 ], a1 , , a2 , X, E] para a1 , a2 ;


([e, a1 a2 b1 d1 b2 d2 ], h, , h, ) = [[e , ], h, , h, , D].

Substitui a1 por b1 e a2 por b2 , e move os smbolos X das trilhas 2 e 4 nas direcoes d1 e d2 .


Feito isso, M transita para o estado [e, a1 a2 b1 d1 b2 d2 ]. Nesse estado, M volta ao incio
da fita e transita para o estado [e , ].
Os estados finais de M s
ao os estados [e, a1 a2 ] para a1 , a2 e e F .

Para concretizar a MT M esbocada anteriormente, basta acrescentar novos estados da


forma [e, x1 x2 y1 d1 y2 d2 ], onde x1 , x2 , y1 , y2 {} e d1 , d2 {D, E, I}, `a medida que
137

forem necessarios. Por exemplo, se a representacao X do cabecote da fita 1 for encontrada


antes daquela da fita 2 quando M procura por a1 e a2 da esquerda para a direita, pode-se
fazer que M transite para [e, a1 ]. Nesse estado, M procura por a2 ; e, ao ach
a-lo,
transita para o estado referido no par
agrafo anterior, [e, a1 a2 ]. Entretanto, se a
representac
ao do cabecote da fita 2 for encontrada antes daquela da fita 1, M transita
para [e, a2 ]; depois, ao encontrar a1 , transita para [e, a1 a2 ] e assim por
diante.
S
o existem as transic
oes explicitas acima.

138