Licenciatura em Engenharia Inform´atica e de Computadores - LEIC Licenciatura em Engenharia de Redes de Computadores -LERC
Exerc´ıcios de Teoria da Computa¸
c˜
ao
Computabilidade
Sec¸c˜ao de L´ogica e Computa¸c˜ao Departamento de Matem´atica
Instituto Superior T´ecnico 2007/2008
1
Programa¸
c˜
ao Mathematica
1. Defina em Mathematica as seguintes fun¸c˜oes/predicados
(a) somaNat que recebe um natural n e devolve a soma de todos os naturais at´e n
(b) somaLista que recebe uma lista de naturais e devolve a soma dos seus elementos
(c) prodLista que recebe uma lista de naturais e devolve o produto dos seus elementos
(d) retiraNeg que recebe uma lista de inteiros w e devolve a lista resul-tante de retirar de w todos os n´umeros negativos
(e) escolhePares que recebe uma lista de inteiros w e devolve a lista dos elementos pares de w
(f) conta que recebe uma lista de inteiros w e um inteiro k e devolve o n´umero de vezes que k ocorre em w
(g) contemPrimoQ que recebe uma lista de naturais w e devolve True se e s´o se w cont´em pelo menos um n´umero primo
(h) apaga que recebe uma lista w e um n´umero inteiro k e devolve a lista que resulta de se apagar de w todas as ocorrˆencias de k
(i) permutacao que recebe duas listas w1 e w2 e devolve True se w2 for uma permuta¸c˜ao de w1 e False caso contr´ario
(j) intercala que recebe duas listas w1 e w2 e devolve a lista resultante de intercalar os elementos de w1 e w2
(k) repete que recebe uma lista w e devolve uma lista em que o primeiro elemento de w aparece uma vez, o segundo elemento duas vezes e assim por diante
(l) primalg que recebe um inteiro k e devolve o primeiro algarismo de k
(m) prodcart que recebe duas listas
w = {a1, a2, ..., am} e v = {b1, b2, ..., bn}
e devolve a lista {{a1, b1}, ..., {a1, bn}, ..., {am, b1}, ..., {am, bn}}
(n) prodMatriz que recebe uma matriz de inteiros e devolve o produto de todos os seus elementos
(o) mediacpares que recebe uma matriz de inteiros e devolve a m´edia dos elementos das colunas pares
(p) contaPrimosePares que recebe uma matriz de naturais e devolve um par {x, y} em que x ´e o n´umero de posi¸c˜oes da matriz que tˆem um elemento primo e y ´e o n´umero de posi¸c˜oes da matriz que tˆem um elemento par
(q) conta que recebe uma matriz de naturais e devolve um par {x, y} em que x ´e o n´umero de colunas da matriz que n˜ao contˆem primos e y ´e o maior n´umero primo que ocorre na matriz (y deve ser 0 caso n˜ao existam primos)
(r) mediascolunas que recebe uma matriz de inteiros e devolve uma lista com tantos elementos quantos as colunas da matriz em que cada posi¸c˜ao k cont´em a m´edia dos elementos da coluna k
(s) contaparescolunas que recebe uma matriz de inteiros e devolve uma lista com tantos elementos quantos as linhas da matriz em que cada posi¸c˜ao k cont´em o n´umero de elementos pares que existem na coluna k
(t) listasprimos que recebe uma lista de listas de naturais e devolve uma lista com todas as listas que tenham pelo menos um n´umero primo
(u) triangularSuperiorQ que recebe uma matriz quadrada de n´umeros inteiros e determina se a matriz ´e triangular superior (isto ´e, todos os elementos abaixo da diagonal principal s˜ao nulos)
(v) triangularInferiorQ que recebe uma matriz quadrada de n´umeros inteiros e determina se a matriz ´e triangular superior (isto ´e, todos os elementos acima da diagonal principal s˜ao nulos)
(w) diagonalQ que recebe uma matriz quadrada de n´umeros inteiros e determina se ´e uma matriz diagonal
(x) sufixoQ que recebe como argumento uma lista w de listas de n´umeros inteiros e determina se cada lista em w ´e sufixo de todas as listas anteriores (recorde que se diz que w1 ´e prefixo de w2 se existe w3 tal que Join[w1,w3]==w2)
(y) decrescenteQ que recebe como argumento uma lista w de listas de n´umeros inteiros e determina se cada lista est´a ordenada por ordem decrescente
(z) prodmatrizes que recebe duas matrizes de inteiros e devolve o re-spectivo produto, caso exista.
2. Assuma a seguinte representa¸c˜ao de afd’s em Mathematica: {lista1,lista2,lista3,e,lista4} em que
− lista1, lista2 e lista4 s˜ao listas de strings representando, re-spectivamente, o conjunto dos estados, o alfabeto e o conjunto dos estados finais
− e ´e uma string que representa o estado inicial
− lista3 ´e uma lista de listas de strings do tipo {e1,s,e2}; cada uma destas listas representa uma transi¸c˜ao (e1 ´e o estado de partida, e2 ´e o estado de chegada e s ´e o s´ımbolo do alfabeto).
Defina em Mathematica as seguintes fun¸c˜oes/predicados: (a) delta que dado um afd calcula a sua fun¸c˜ao transi¸c˜ao
(b) deltatotalQ que dado um afd devolve True se a sua fun¸c˜ao de transi¸c˜ao ´e total e False caso contr´ario (pode usar a fun¸c˜ao delta e a fun¸c˜ao prodcart do exerc´ıcio 1m)
(c) deltatotalQ usando agora apenas a fun¸c˜ao delta
(d) deltastar que dado um afd calcula a sua fun¸c˜ao transi¸c˜ao estendida (pode usar a fun¸c˜ao delta)
(e) aceitaQ que dado um afd e uma palavra sobre o alfabeto (string) devolve True se a palavra ´e aceite pelo afd e False caso contr´ario (f) prodQ que dado um afd e um estado devolve True se o estado ´e
produtivo e False caso contr´ario
(g) acessQ que dado um afd e um estado devolve True se o estado ´e acess´ıvel e False caso contr´ario
(h) utQ que dado um afd e um estado devolve True se o estado ´e ´util e False caso contr´ario
(i) cjeprods, cjeacess, cjeuts e cjeinuts que dado um afd e um es-tado devolvem, respectivamente, o conjunto dos eses-tados produtivos, acess´ıveis, ´uteis e in´uteis
(j) afdcomplementar que dado um afd constr´oi o afd complementar (k) afdproduto que dados dois afd’s constr´oi o respectivo afd produto. 3. Assuma a seguinte representa¸c˜ao de afnd’s em Mathematica:
{lista1,lista2,lista3,e,lista4}
em que os diferentes elementos s˜ao semelhantes aos da representa¸c˜ao de afd’s acima referida, mas neste caso lista3 ´e uma lista de listas de strings do tipo {e1,s,cje} em que e1 ´e um estado, s ´e um s´ımbolo do alfabeto ou e cje ´e uma lista de estados.
Defina em Mathematica as seguintes fun¸c˜oes/predicados: (a) delta que dado um afnd calcula a sua fun¸c˜ao transi¸c˜ao
(b) fechoeps que dado um afnd e um estado calcula o fecho- do estado (c) deltastarnd que dado um afnd (sem movimentos-) calcula a sua
fun¸c˜ao de transi¸c˜ao estendida (pode usar a fun¸c˜ao delta)
(d) deltastarnde que dado um afnd calcula a sua fun¸c˜ao de transi¸c˜ao estendida (pode usar as fun¸c˜oes delta e fechoeps)
(e) aceitaQ que dado um afnd e uma palavra sobre o alfabeto (string) devolve True se a palavra ´e aceite pelo afd e False caso contr´ario (f) afndToafd que dado um afnd (sem movimentos-) constr´oi um afd
(g) afdsoma que dados dois afnd A1 e A2 constr´oi um afnd A tal que
LA= LA1 ∪ LA2
(h) afdconc que dados dois afnd A1 e A2 constr´oi um afnd A tal que
LA= LA1LA2
(i) afdfechoKleene que dados um afnd A1 constr´oi um afnd A tal
que LA= (LA1)
∗.
4. Assuma a representa¸c˜ao de afnds em Mathematica apresentada anterior-mente e a seguinte representa¸c˜ao de gram´aticas regulares em Mathemat-ica:
{lista1,lista2,lista3,s} em que
− lista1 e lista2 s˜ao listas de strings representando, respectiva-mente, o conjunto dos s´ımbolos auxiliares e o alfabeto
− s ´e uma string que representa o s´ımbolo inicial
− lista3 ´e uma lista de listas de strings do tipo {le,ld}; cada uma destas listas representa uma produ¸c˜ao (le ´e lado esquerdo e ld ´e o lado direito).
Defina em Mathematica a fun¸c˜ao afndTogr que dado um afnd A constr´oi
uma gram´atica regular G tal que LA= LG.
5. Defina em Mathematica as fun¸c˜oes seguintes usando apenas atribui¸c˜oes do tipo x=y, x=0, x=x+1, composi¸c˜ao sequencial (;), composi¸c˜oes alternativas do tipo If[x==y,prog] e composi¸c˜oes iterativas do tipo While[x==y,prog] em que x e y s˜ao nomes, e prog volta a ser constru´ıdo apenas com ex-press˜oes do tipo indicado:
(a) menorQ, que dados dois inteiros n˜ao negativos x e y devolve True se x ´e menor que y e False caso contr´ario.
(b) menorigualQ, que dados dois inteiros n˜ao negativos x e y devolve True se x ´e menor ou igual que y e False caso contr´ario.
(c) parQ, que dado um inteiro n˜ao negativo x devolve True se x ´e par e False caso contr´ario.
(d) imparQ, que dado um inteiro n˜ao negativo x devolve True se x ´e impar e False caso contr´ario.
(e) soma, que dados dois inteiros n˜ao negativos x e y devolve a sua soma. (f) diferenca, que dados dois inteiros n˜ao negativos x e y devolve x − y
se x ≥ y e 0 caso contr´ario.
(g) produto, que dados dois inteiros n˜ao negativos x e y devolve o seu produto.
(h) quociente, que dados dois inteiros n˜ao negativos x e y devolve o quociente da divis˜ao inteira de x por y.
(i) potencia, que dados dois inteiros n˜ao negativos x e y devolve xy, usando tamb´em atribui¸c˜oes do tipo x=y+z.
(j) raiz, que dados dois inteiros n˜ao negativos x e y devolve a raiz de ´ındice y inteira de x, usando tamb´em atribui¸c˜oesdo tipo x=y+z e
condi¸c˜oes do tipo x<y.
(k) expoentefact, que dados dois inteiros positivos x e y devolve o expoente do y-´esimo primo na factoriza¸c˜ao prima de x se x e y, usando tamb´em atribui¸c˜oes do tipo x=y*z, condi¸c˜oes do tipo x<y e as fun¸c˜oes Mod e PrimeQ.
(l) log, que dados dois inteiros positivos x e y devolve o logaritmo inteiro de x na base y se y ´e maior que 1 e 0 caso contr´ario, usando tamb´em atribui¸c˜oes do tipo x=y*z e condi¸c˜oes do tipo x<y.
(m) multiploQ, que dados dois inteiros n˜ao negativos x e y devolve True se x ´e m´ultiplo de y e False caso contr´ario, usando tamb´em atribui¸c˜oes do tipo x=y+z.
(n) divisorQ, que dados dois inteiros positivos x e y devolve True se x ´e divisor de y e False caso contr´ario:
i. usando tamb´em atribui¸c˜oes do tipo x=y-z
ii. usando tamb´em atribui¸c˜oes do tipo x=y+z e condi¸c˜oes do tipo x<y
iii. usando tamb´em atribui¸c˜oes do tipo x=y*z e condi¸c˜oes do tipo x<y
(o) qperfeitoQ, que dado um natural devolve True se ´e quadrado per-feito e False caso contr´ario; neste caso pode usar a fun¸c˜ao Mod. (p) primoQ, que dado um inteiro positivo devolve True se ´e primo e
False caso contr´ario; neste caso pode usar a fun¸c˜ao Mod.
(q) primentresiQ, que dados dois inteiros positivos devolve True se s˜ao primos entre si e False caso contr´ario, usando tamb´em atribui¸c˜oes do tipo x=y+z e condi¸c˜oes do tipo x<y.
(r) mdc, que dados dois inteiros positivos devolve o seu m´aximo divisor comum, usando tamb´em atribui¸c˜oes x=y-z e condi¸c˜oes x<y.
(s) mmc, que dados dois inteiros positivos devolve o seu menor m´ultiplo comum, usando tamb´em atribui¸c˜oes x=y*z e condi¸c˜oes x<y.
6. Mostre que s˜ao comput´aveis as seguintes fun¸c˜oes (recorde que I ´e o con-junto das express˜oes Mathematica irredut´ıveis)
(a) g : I2→ I tal que se x e y s˜ao inteiros positivos g(x, y) ´e o expoente do x-´esimo primo na decomposi¸c˜ao de y em n´umeros primos e, caso contr´ario, ´e a string “argumentos inv´alidos”
(b) f : I → I tal que se x ´e um inteiro positivo ent˜ao f (x) ´e uma lista (sem repeti¸c˜oes) de listas {p, e}, com p primo e e 6= 0 o expoente de p na decomposi¸c˜ao de x em n´umeros primos, e caso contr´ario ´e a string “argumento inv´alido”
(c) f : I → I tal que se m ´e uma lista inteiros ent˜ao f (m) ´e o n´umero de primos que ocorre nessa lista e, caso contr´ario, ´e a string “argumento inv´alido”
(d) f : I → I tal que se m ´e uma lista ent˜ao f (m) ´e a lista que resulta de eliminar os elementos repetidos de m e, caso contr´ario, ´e a string “argumento inv´alido”
(e) f : I → I tal que se m ´e uma matriz de inteiros ent˜ao f (m) ´e o produto de todos os seus elementos e, caso contr´ario, ´e a string “argumento inv´alido”
(f) f : I → I tal que se m ´e uma matriz de inteiros ent˜ao f (m) ´e n´umero de zeros que ocorrem em m e, caso contr´ario, ´e a string “argumento inv´alido”
(g) f : I → I tal que se m ´e uma matriz ent˜ao f (m) ´e n´umero de strings que ocorrem em m e, caso contr´ario, ´e a string “argumento inv´alido” (h) g : I2→ I tal que se x e y s˜ao listas
x = {a1, a2, ..., am} e y = {b1, b2, ..., bn}
g(x, y) ´e a lista {{a1, b1}, ..., {a1, bn}, ..., {am, b1}, ..., {am, bn}} e, caso
contr´ario, ´e a string “argumentos inv´alidos”
(i) g : I2 → I tal que se x ´e uma lista de listas de inteiros e k ´e um
inteiro ent˜ao g(x, k) ´e a lista que cont´em todas as listas em x nas quais ocorre k e, caso contr´ario, ´e a string “argumentos inv´alidos” (j) f : I → I tal que se x ´e um afd (representado com no exerc´ıcio 2)
ent˜ao f (x) ´e a lista dos estados produtivos de x e, caso contr´ario, ´e a string “argumento inv´alido”.
7. Mostre que s˜ao comput´aveis as seguintes fun¸c˜oes (recorde que I ´e o con-junto das express˜oes Mathematica irredut´ıveis)
(a) c : I2 → I tal que c(x, y) = 1 se x e y s˜ao inteiros n˜ao negativos e x ´e m´ultiplo de y e c(x, y) = 0 nos outros casos
(b) c : I2 → I tal que c(x, y) = 1 se x e y s˜ao inteiros positivos e x ´e divisor de y e c(x, y) = 0 nos outros casos
(c) c : I3 → I tal que c(x, y, z) = 1 se x, y e z s˜ao inteiros positivos e z ´e o maior divisor comum a x e a y e c(x, y, z) = 0 nos outros casos (d) c : I3 → I tal que c(x, y, z) = 1 se x, y e z s˜ao inteiros positivos e z
´e o menor m´ultiplo comum a x e a y e c(x, y, z) = 0 nos outros casos. (e) c : I → I tal que c(x) = 1 se x ´e uma lista de inteiros pares e
c(x) = 0 nos outros casos
(f) c : I → I tal que c(s) = 1 se s ´e uma string e c(s) = 0 nos outros casos
(g) c : I → I tal que c(s) = 1 se s ´e uma string de letras c(s) = 0 nos outros casos
(h) c : I → I tal que c(x) = 1 se x ´e um natural e ´e capicua e c(x) = 0 nos outros casos
(i) c : I → I tal que c(m) = 1 se m ´e uma matriz diagonal de inteiros e c(m) = 0 nos outros casos
(j) c : I → I tal que c(m) = 1 se m ´e uma matriz identidade e c(m) = 0 nos outros casos
(k) c : I → I tal que c(m) = 1 se m ´e uma matriz triangular superior de inteiros e c(m) = 0 nos outros casos
(l) c : I2 → I tal que c(s, I) = 1 se I ´e um alfabeto (lista em que cada elemento ´e uma letra ou um d´ıgito) e s ´e uma palavra sobre I e c(x, y) = 0 nos outros casos
(m) c : I2 → I tal que c(x, y) = 1 se x e y s˜ao listas e todos os elementos de x ocorrem em y e c(x, y) = 0 nos outros casos.
(n) c : I2 → I tal que c(x, y) = 1 se x e y s˜ao listas e x ´e uma permuta¸c˜ao
y e c(x, y) = 0 nos outros casos.
2
Decidibilidade e semidecidibilidade
1. Mostre que s˜ao decid´ıveis os conjuntos seguintes: (a) o conjunto N atP ar ⊆ I dos naturais pares (b) o conjunto N atImp ⊆ I dos naturais ´ımpares (c) o conjunto N atP rim ⊆ I dos naturais primos
(d) o conjunto N atQP ⊆ I dos naturais que s˜ao quadrados perfeitos (e) o conjunto M ult ⊆ I2 em que
M ult = {(x, y) ∈ I2: x e y s˜ao naturais e x ´e m´ultiplo de y} (f) o conjunto Div ⊆ I2 em que
Div = {(x, y) ∈ I2: x e y s˜ao naturais e x ´e divisor de y} (g) o conjunto M DC ⊆ I3 em que
M DC = {(x, y, z) ∈ I3: x, y e z s˜ao naturais
e z ´e o maior divisor comum a x e a y} (h) o conjunto M M C ⊆ I3 em que
M M C = {(x, y, z) ∈ I3 : x, y e z s˜ao naturais
e z ´e o menor m´ultiplo comum a x e a y} (i) o conjunto CP rim ⊆ I2 em que
CP rim = {(x, y) ∈ I2 : x e y s˜ao naturais e x, y s˜ao coprimos} (recorde-se que x e y s˜ao coprimos, ou primos entre si, se o maior divisor comum a x e y ´e 1)
(j) o conjunto ListCP ar ⊆ I das listas de inteiros de comprimento par (k) o conjunto StringI ⊆ I2 em que
(l) o conjunto SubList ⊆ I2 em que SubList = {(x, y) ∈ I2 : x e y s˜ao listas
e todos os elementos de x ocorrem em y} (m) o conjunto M Q ⊆ I das matrizes quadradas de inteiros
(n) o conjunto M T S ⊆ I das matrizes triangulares superiores de inteiros (o) o conjunto M T I ⊆ I das matrizes triangulares inferiores de inteiros (p) o conjunto M D ⊆ I das matrizes diagonais de inteiros
(q) o conjunto Cap ⊆ I em que Cap = {x ∈ I : x ´e natural x ´e capicua} (r) o conjunto I das express˜oes Mathematica irredut´ıveis.
2. Assuma a representa¸c˜ao de afd’s em Mathematica referida no exerc´ıcio 2 da sec¸c˜ao 1.
(a) Mostre que ´e decid´ıvel o conjunto Af d ⊆ I das listas que constituem uma representa¸c˜ao de um afd
(b) Seja D ∈ I um afd. Mostre que s˜ao decid´ıveis os seguintes conjuntos: i. o conjunto L(D) ⊆ I em que
L(D) = {x ∈ I : x ´e uma String e x ´e aceite por D} ii. o conjunto EstP rd(D) ⊆ I dos estados produtivos de D iii. o conjunto EstAc(D) ⊆ I dos estados acess´ıveis de D iv. o conjunto EstInt(D) ⊆ I dos estados in´uteis de D
v. o conjunto EstDst(D) ⊆ I2 dos pares de estados distingu´ıveis de D
vi. o conjunto Eqv(D) ⊆ I dos afd’s equivalentes a D
(c) o conjunto {(w, D) ∈ I2 : w ´e uma String, D ´e um afd e w ´e aceite por D} 3. Mostre que todo o conjunto finito ´e decid´ıvel.
4. Mostre que a classe dos conjuntos decid´ıveis (dum mesmo tipo) ´e fechada para as seguintes opera¸c˜oes:
(a) intersec¸c˜ao (b) reuni˜ao
(c) complementa¸c˜ao.
5. Mostre que a classe dos conjuntos decid´ıveis ´e fechada para a opera¸c˜ao bin´aria de produto cartesiano.
6. Mostre que todos os conjuntos referidos no exerc´ıcio 1 s˜ao semidecid´ıveis. 7. Mostre que todos os conjuntos referidos no exerc´ıcio 1 s˜ao co-semidecid´ıveis. 8. Mostre que todo o conjunto decid´ıvel ´e semidecid´ıvel.
10. Mostre que um conjunto A ⊆ In ´e decid´ıvel se e s´o se ´e semidecid´ıvel e ´e co-semidecid´ıvel.
11. Mostre que se A ⊆ I2 ´e decid´ıvel ent˜ao o conjunto
{x ∈ I : existe y ∈ I tal que (x, y) ∈ A} ´e semidecid´ıvel.
12. Considere o conjunto {E ∈ I : avalia(E[0])↓}. Mostre que este conjunto ´e semidecid´ıvel.
13. Considere o conjunto {E ∈ I : φE(0)↓}. Mostre que este conjunto ´e semidecid´ıvel.
14. Considere o conjunto {E ∈ I : avalia(E[0])↑}. Mostre que este conjunto ´e co-semidecid´ıvel.
15. Seja E ∈ I. Mostre que ´e semidecid´ıvel o conjunto {F ∈ I : avalia(F[E])↓}. 16. Seja E ∈ I. Mostre que ´e co-semidecid´ıvel o conjunto
{F ∈ I : avalia(F[E])↑}.
17. Considere o conjunto {E ∈ I : avalia(E[E])↓}. Mostre que este conjunto ´e semidecid´ıvel.
18. Considere o conjunto {E ∈ I : existe F ∈ I tal que avalia(E[F])↓}. Mostre que este conjunto ´e semidecid´ıvel.
19. Considere o conjunto {E ∈ I : existe F ∈ I tal que avalia(E[F])↑}. Mostre que este conjunto ´e co-semidecid´ıvel.
20. Considere o conjunto {(E, F) ∈ I2 : avalia(E[F])↓}. Mostre que este conjunto ´e semidecid´ıvel.
21. Considere o conjunto {(E, F) ∈ I2 : φE(F)↓}. Mostre que este conjunto ´e semidecid´ıvel.
22. Considere o conjunto {(E, F) ∈ I2 : φE(F)↑}. Mostre que este conjunto ´e co-semidecid´ıvel.
23. Considere o conjunto {E ∈ I : existe F ∈ I tal que avalia(E[F])=0}. Mostre que este conjunto ´e semidecid´ıvel.
24. Considere o conjunto {E ∈ I : existe F ∈ I tal que φE(F) = 0}. Mostre que este conjunto ´e semidecid´ıvel.
25. Seja F ∈ I. Mostre que ´e semidecid´ıvel o conjunto {E ∈ I : existe X ∈ I tal que avalia(E[X])=F}.
26. Considere o conjunto {(E1, E2, E3) ∈ I3 : avalia(E1[E2])=E3}. Mostre que este conjunto ´e semidecid´ıvel.
27. Mostre que o conjunto A ⊆ In ´e semidecid´ıvel se e s´o se o seu comple-mentar ´e cosemidecid´ıvel.
28. Mostre que o conjunto A ⊆ I ´e semidecid´ıvel se e s´o se ´e vazio ou admite uma enumera¸c˜ao (aplica¸c˜ao sobrejectiva de IN para A) comput´avel. 29. Mostre que um conjunto A ⊆ In ´e semidecid´ıvel se e s´o se ´e dom´ınio de
alguma fun¸c˜ao comput´avel.
30. Mostre que um conjunto A ⊆ I ´e semidecid´ıvel se e s´o se ´e contradom´ınio de alguma fun¸c˜ao comput´avel.
31. Mostre que um conjunto X ⊆ I ´e semidecid´ıvel se e s´o se existe um conjunto R ⊆ I2 decid´ıvel tal que X = {x ∈ I : existe y ⊆ I tal que (x, y) ∈ R}.
32. Mostre que todo o conjunto A ⊆ In semidecid´ıvel infinito tem um sub-conjunto infinito decid´ıvel.
33. Mostre que a classe dos conjuntos semidecid´ıveis (dum mesmo tipo) ´e fechada para as seguintes opera¸c˜oes:
(a) intersec¸c˜ao (b) reuni˜ao.
34. Mostre que a classe dos conjuntos semidecid´ıveis ´e fechada para a opera¸c˜ao bin´aria de produto cartesiano.
35. Seja C ⊆ In. Mostre que C e In\C s˜ao ambos decid´ıveis se e s´o se forem
ambos semidecid´ıveis.
36. Seja D ⊆ In um conjunto decid´ıvel e C ⊆ D. Mostre que C e D\C s˜ao ambos decid´ıveis se e s´o se forem ambos semidecid´ıveis.
37. Prove que os seguintes predicados sobre os naturais s˜ao decid´ıveis relati-vamente aos naturais:
(a) P (x) = “x ´e par” (b) P (x) = “x ´e ´ımpar”
(c) P (x) = “x ´e quadrado perfeito” (d) P (x) = “x ´e n´umero primo” (e) P (x, y) = “x ´e menor que y” (f) P (x, y) = “x ´e m´ultiplo de y” (g) P (x, y) = “x ´e divisor de y”
(h) P (x, y) = “x e y s˜ao primos entre si”
(i) P (x, y, z) = “z ´e o maior divisor comum a x e a y” (j) P (x, y, z) = “z ´e o menor m´ultiplo comum a x e a y”.
38. Prove que os seguintes predicados sobre matrizes de inteiros s˜ao decid´ıveis relativamente `as matrizes de inteiros:
(a) P (m) = “m ´e uma matriz quadrada”
(b) P (m) = “m ´e uma matriz triangular superior” (c) P (m) = “m ´e uma matriz diagonal”
(d) P (m) = “m ´e uma matriz identidade” (e) P (m1, m2) = “ a matriz m2 ´e inversa de m1”
(f) P (m1, m2) = “ a matriz m2 ´e a transposta de m1”.
39. Prove que os seguintes predicados sobre I s˜ao decid´ıveis: (a) P (E) = “E ´e um inteiro”
(b) P (E) = “E ´e uma lista”
(c) P (F, X) = “X ´e um ponto fixo de F”.
40. Sejam P1 e P2predicados sobre C ⊆ I com a mesma aridade e decid´ıveis.
Mostre que
(a) P1∧ P2 ´e um predicado decid´ıvel.
(b) P1∨ P2 ´e um predicado decid´ıvel.
(c) ¬ P1 ´e um predicado decid´ıvel.
3
Indecidibilidade
1. Mostre que existe um conjunto semidecid´ıvel que n˜ao ´e decid´ıvel.
2. Considere o conjunto das express˜oes Mathematica irredut´ıveis E tal que avalia(E[0])↓. Mostre que este conjunto n˜ao ´e decid´ıvel.
3. Seja E uma express˜ao Mathematica irredut´ıvel. Considere o conjunto das express˜oes Mathematica irredut´ıveis F tais que avalia(F[E])↓. Mostre que este conjunto n˜ao ´e decid´ıvel.
4. Considere o conjunto das express˜oes Mathematica irredut´ıveis E para as quais existe uma express˜ao Mathematica irredut´ıvel F tal que avalia(E[F])↓. Mostre que este conjunto n˜ao ´e decid´ıvel.
5. Considere o conjunto dos pares de express˜oes Mathematica irredut´ıveis (E1,E2) tais que avalia(E1[E2])↓. Mostre que este conjunto n˜ao ´e de-cid´ıvel.
6. Considere o conjunto das express˜oes Mathematica irredut´ıveis E para as quais existe uma express˜ao Mathematica irredut´ıvel F tal que avalia(E[F])=0. Mostre que este conjunto n˜ao ´e decid´ıvel.
7. Considere o conjunto dos triplos de express˜oes Mathematica irredut´ıveis (F,X,E) tais que avalia(F[X])=E. Mostre que este conjunto n˜ao ´e decid´ıvel. 8. Use o teorema de Rice para mostrar que n˜ao s˜ao decid´ıveis os seguintes
(a) {F ∈ I : φ1F(0) ↓} (b) {E ∈ I : φ1E(E) ↓}
(c) {F ∈ I : φ1F(E) ↓} em que E ∈ I
(d) {F ∈ I : existe X ∈ I tal que φ1F(X) ↓} (e) {(F, E) ∈ I2: φ1F(E) ↓}
(f) {F ∈ I : existe X ∈ I tal que φ1F(X) = 0}
(g) {F ∈ I : existe X ∈ I tal que φ1F(X) = E} em que E ∈ I (h) {(F, E) ∈ I2 : existe X ∈ I tal que φ1
F(X) = E} (i) {F ∈ I : φ1F= φ1E} em que E ∈ I
(j) {(F, E) ∈ I2 : φ1F= φ1E}
9. Mostre que n˜ao ´e semidecid´ıvel o complementar do conjunto das ex-press˜oes Mathematica irredut´ıveis E tais que avalia(E[0])↓.
10. Mostre que n˜ao ´e semidecid´ıvel o complementar do conjunto dos pares de express˜oes Mathematica irredut´ıveis (E1,E2) tais que avalia(E1[E2])↓. 11. Mostre que n˜ao ´e semidecid´ıvel o complementar do conjunto das
ex-press˜oes Mathematica irredut´ıveis E para as quais existe uma express˜ao Mathematica irredut´ıvel X tal que avalia(E[X])=0.
12. Prove que os seguintes predicados sobre express˜oes Mathematica irre-dut´ıveis s˜ao semidecid´ıveis mas n˜ao s˜ao decid´ıveis.
(a) P (F) = “avalia(F[0])↓”
(b) P (E1, E2) = “avalia(E1[E2])↓”
(c) P (E) = “existe uma express˜ao Mathematica irredut´ıvel X tal que avalia(E[X])=0”.