Exercícios de Teoria da Computação Computabilidade

Documentos relacionados
Exercícios de Teoria da Computação Computabilidade

Programação Imperativa

Exercícios de Teoria da Computação Computabilidade

Textos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014

Teoria da Computação

Programação Universidade da Beira Interior Departamento de Informática 2007/08

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

A = B, isto é, todo elemento de A é também um elemento de B e todo elemento de B é também um elemento de A, ou usando o item anterior, A B e B A.

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

Matemática Computacional

Matemática Básica. Fração geratriz e Sistema de numeração 1) 0, = ) 2, =

Hewlett-Packard CONJUNTOS NUMÉRICOS. Aulas 01 a 08. Elson Rodrigues, Gabriel Carvalho e Paulo Luiz Ramos

Exercícios: Vetores e Matrizes

1 TESTE OPÇÃO II - TEORIA DE NÚMEROS COMPUTACIONAL

ALGORITMO DE EUCLIDES

Conjuntos Numéricos Conjunto dos números naturais

Aulas Práticas. 1ª Aula Prática Perguntas sobre a Implementação de Funções Simples na Máquina URM...1

COMPUTABILIDADE 2. Indecidibilidade

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Programação imperativa

MAT 5798 Medida e Integração Exercícios de Revisão de Espaços Métricos

MA14 - Aritmética Lista 1. Unidades 1 e 2

Linguagens Formais e Problemas de Decisão

1. Múltiplos e divisores

DISCIPLINA: MATEMÁTICA DISCRETA I PROFESSOR: GISLAN SILVEIRA SANTOS CURSO: SISTEMAS DE INFORMAÇÃO SEMESTRE: TURNO: NOTURNO

Cálculo Diferencial e Integral I

I.2 Introdução a Teoria da Computação

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Universidade Federal de Santa Maria Departamento de Matemática Curso de Verão Lista 1. Números Naturais

Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte I - Matrizes

Matemática I. 1 Propriedades dos números reais

1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume.

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Programação das Aulas

D 7 C 4 U 5. MATEMÁTICA Revisão Geral Aula 1 - Parte 1. Professor Me. Álvaro Emílio Leite. Valor posicional dos números. milésimos décimos.

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Modelos de Computação

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Linguagens recursivamente enumeráveis

ÁLGEBRA LINEAR I - MAT Em cada item diga se a afirmação é verdadeira ou falsa. Justifiquei sua resposta.

Modelos de Computação Folha de trabalho n. 8

Matemática Básica Relações / Funções

Faculdade de Computação

Lista 1. 9 Se 0 < x < y e n N então 0 < x n < y n.

Laboratório de Programação A Exercícios sobre vetores e matrizes

obs: i) Salvo menção em contrário, anel = anel comutativo com unidade. ii) O conjunto dos naturais inclui o zero.

Matemática para Ciência de Computadores

if not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)

Exercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas

Capítulo 1. Funções e grácos

Notas de aula: Cálculo e Matemática Aplicados às Notas de aula: Ciências dos Alimentos

Universidade da Madeira Ano lectivo 2006/07-2º semestre Responsável: Prof. José Carmo

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

Lista de Exercícios Estrutura de Repetição

Algoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição

Funções - Terceira Lista de Exercícios

Programa Anual MATEMÁTICA EXTENSIVO

CURSO PRF 2017 MATEMÁTICA

Lista 2 TP060. Exercícios Vetores

Máquinas de Turing - Computabilidade

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Cálculo Numérico BCC760

GABARITO DO CADERNO DE RECUPERAÇÃO 1º SEMESTRE 6º ANO MATEMÁTICA

Faculdade Tecnológica de Carapicuíba Tecnologia em Logística Ênfase em Transportes Notas da Disciplina de Matemática (versão 2.1)

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2

Observação: Os sistemas de coordenadas considerados são cartesianos ortogonais. n(a B) = 23, n(b A) = 12, n(c A) = 10, n(b C) = 6 e n(a B C) = 4,

Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1

Roteiro da segunda aula presencial - ME

Matemática Discreta Parte 11

a n Sistemas de Estados Finitos AF Determinísticos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Exercícios Extra de Computação. Secção de Matemática Departamento de Engenharia Civil FEUP

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Estruturação de Procedimentos

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 05 Modularização

Instituto Superior Técnico Departamento de Matemática Última actualização: 18/Nov/2003 ÁLGEBRA LINEAR A

Revisões de Conjuntos

Introdução à Programação uma Abordagem Funcional

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

AGRUPAMENTO DE ESCOLAS DR. VIEIRA DE CARVALHO

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Programação de Computadores I BCC 701 Lista de Exercícios Módulo

Errata da lista 1: Na página 4 (respostas), a resposta da letra e da questão 13 é {2, 3, 5, 7, 11, 13, 17} (faltou o número 17)

Matemática Discreta. SLIDE 3 Professor Júlio Cesar da Silva. site:

Enumerabilidade. Capítulo 6

Aula 10: Decidibilidade

Linguagem (formal) de alfabeto Σ

Transcrição:

Licenciatura em Engenharia Informática e de Computadores - LEIC Licenciatura em Engenharia de Redes de Computadores -LERC Exercícios de Teoria da Computação Computabilidade Secção de Lógica e Computação Departamento de Matemática Instituto Superior Técnico 2007/2008

1 Programação Mathematica 1. Defina em Mathematica as seguintes funções/predicados (a) somanat que recebe um natural n e devolve a soma de todos os naturais até 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 resultante de retirar de w todos os números 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úmero de vezes que k ocorre em w (g) contemprimoq que recebe uma lista de naturais w e devolve True se e só se w contém pelo menos um número primo (h) apaga que recebe uma lista w e um número inteiro k e devolve a lista que resulta de se apagar de w todas as ocorrências de k (i) permutacao que recebe duas listas w1 e w2 e devolve True se w2 for uma permutação de w1 e False caso contrário (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 = {a 1, a 2,..., a m } e v = {b 1, b 2,..., b n } e devolve a lista {{a 1, b 1 },..., {a 1, b n },..., {a m, b 1 },..., {a m, b n }} (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édia dos elementos das colunas pares (p) contaprimosepares que recebe uma matriz de naturais e devolve um par {x, y} em que x é o número de posições da matriz que têm um elemento primo e y é o número de posições da matriz que têm um elemento par 2

(q) conta que recebe uma matriz de naturais e devolve um par {x, y} em que x é o número de colunas da matriz que não contêm primos e y é o maior número primo que ocorre na matriz (y deve ser 0 caso não 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ção k contém a média 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ção k contém o número 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úmero primo (u) triangularsuperiorq que recebe uma matriz quadrada de números inteiros e determina se a matriz é triangular superior (isto é, todos os elementos abaixo da diagonal principal são nulos) (v) triangularinferiorq que recebe uma matriz quadrada de números inteiros e determina se a matriz é triangular superior (isto é, todos os elementos acima da diagonal principal são nulos) (w) diagonalq que recebe uma matriz quadrada de números inteiros e determina se é uma matriz diagonal (x) sufixoq que recebe como argumento uma lista w de listas de números inteiros e determina se cada lista em w é sufixo de todas as listas anteriores (recorde que se diz que w1 é 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úmeros inteiros e determina se cada lista está ordenada por ordem decrescente (z) prodmatrizes que recebe duas matrizes de inteiros e devolve o respectivo produto, caso exista. 2. Assuma a seguinte representação de afd s em Mathematica: em que {lista1,lista2,lista3,e,lista4} lista1, lista2 e lista4 são listas de strings representando, respectivamente, o conjunto dos estados, o alfabeto e o conjunto dos estados finais e é uma string que representa o estado inicial lista3 é uma lista de listas de strings do tipo {e1,s,e2}; cada uma destas listas representa uma transição (e1 é o estado de partida, e2 é o estado de chegada e s é o símbolo do alfabeto). 3

Defina em Mathematica as seguintes funções/predicados: (a) delta que dado um afd calcula a sua função transição (b) deltatotalq que dado um afd devolve True se a sua função de transição é total e False caso contrário (pode usar a função delta e a função prodcart do exercício 1m) (c) deltatotalq usando agora apenas a função delta (d) deltastar que dado um afd calcula a sua função transição estendida (pode usar a função delta) (e) aceitaq que dado um afd e uma palavra sobre o alfabeto (string) devolve True se a palavra é aceite pelo afd e False caso contrário (f) prodq que dado um afd e um estado devolve True se o estado é produtivo e False caso contrário (g) acessq que dado um afd e um estado devolve True se o estado é acessível e False caso contrário (h) utq que dado um afd e um estado devolve True se o estado é útil e False caso contrário (i) cjeprods, cjeacess, cjeuts e cjeinuts que dado um afd e um estado devolvem, respectivamente, o conjunto dos estados produtivos, acessíveis, úteis e inúteis (j) afdcomplementar que dado um afd constrói o afd complementar (k) afdproduto que dados dois afd s constrói o respectivo afd produto. 3. Assuma a seguinte representação de afnd ɛ s em Mathematica: {lista1,lista2,lista3,e,lista4} em que os diferentes elementos são semelhantes aos da representação de afd s acima referida, mas neste caso lista3 é uma lista de listas de strings do tipo {e1,s,cje} em que e1 é um estado, s é um símbolo do alfabeto ou ɛ e cje é uma lista de estados. Defina em Mathematica as seguintes funções/predicados: (a) delta que dado um afnd ɛ calcula a sua função transição (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ção de transição estendida (pode usar a função delta) (d) deltastarnde que dado um afnd ɛ calcula a sua função de transição estendida (pode usar as funções delta e fechoeps) (e) aceitaq que dado um afnd ɛ e uma palavra sobre o alfabeto (string) devolve True se a palavra é aceite pelo afd e False caso contrário (f) afndtoafd que dado um afnd (sem movimentos-ɛ) constrói um afd equivalente 4

(g) afdsoma que dados dois afnd ɛ A 1 e A 2 constrói um afnd ɛ A tal que L A = L A1 L A2 (h) afdconc que dados dois afnd ɛ A 1 e A 2 constrói um afnd ɛ A tal que L A = L A1 L A2 (i) afdfechokleene que dados um afnd ɛ A 1 constrói um afnd ɛ A tal que L A = (L A1 ). 4. Assuma a representação de afnd ɛ s em Mathematica apresentada anteriormente e a seguinte representação de gramáticas regulares em Mathematica: em que {lista1,lista2,lista3,s} lista1 e lista2 são listas de strings representando, respectivamente, o conjunto dos símbolos auxiliares e o alfabeto s é uma string que representa o símbolo inicial lista3 é uma lista de listas de strings do tipo {le,ld}; cada uma destas listas representa uma produção (le é lado esquerdo e ld é o lado direito). Defina em Mathematica a função afndtogr que dado um afnd ɛ A constrói uma gramática regular G tal que L A = L G. 5. Defina em Mathematica as funções seguintes usando apenas atribuições do tipo x=y, x=0, x=x+1, composição sequencial (;), composições alternativas do tipo If[x==y,prog] e composições iterativas do tipo While[x==y,prog] em que x e y são nomes, e prog volta a ser construído apenas com expressões do tipo indicado: (a) menorq, que dados dois inteiros não negativos x e y devolve True se x é menor que y e False caso contrário. (b) menorigualq, que dados dois inteiros não negativos x e y devolve True se x é menor ou igual que y e False caso contrário. (c) parq, que dado um inteiro não negativo x devolve True se x é par e False caso contrário. (d) imparq, que dado um inteiro não negativo x devolve True se x é impar e False caso contrário. (e) soma, que dados dois inteiros não negativos x e y devolve a sua soma. (f) diferenca, que dados dois inteiros não negativos x e y devolve x y se x y e 0 caso contrário. (g) produto, que dados dois inteiros não negativos x e y devolve o seu produto. (h) quociente, que dados dois inteiros não negativos x e y devolve o quociente da divisão inteira de x por y. 5

(i) potencia, que dados dois inteiros não negativos x e y devolve x y, usando também atribuições do tipo x=y+z. (j) raiz, que dados dois inteiros não negativos x e y devolve a raiz de índice y inteira de x, usando também atribuiçõesdo tipo x=y+z e condições do tipo x<y. (k) expoentefact, que dados dois inteiros positivos x e y devolve o expoente do y-ésimo primo na factorização prima de x se x e y, usando também atribuições do tipo x=y*z, condições do tipo x<y e as funções Mod e PrimeQ. (l) log, que dados dois inteiros positivos x e y devolve o logaritmo inteiro de x na base y se y é maior que 1 e 0 caso contrário, usando também atribuições do tipo x=y*z e condições do tipo x<y. (m) multiploq, que dados dois inteiros não negativos x e y devolve True se x é múltiplo de y e False caso contrário, usando também atribuições do tipo x=y+z. (n) divisorq, que dados dois inteiros positivos x e y devolve True se x é divisor de y e False caso contrário: i. usando também atribuições do tipo x=y-z ii. usando também atribuições do tipo x=y+z e condições do tipo x<y iii. usando também atribuições do tipo x=y*z e condições do tipo x<y (o) qperfeitoq, que dado um natural devolve True se é quadrado perfeito e False caso contrário; neste caso pode usar a função Mod. (p) primoq, que dado um inteiro positivo devolve True se é primo e False caso contrário; neste caso pode usar a função Mod. (q) primentresiq, que dados dois inteiros positivos devolve True se são primos entre si e False caso contrário, usando também atribuições do tipo x=y+z e condições do tipo x<y. (r) mdc, que dados dois inteiros positivos devolve o seu máximo divisor comum, usando também atribuições x=y-z e condições x<y. (s) mmc, que dados dois inteiros positivos devolve o seu menor múltiplo comum, usando também atribuições x=y*z e condições x<y. 6. Mostre que são computáveis as seguintes funções (recorde que I é o conjunto das expressões Mathematica irredutíveis) (a) g : I 2 I tal que se x e y são inteiros positivos g(x, y) é o expoente do x-ésimo primo na decomposição de y em números primos e, caso contrário, é a string argumentos inválidos (b) f : I I tal que se x é um inteiro positivo então f(x) é uma lista (sem repetições) de listas {p, e}, com p primo e e 0 o expoente de p na decomposição de x em números primos, e caso contrário é a string argumento inválido 6

(c) f : I I tal que se m é uma lista inteiros então f(m) é o número de primos que ocorre nessa lista e, caso contrário, é a string argumento inválido (d) f : I I tal que se m é uma lista então f(m) é a lista que resulta de eliminar os elementos repetidos de m e, caso contrário, é a string argumento inválido (e) f : I I tal que se m é uma matriz de inteiros então f(m) é o produto de todos os seus elementos e, caso contrário, é a string argumento inválido (f) f : I I tal que se m é uma matriz de inteiros então f(m) é número de zeros que ocorrem em m e, caso contrário, é a string argumento inválido (g) f : I I tal que se m é uma matriz então f(m) é número de strings que ocorrem em m e, caso contrário, é a string argumento inválido (h) g : I 2 I tal que se x e y são listas x = {a 1, a 2,..., a m } e y = {b 1, b 2,..., b n } g(x, y) é a lista {{a 1, b 1 },..., {a 1, b n },..., {a m, b 1 },..., {a m, b n }} e, caso contrário, é a string argumentos inválidos (i) g : I 2 I tal que se x é uma lista de listas de inteiros e k é um inteiro então g(x, k) é a lista que contém todas as listas em x nas quais ocorre k e, caso contrário, é a string argumentos inválidos (j) f : I I tal que se x é um afd (representado com no exercício 2) então f(x) é a lista dos estados produtivos de x e, caso contrário, é a string argumento inválido. 7. Mostre que são computáveis as seguintes funções (recorde que I é o conjunto das expressões Mathematica irredutíveis) (a) c : I 2 I tal que c(x, y) = 1 se x e y são inteiros não negativos e x é múltiplo de y e c(x, y) = 0 nos outros casos (b) c : I 2 I tal que c(x, y) = 1 se x e y são inteiros positivos e x é divisor de y e c(x, y) = 0 nos outros casos (c) c : I 3 I tal que c(x, y, z) = 1 se x, y e z são inteiros positivos e z é o maior divisor comum a x e a y e c(x, y, z) = 0 nos outros casos (d) c : I 3 I tal que c(x, y, z) = 1 se x, y e z são inteiros positivos e z é o menor múltiplo 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 é uma lista de inteiros pares e c(x) = 0 nos outros casos (f) c : I I tal que c(s) = 1 se s é uma string e c(s) = 0 nos outros casos (g) c : I I tal que c(s) = 1 se s é uma string de letras c(s) = 0 nos outros casos 7

(h) c : I I tal que c(x) = 1 se x é um natural e é capicua e c(x) = 0 nos outros casos (i) c : I I tal que c(m) = 1 se m é uma matriz diagonal de inteiros e c(m) = 0 nos outros casos (j) c : I I tal que c(m) = 1 se m é uma matriz identidade e c(m) = 0 nos outros casos (k) c : I I tal que c(m) = 1 se m é uma matriz triangular superior de inteiros e c(m) = 0 nos outros casos (l) c : I 2 I tal que c(s, I) = 1 se I é um alfabeto (lista em que cada elemento é uma letra ou um dígito) e s é uma palavra sobre I e c(x, y) = 0 nos outros casos (m) c : I 2 I tal que c(x, y) = 1 se x e y são listas e todos os elementos de x ocorrem em y e c(x, y) = 0 nos outros casos. (n) c : I 2 I tal que c(x, y) = 1 se x e y são listas e x é uma permutação y e c(x, y) = 0 nos outros casos. 2 Decidibilidade e semidecidibilidade 1. Mostre que são decidíveis os conjuntos seguintes: (a) o conjunto NatP ar I dos naturais pares (b) o conjunto NatImp I dos naturais ímpares (c) o conjunto NatP rim I dos naturais primos (d) o conjunto NatQP I dos naturais que são quadrados perfeitos (e) o conjunto Mult I 2 em que Mult = {(x, y) I 2 : x e y são naturais e x é múltiplo de y} (f) o conjunto Div I 2 em que Div = {(x, y) I 2 : x e y são naturais e x é divisor de y} (g) o conjunto MDC I 3 em que MDC = {(x, y, z) I 3 : x, y e z são naturais e z é o maior divisor comum a x e a y} (h) o conjunto MMC I 3 em que MMC = {(x, y, z) I 3 : x, y e z são naturais e z é o menor múltiplo comum a x e a y} (i) o conjunto CP rim I 2 em que CP rim = {(x, y) I 2 : x e y são naturais e x, y são coprimos} (recorde-se que x e y são coprimos, ou primos entre si, se o maior divisor comum a x e y é 1) (j) o conjunto ListCP ar I das listas de inteiros de comprimento par (k) o conjunto StringI I 2 em que StringI = {(s, I) I 2 : s é uma string sobre o alfabeto I} 8

(l) o conjunto SubList I 2 em que SubList = {(x, y) I 2 : x e y são listas e todos os elementos de x ocorrem em y} (m) o conjunto MQ I das matrizes quadradas de inteiros (n) o conjunto MT S I das matrizes triangulares superiores de inteiros (o) o conjunto MT I I das matrizes triangulares inferiores de inteiros (p) o conjunto MD I das matrizes diagonais de inteiros (q) o conjunto Cap I em que Cap = {x I : x é natural x é capicua} (r) o conjunto I das expressões Mathematica irredutíveis. 2. Assuma a representação de afd s em Mathematica referida no exercício 2 da secção 1. (a) Mostre que é decidível o conjunto Afd I das listas que constituem uma representação de um afd (b) Seja D I um afd. Mostre que são decidíveis os seguintes conjuntos: i. o conjunto L(D) I em que L(D) = {x I : x é uma String e x é 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úteis de D v. o conjunto EstDst(D) I 2 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) I 2 : w é uma String, D é um afd e w é aceite por D} 3. Mostre que todo o conjunto finito é decidível. 4. Mostre que a classe dos conjuntos decidíveis (dum mesmo tipo) é fechada para as seguintes operações: (a) intersecção (b) reunião (c) complementação. 5. Mostre que a classe dos conjuntos decidíveis é fechada para a operação binária de produto cartesiano. 6. Mostre que todos os conjuntos referidos no exercício 1 são semidecidíveis. 7. Mostre que todos os conjuntos referidos no exercício 1 são co-semidecidíveis. 8. Mostre que todo o conjunto decidível é semidecidível. 9. Mostre que todo o conjunto decidível é co-semidecidível. 9

10. Mostre que um conjunto A I n é decidível se e só se é semidecidível e é co-semidecidível. 11. Mostre que se A I 2 é decidível então o conjunto {x I : existe y I tal que (x, y) A} é semidecidível. 12. Considere o conjunto {E I : avalia(e[0]) }. Mostre que este conjunto é semidecidível. 13. Considere o conjunto {E I : φ E (0) }. Mostre que este conjunto é semidecidível. 14. Considere o conjunto {E I : avalia(e[0]) }. Mostre que este conjunto é co-semidecidível. 15. Seja E I. Mostre que é semidecidível o conjunto {F I : avalia(f[e]) }. 16. Seja E I. Mostre que é co-semidecidível o conjunto {F I : avalia(f[e]) }. 17. Considere o conjunto {E I : avalia(e[e]) }. Mostre que este conjunto é semidecidível. 18. Considere o conjunto {E I : existe F I tal que avalia(e[f]) }. Mostre que este conjunto é semidecidível. 19. Considere o conjunto {E I : existe F I tal que avalia(e[f]) }. Mostre que este conjunto é co-semidecidível. 20. Considere o conjunto {(E, F) I 2 : avalia(e[f]) }. Mostre que este conjunto é semidecidível. 21. Considere o conjunto {(E, F) I 2 : φ E (F) }. Mostre que este conjunto é semidecidível. 22. Considere o conjunto {(E, F) I 2 : φ E (F) }. Mostre que este conjunto é co-semidecidível. 23. Considere o conjunto {E I : existe F I tal que avalia(e[f])=0}. Mostre que este conjunto é semidecidível. 24. Considere o conjunto {E I : existe F I tal que φ E (F) = 0}. Mostre que este conjunto é semidecidível. 25. Seja F I. Mostre que é semidecidível o conjunto {E I : existe X I tal que avalia(e[x])=f}. 26. Considere o conjunto {(E1, E2, E3) I 3 : avalia(e1[e2])=e3}. Mostre que este conjunto é semidecidível. 27. Mostre que o conjunto A I n é semidecidível se e só se o seu complementar é cosemidecidível. 10

28. Mostre que o conjunto A I é semidecidível se e só se é vazio ou admite uma enumeração (aplicação sobrejectiva de IN para A) computável. 29. Mostre que um conjunto A I n é semidecidível se e só se é domínio de alguma função computável. 30. Mostre que um conjunto A I é semidecidível se e só se é contradomínio de alguma função computável. 31. Mostre que um conjunto X I é semidecidível se e só se existe um conjunto R I 2 decidível tal que X = {x I : existe y I tal que (x, y) R}. 32. Mostre que todo o conjunto A I n semidecidível infinito tem um subconjunto infinito decidível. 33. Mostre que a classe dos conjuntos semidecidíveis (dum mesmo tipo) é fechada para as seguintes operações: (a) intersecção (b) reunião. 34. Mostre que a classe dos conjuntos semidecidíveis é fechada para a operação binária de produto cartesiano. 35. Seja C I n. Mostre que C e I n \C são ambos decidíveis se e só se forem ambos semidecidíveis. 36. Seja D I n um conjunto decidível e C D. Mostre que C e D\C são ambos decidíveis se e só se forem ambos semidecidíveis. 37. Prove que os seguintes predicados sobre os naturais são decidíveis relativamente aos naturais: (a) P (x) = x é par (b) P (x) = x é ímpar (c) P (x) = x é quadrado perfeito (d) P (x) = x é número primo (e) P (x, y) = x é menor que y (f) P (x, y) = x é múltiplo de y (g) P (x, y) = x é divisor de y (h) P (x, y) = x e y são primos entre si (i) P (x, y, z) = z é o maior divisor comum a x e a y (j) P (x, y, z) = z é o menor múltiplo comum a x e a y. 38. Prove que os seguintes predicados sobre matrizes de inteiros são decidíveis relativamente às matrizes de inteiros: 11

(a) P (m) = m é uma matriz quadrada (b) P (m) = m é uma matriz triangular superior (c) P (m) = m é uma matriz diagonal (d) P (m) = m é uma matriz identidade (e) P (m 1, m 2 ) = a matriz m 2 é inversa de m 1 (f) P (m 1, m 2 ) = a matriz m 2 é a transposta de m 1. 39. Prove que os seguintes predicados sobre I são decidíveis: (a) P (E) = E é um inteiro (b) P (E) = E é uma lista (c) P (F, X) = X é um ponto fixo de F. 40. Sejam P 1 e P 2 predicados sobre C I com a mesma aridade e decidíveis. Mostre que (a) P 1 P 2 é um predicado decidível. (b) P 1 P 2 é um predicado decidível. (c) P 1 é um predicado decidível. 3 Indecidibilidade 1. Mostre que existe um conjunto semidecidível que não é decidível. 2. Considere o conjunto das expressões Mathematica irredutíveis E tal que avalia(e[0]). Mostre que este conjunto não é decidível. 3. Seja E uma expressão Mathematica irredutível. Considere o conjunto das expressões Mathematica irredutíveis F tais que avalia(f[e]). Mostre que este conjunto não é decidível. 4. Considere o conjunto das expressões Mathematica irredutíveis E para as quais existe uma expressão Mathematica irredutível F tal que avalia(e[f]). Mostre que este conjunto não é decidível. 5. Considere o conjunto dos pares de expressões Mathematica irredutíveis (E1,E2) tais que avalia(e1[e2]). Mostre que este conjunto não é decidível. 6. Considere o conjunto das expressões Mathematica irredutíveis E para as quais existe uma expressão Mathematica irredutível F tal que avalia(e[f])=0. Mostre que este conjunto não é decidível. 7. Considere o conjunto dos triplos de expressões Mathematica irredutíveis (F,X,E) tais que avalia(f[x])=e. Mostre que este conjunto não é decidível. 8. Use o teorema de Rice para mostrar que não são decidíveis os seguintes conjuntos: 12

(a) {F I : φ 1 F (0) } (b) {E I : φ 1 E (E) } (c) {F I : φ 1 F (E) } em que E I (d) {F I : existe X I tal que φ 1 F (X) } (e) {(F, E) I 2 : φ 1 F (E) } (f) {F I : existe X I tal que φ 1 F (X) = 0} (g) {F I : existe X I tal que φ 1 F (X) = E} em que E I (h) {(F, E) I 2 : existe X I tal que φ 1 F (X) = E} (i) {F I : φ 1 F = φ1 E } em que E I (j) {(F, E) I 2 : φ 1 F = φ1 E } 9. Mostre que não é semidecidível o complementar do conjunto das expressões Mathematica irredutíveis E tais que avalia(e[0]). 10. Mostre que não é semidecidível o complementar do conjunto dos pares de expressões Mathematica irredutíveis (E1,E2) tais que avalia(e1[e2]). 11. Mostre que não é semidecidível o complementar do conjunto das expressões Mathematica irredutíveis E para as quais existe uma expressão Mathematica irredutível X tal que avalia(e[x])=0. 12. Prove que os seguintes predicados sobre expressões Mathematica irredutíveis são semidecidíveis mas não são decidíveis. (a) P (F) = avalia(f[0]) (b) P (E1, E2) = avalia(e1[e2]) (c) P (E) = existe uma expressão Mathematica irredutível X tal que avalia(e[x])=0. 13