Você está na página 1de 2

Computabilidade

(Exame 16/01/2009)
Duração: 2:30h

I. (6 valores) Para cada uma das afirmações seguintes, indique se é verdadeira ou


falsa. Cada resposta correcta tem a cotação de 0.75 valores e cada resposta errada a de
−0.375 valores. Uma valorização total negativa, conta como 0 valores para a parte I.

( ) 1. Para todo o alfabeto A, existe um conjunto W ⊆ A? tal que W e


A? \ W são ambos efectivamente enumeráveis, mas pelo menos um dos dois
conjuntos não é decidı́vel.
( ) 2. Se f : Nk −→ N pode ser calculada por uma máquina de Turing,
então f é primitiva recursiva.
( ) 3. Qualquer função f : Nk −→ N, que é representável no λ-calculus,
é recursiva.
( ) 4. O problema de determinar se uma máquina de Turing aceita pelo
menos uma palavra é um problema decidı́vel.
( ) 5. Existe uma máquina de Turing M que aceita o conjunto vazio,
i.e. L(M ) = ∅.
( ) 6. Seja A um alfabeto, U, V ⊆ A? e σ : A? −→ A? uma função
computável, tal que α ∈ U se e só se σ(α) ∈ V . Se U é semidecidı́vel, então
V é semidecidı́vel.
( ) 7. Seja A um alfabeto, U, V ⊆ A? e σ : A? −→ A? uma função
computável, tal que α ∈ U se e só se σ(α) ∈ V . Se V é semidecidı́vel, então
U é semidecidı́vel.
( ) 8. Seja A um alfabeto, U, V ⊆ A? e σ : A? −→ A? uma função
computável. Se U é efectivamente enumerável, então o conjunto
f (U ) = { f (α) | α ∈ U } é efectivamente enumerável.

II. (14 valores) Resolva as questões seguintes, justificando devidamente as suas re-
spostas.

1. Para cada uma das afirmações seguintes, indique se são verdadeiras ou


falsas, exibindo uma prova ou um contra-exemplo.

a) Sejam U ⊆ W ⊆ A? dois conjuntos tais que W é decidı́vel e U é efecti-


vamente enumerável. Então W \ U é efectivamente enumerável.
b) Sejam U ⊆ W ⊆ A? dois conjuntos tais que W é efectivamente enu-
merável e U é decidı́vel. Então W \ U é efectivamente enumerável.

2. Considere o alfabeto A = {a, b} e L ⊆ A? , definido por

L = { an bm | n, m ≥ 0 }.

Resolva uma, e uma só, das questões seguintes:

a) escreva um programa para uma máquina de registos que decide L;

b) descreva uma máquina de Turing que reconhece L.

3. Seja A um alfabeto e U ⊆ A? . Suponha que existe uma função com-


putável f : A? → A? tal que α é o número de Gödel de uma máquina de
registos (sobre A) que pára com input , i.e. α ∈ Πhalt se e só se f (α) ∈ U .
Mostre que U não é decidı́vel.

4.

a) Mostre que f : N2 −→ N, definida por f (m, n) = m + 2 é uma função


recursiva.

b) Sabendo que a função add(m, n) = m + n é uma função primitiva recur-


siva, mostre que g : N2 −→ N, definida por g(m, n) = m ∗ n é recursiva.
Justifique que g é de facto primitiva recursiva.

5.

a) Mostre que o λ-termo λf.(λx.f (xx))(λx.f (xx)) é um operador de ponto


fixo.

b) Indique um λ-termo G para representar a função f ib : N −→ N, definida


por f ib(0) = 0, f ib(1) = 1 e f ib(n) = f ib(n − 1) + f ib(n − 2), para n ≥ 2.
Prove a correcção do termo G.

c) Mostre que ` λxyz.x(λt.tz)z : (((a → b) → b) → a → c) → d → a → c


no sistema de tipos simples dado no curso.