Exercícios de Lógica Computacional

Documentos relacionados
Lógica Computacional (CC2003)

Lógica Computacional DCC/FCUP 2017/18

Noções de Lógica Matemática. Domingos Moreira Cardoso Maria Paula Carvalho

Cálculo de Predicados 1

Cálculo de Predicados

DIM Resolução e método tableaux DIM / 37

SCC Capítulo 2 Lógica de Predicados

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

Lógica Computacional

Lógica Computacional

Lógica Computacional Aulas 8 e 9

NHI Lógica Básica (Lógica Clássica de Primeira Ordem)

Fundamentos de Lógica Matemática

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Teoria dos Conjuntos MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES. Fundamentos de Lógica Técnicas Elementares de Prova A NOÇÃO DE CONJUNTO

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

A sintaxe do cálculo de predicados (II), cap. 7 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

CÁLCULO DIFERENCIAL E INTEGRAL I LMAC, MEBIOM, MEFT 1 o SEM. 2014/15 2 a FICHA DE EXERCÍCIOS. k + e 1 x, x > 0 f(x) = x cos 1, x > 0

Fórmulas da lógica proposicional

Instituto Universitário de Lisboa

Capítulo 3 Lógica de Primeira Ordem

MD Lógica de Proposições Quantificadas Cálculo de Predicados 1

Exemplo 7 1 I. p q: Se o time joga bem, então o time ganha o campeonato. q s: Se o time ganha o campeonato então. s: Os torcedores não estão felizes.

Lógica para computação - Linguagem da Lógica de Predicados

Capítulo Topologia e sucessões. 7.1 Considere o subconjunto de R 2 : D = {(x, y) : xy > 1}.

Sistema dedutivo. Sistema dedutivo

FOLHAS DE PROBLEMAS DE MATEMÁTICA II CURSO DE ERGONOMIA PEDRO FREITAS

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

ÁLGEBRA LINEAR I - MAT0032

Alfabeto da Lógica Proposicional

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Cálculo Diferencial e Integral II Resolução do Exame/Teste de Recuperação 02 de Julho de 2018, 15:00h - versão 2 Duração: Exame (3h), Teste (1h30)

EXERCÍCIOS DE ELEMENTOS DE MATEMÁTICA II (BQ, CTA, EFQ, Q) 2002/2003. Funções reais de várias variáveis

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

Cálculo Diferencial e Integral II

Lógica Computacional. Nelma Moreira. Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto

Fórmulas Bem Formadas (wff) Prioridade dos Conectivos. Prioridade dos Conectivos. Semântica do CR. Semântica do CR

Álgebra linear A Primeira lista de exercícios

Derivadas Parciais - parte 1. 1) Determine as derivadas parciais de primeira ordem da função.

Os Fundamentos: Lógica de Predicados

1 Lógica de primeira ordem

(g) (G, +, ) sendo G = {a + ib a, b Z}, o conjunto dos inteiros de Gauss, + e a adição e a multiplicação usuais de números complexos.

Relações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5)

O sucessor de um inteiro par é ímpar (1) (2) 2 é um inteiro par Alguns mamíferos são ferozes

Álgebra Linear. Curso: Engenharia Electrotécnica e de Computadores 1 ō ano/1 ō S 2006/07

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

exercícios de álgebra linear 2016

MAT Álgebra Linear para Engenharia II - Poli 2 ō semestre de ā Lista de Exercícios

Questão 4 (2,0 pontos). Defina função convexa (0,5 pontos). Seja f : I R uma função convexa no intervalo aberto I. Dado c I (qualquer)

Sistemas de Equações Lineares e Matrizes

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Matemática para Ciência de Computadores

Lógica Proposicional

Sistemas Dedutivos Lógica de 1ª. Ordem (LPO)

Lógica dos Conectivos: árvores de refutação

Lógica Computacional

Apostila de Lógica para Computação Segunda unidade: Lógica de Predicados

FICHA DE TRABALHO N.º 2 MATEMÁTICA A - 10.º ANO CONJUNTOS E CONDIÇÕES

ELEMENTOS DE MATEMÁTICA DISCRETA Exame de Segunda Data 18/01/2011

Lógica Proposicional Métodos de Validação de Fórmulas. José Gustavo de Souza Paiva. Introdução

Lógica Computacional Aula 1

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

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

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Lógica Computacional

Departamento de Matemática da Universidade de Coimbra. Licenciatura em Matemática. e B =

Transcrição:

Exercícios de Lógica Computacional Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: sbb@ncc.up.pt 2000

CONTEÚDO 2 Conteúdo 1 Cálculo proposicional 3 2 Lógica de primeira ordem 7 3 Decidibilidade 12 4 Programação em lógica 15 4.1 Forma normal prenexa e skolemização......................... 15 4.2 Fórmulas de Horn e Programas definidos........................ 16 4.3 Unificação......................................... 18 4.4 Pontos Fixos....................................... 20 4.5 Resolução-SLD...................................... 20

1 Cálculo proposicional 3 1 Cálculo proposicional Exercício 1.1 Das fórmulas seguintes, indique quais são tautologias. Para as restantes verifique se são ou não satisfazíveis. 1. (p q) p; 2. (p (q s)) (q (p s)); 3. (p s) (((p (q s)) ((p q) s))); 4. ((p q) p) p; 5. (p q) ((q s) (p s)); 6. ((p q) (s t)) ((p s) (q t)); 7. ((p q) (s t)) ((p s) (q t)). Exercício 1.2 A proposição Smith foi o assassino é ou não uma consequência das proposições se Jones não encontrou Smith na noite passada, então Smith foi o assassino ou Jones mente, se Smith não foi o assassino, então Jones não encontrou Smith na noite passada e o assassinio sucedeu depois da meia noite e se o assassinio sucedeu depois da meia noite, então Smith foi o assassino ou Jones mente. Exercício 1.3 Será possível cumprir simultaneamente todas as instruções seguintes? se caminhar em silêncio então não tenha um revólver carregado, ou use óculos escuros; se tiver um revólver carregado, então caminhe em silêncio ou não use óculos escuros; se usar óculos escuros ou tiver um revólver carregado, então caminhe em silêncio. caminhe em silêncio ou tenha um revólver carregado, e se tiver um revólver carregado então não caminhe em silêncio; Exercício 1.4 Imagine as seguintes regras para escolher disciplinas de opção para o próximo ano lectivo: R1: Se escolher Topologia, então escolha também Algebra II ou Análise Superior. R2: Escolha Análise Superior se e só se escolher Topologia ou Algebra II. R3: Não pode escolher as três, mas tem que escolher pelo menos uma das três disciplinas. R4: Se não escolher Análise Superior, então escolha as outras duas. 1. É possível satisfazer este conjunto de regras? 2. Será que a regra R4 é realmente necessária? E a regra R1? 3. Indique uma regra simples, mas equivalente a este conjunto (confuso) de quatro regras.

1 Cálculo proposicional 4 Exercício 1.5 Numa povoação em que parte dos habitantes falam sempre verdade e os restantes mentem sempre, existe uma bifurcação duma estrada, conduzindo um dos caminhos à cidade mais próxima. Se quisermos saber qual é esse caminho, qual deve ser a pergunta que devemos fazer a um habitante que esteja na bifurcação, de tal modo que ele possa responder com um simples sim ou não. Exercício 1.6 Três indivíduos, A, B, e C, suspeitos de um crime, fazem os seguintes depoimentos, respectivamente: A: B é culpado, mas C é inocente; B: Se A é culpado, então C é culpado; C: Eu estou inocente, mas um dos outros dois é culpado. 1. Os três depoimentos são compatíveis? 2. Algum dos depoimentos é consequência dos outros dois? 3. Supondo os três réus inocentes, quem mentiu? 4. Supondo que todos disseram a verdade, quem é inocente e quem é culpado? 5. Supondo que os inocentes disseram a verdade e os culpados mentiram, quem é inocente e quem é culpado? Exercício 1.7 Justifique a validade ou falsidade de cada uma das afirmações seguintes, apresentando provas ou contra-exemplos: 1. se Γ = θ e Γ Σ, então Σ = θ; 2. se Γ = θ e Σ = θ, então Γ Σ = θ; 3. se ϕ, ψ = θ γ, e ϕ = θ, então ϕ, ψ = γ; 4. ϕ = ψ θ e γ = ψ, se e só se ϕ, γ = θ; 5. se Σ é realizável, então Σ {ϕ} é realizável ou Σ { ϕ} é realizável qualquer que seja ϕ; 6. se Σ {ϕ} é realizável, então Σ { ϕ} não é realizável. Exercício 1.8 Indique uma fórmula ϕ em forma disjuntiva normal cuja função de verdade é F ϕ : {v, f} 3 {v, f} com F ϕ (v, v, v) = f F ϕ (v, v, f) = v F ϕ (v, f, v) = v F ϕ (v, f, f) = f F ϕ (f, v, v) = f F ϕ (f, v, f) = f F ϕ (f, f, v) = v F ϕ (f, f, f) = f Exercício 1.9 Mostre que {, } e {, } são conjuntos completos de conectivas.

1 Cálculo proposicional 5 Exercício 1.10 Mostre que existem funções f : {v, f} 2 {v, f} que não podem ser obtidas como funções de verdade associadas a fórmulas nas quais intervêm somente as conectivas e. [Sugestão: mostre que a função de verdade associada a uma tal fórmula em duas variáveis proposicionais assume o valor v num número par de pontos de {v, f} 2.] Conclua que o conjunto de conectivas {, } não é completo. Exercício 1.11 Uma fórmula da forma (α 11... α 1k1 )... (α n1... α nkn ) onde cada α ij é uma variável proposicional ou a negação de uma variável proposicional diz-se uma fórmula em forma conjuntiva normal. Mostre que toda a fórmula do cálculo proposicional é semanticamente equivalente a uma fórmula em forma conjuntiva normal. Exercício 1.12 Justifique a validade ou falsidade de cada uma das afirmações seguintes, apresentando provas ou contra-exemplos: 1. se θ, então ϕ 1,..., ϕ n θ; 2. se ϕ 1,..., ϕ n θ, então θ; 3. se ϕ 1, ϕ 2 θ, então ϕ 2, ϕ 1 θ; 4. se ϕ 1, ϕ 2 ψ θ e ϕ 1, ϕ 2 ψ, então ϕ 1, ϕ 2 θ; 5. se ϕ 1, ϕ 2 ψ θ e ϕ 1 ψ, então ϕ 1, ϕ 2 θ; 6. se ϕ 1, ϕ 2 ψ θ e ϕ 1 ψ, então ϕ 1 θ; 7. se ϕ 1 ψ θ e ϕ 2 ψ, então ϕ 1, ϕ 2 θ; 8. se ϕ, ϕ θ se e só se ϕ θ. Exercício 1.13 Use a prova do teorema da dedução para construir uma dedução da fórmula ϕ ((ϕ θ) θ) a partir de uma dedução de (ϕ θ) θ a partir de ϕ. Exercício 1.14 Sem utilizar a completude do cálculo proposicional mostre que: 1. ϕ ϕ; 2. (ϕ (ψ θ)) (ψ (ϕ θ)); 3. ( ψ ϕ) (ϕ ψ); 4. ϕ ϕ; 5. ϕ ϕ; 6. ϕ (ϕ ψ); 7. (ϕ ψ) ( ψ ϕ); 8. ( ϕ ϕ) ϕ; 9. ϕ ( ψ (ϕ ψ));

1 Cálculo proposicional 6 10. (ϕ ψ) (( ϕ ψ) ψ); 11. (ϕ ψ) ψ; 12. (ϕ ψ) ϕ; 13. ϕ (ψ (ϕ ψ)); 14. (ϕ ψ) ψ; 15. ϕ (ϕ ψ).

2 Lógica de primeira ordem 7 2 Lógica de primeira ordem Exercício 2.1 Seja L uma linguagem de primeira ordem com igualdade e tal que F 0 F 1 = {g}, R 1 = {R} e R 2 = {P, Q}. = {a}, 1. Determine o conjunto T de termos de L e o conjunto T 0. 2. Para cada uma das seguintes fórmulas de L diga quais as ocorrências livres de variáveis. (a) xr(x) P (x, x) (b) x(p (x, y) y Q(x, y)) (c) x x = x x y x y (d) x(r(g(x)) P (a, x)) yq(y, x) (e) x y(x y xr(x)) 3. Para cada uma das fórmulas em 2 indique quais as fórmulas atómicas que nela ocorrem. 4. Seja A a estrutura de L definida por: o universo de A é o conjunto de números naturais N = {0, 1,...}; a A = 2; g A (n) = n + 1, para n N; R A = {n N n é par}; P A = {(n, m) N 2 n m}; Q A =. Para cada uma das proposições seguintes diga se é verdadeira ou falsa em A. (a) xg(x) = a xg(x) x (b) x yq(x, y) (c) R(a) x y Q(x, y) (d) x(r(x) x R(g(g(x))) ) (e) x yp (x, y) (f) y xp (x, y) (g) y xp (y, x) (h) x(r(x) y(y = g(x) R(y)) 5. Para cada uma das proposições seguintes indique uma estrutura de L onde ela é verdadeira e outra onde ela é falsa. Pode concluir que nenhuma das proposições e também nenhuma negação de uma das proposições é uma fórmula válida? (a) x y x = y (b) x yp (x, y) y xp (x, y) (c) x x = a (d) x y(r(x) R(y))

2 Lógica de primeira ordem 8 (e) z(g(z) a z(g(z) = a)) (f) x Q(x, g(x)) x P (a, x) (g) y( x(r(x) P (x, x)) (R(y) xp (x, x))) Exercício 2.2 Seja L uma linguagem de primeira ordem com igualdade e tal que F 0 = {a, b}, F 1 = {g}, F 2 = {f}, R 2 = {S}. Considere A a estrutura de L definida por: o universo de A é o conjunto de números inteiros Z = {..., 1, 0, 1,...}; a A = 0; b A = 7; g A (n) = n 2, para n Z; f A (n, m) = n m, para n, m Z; S A = {(2, 1), (3, 3)}. Sejam x, y Var e s 1, s 2 : Var Z interpretações tais que { s1 (x) = 0 s 1 (y) = 7 e { s2 (x) = 1 s 2 (y) = 1 1. Para cada um dos termos seguintes t determine s 1 (t) e s 2 (t). (a) g(x) (b) g(y) (c) f(a, g(f(x, y))) (d) g(g(f(b, b))) (e) f(a, a) 2. Para cada uma das fórmulas seguintes ϕ diga se A = ϕ[s 1 ] e se A = ϕ[s 2 ]. (a) S(f(x, y), x) (b) x S(x, x) (c) x(x = a y = b) (d) x(x = a y = b) (e) y z(f(y, z) = a x g(f(z, y)) (f) z((f(x, y) = z S(z, x)) x S(x, x)) Exercício 2.3 Seja L uma linguagem de primeira ordem sem igualdade e tal que F 0 = {0}, F 1 = {s} e R 2 = {D}. Em L considere o conjunto de fórmulas Φ = { D(0, 0), x y(d(x, y) D(s(x), s(s(y)))) }. 1. Determine o conjunto T 0 e o conjunto de fórmulas atómicas fechadas de L. 2. Considere A a estrutura de L definida por:

2 Lógica de primeira ordem 9 o universo de A é o conjunto de termos fechados T 0 ; 0 A = 0; s A (t) = s(t), para t T 0 ; D A = {(s(... s( 0)...), s(... s( 0)...)) n 0}. }{{}}{{} n 2n Mostre que A é um modelo de Φ. 3. Mostre que Φ = D(s(0), s(s(0))) e Φ = D(s(s(0)), s(s(s(s(0))))), mas Φ = D(0, s(0)). Exercício 2.4 Para cada uma das fórmulas seguintes ϕ e termos t determine ϕ t x. 1. ϕ é x g(y) z(p (z) R(x, y)) e t é g(y); 2. ϕ é xs(x, x) z(p (z) R(x, z)) e t é h(x, y, z); 3. z(x = g(y, z) ( y xp (x, y) Q(x)) e t é x. Exercício 2.5 Justifique a validade ou falsidade de cada uma das afirmações seguintes, apresentando provas ou contra-exemplos: 1. a variável x é substituível pelo termo y em x y Q(x, y) P (x, y, y) 2. a variável x é substituível pelo termo h(x, y, z) em xs(x, x) z(p (z) R(x, z)); 3. uma variável x é substituível por x em ϕ qualquer que seja a fórmula ϕ; 4. ϕ x x é ϕ qualquer que seja a fórmula ϕ e a variável x; 5. (ϕ y x) x y é ϕ qualquer que seja a fórmula ϕ e as variáveis x e y; 6. se x não ocorre livre em ϕ, então x é substituível por qualquer termo t (em ϕ). Exercício 2.6 Numa linguagem de primeira ordem com igualdade e com um símbolo relacional binário P seja ϕ a fórmula yp (x, y). 1. Justifique que a variável x não é substituível por y em ϕ. 2. Determine ϕ y x. 3. Indique um contramodelo para a proposição x yp (x, y) yp (y, y), i.e. uma estrutura A tal que A = x yp (x, y) yp (y, y). 4. Justifique a restrição de que uma fórmula da forma xϕ ϕ t x só é uma instância do axioma 4 se x for substituível por t em ϕ. Exercício 2.7 Seja Σ um conjunto de fórmulas de uma linguagem de primeira ordem L tal que x não ocorre livre em nenhuma fórmula de Σ. Mostre que, 1. se Σ {ψ} ϕ e x não ocorre livre em ϕ, então Σ { xψ} ϕ; 2. se Σ {ψ} ϕ, então Σ { xψ} xϕ.

2 Lógica de primeira ordem 10 Exercício 2.8 Sem usar a completude da lógica de primeira ordem, mostre que: 1. x yp (x, y) y xp (x, y); 2. x yp (x, y) y xp (x, y); 3. x yp (x, y) x yp (y, x); 4. xϕ ϕ; 5. ϕ xϕ, se x não ocorre livre em ϕ; 6. ϕ xϕ; 7. xϕ ϕ, se x não ocorre livre em ϕ; 8. y xϕ x yϕ; 9. x(ϕ ψ) ( xϕ xψ); 10. x(ϕ ψ) ( xϕ xψ); 11. x(ϕ ψ) ( x ψ x ϕ); 12. x(ϕ ψ) ( xϕ xψ); 13. x(ϕ ψ) ( xϕ xψ). Exercício 2.9 Sem usar a completude da lógica de primeira ordem, mostre que: 1. x x = x; 2. x y(x = y y = x); 3. x y z(x = y (y = z x = z)); 4. x y u v(x = u (y = v (P (x, y) P (u, v)))); 5. x y u v(x = u (y = v f(x, y) = f(u, v))); 6. x y z(f(x) f(y) x y); 7. x = f(y) ( zp (x, z) zp (f(y), z)). Exercício 2.10 Mostre que a equivalência das afirmações seguintes: para qualquer conjunto de fórmulas Σ {ϕ}, se Σ = ϕ, então Σ ϕ; qualquer conjunto consistente de fórmulas é realizável. [Sug.: Usar a equivalência de Σ ϕ e da inconsistência de Σ { ϕ} e também a equivalência de Σ = ϕ e de Σ { ϕ} não ser realizável.] Exercício 2.11 Um conjunto consistente diz-se maximal se para qualquer fórmula ϕ se tem ou ϕ ou ϕ. Mostre que se é um conjunto consistente maximal e θ, então θ.

2 Lógica de primeira ordem 11 Exercício 2.12 Um conjunto Σ de proposições de uma linguagem de primeira ordem L diz-se completo (em L) se e só se para toda a proposição ϕ de L se tem ϕ Σ ou ϕ Σ. Mostre que um conjunto consistente Σ é completo se e só se para toda a proposição ϕ de L, se ϕ Σ, então Σ {ϕ} é inconsistente. Exercício 2.13 Seja ϕ uma fórmula de uma linguagem de primeira ordem L para a qual existem duas estruturas A e B de L tais que A = ϕ[s] para toda a interpretação s das variáveis em A e B = ϕ[t] para toda a interpretação t das variáveis em B. Justifique a validade ou falsidade das afirmações seguintes: ϕ é uma proposição; ϕ não é uma fórmula válida; ϕ não é uma fórmula válida. Exercício 2.14 Seja ϕ uma fórmula de uma linguagem de primeira ordem L. Relacione as afirmações seguintes: existe uma estrutura A de L e uma interpretação s das variáveis em A tais que A = ϕ[s]; ϕ é uma fórmula válida; Exercício 2.15 Seja ϕ uma proposição de uma linguagem de primeira ordem L. Relacione as afirmações seguintes: existe uma dedução de ϕ (a partir do conjunto vazio ); ϕ é falso em todas as estruturas de L. Exercício 2.16 Sejam Σ e Γ conjuntos de proposições de uma linguagem de primeira ordem L, tal que para toda a estrutura A de L se tem A = Σ se e só se A = Γ. Mostre que existe {ϕ 1,..., ϕ n } Σ Γ tal que {ϕ 1,..., ϕ n } é inconsistente. Exercício 2.17 Considere uma linguagem de primeira ordem com igualdade L. 1. Para cada n = 1, 2, 3,... construa uma proposição ϕ n de L tal que uma estrutura A = (A, V ) é um modelo de ϕ n, i.e. A = ϕ n se e só se o conjunto A tem pelo menos n elementos. 2. Considere o conjunto de proposições Σ = {ϕ 1, ϕ 2,...}. Quando é que uma estrutura de L é um modelo de Σ? 3. Suponha que ϕ é uma proposição de L tal que A = (A, V ) é um modelo de ϕ se e só se o conjunto A é infinito. Mostre que Σ = ϕ. 4. Justifique a não existência de uma fórmula ϕ nas condições da alínea anterior. Exercício 2.18 Considere a linguagem L Gr da teoria de grupos e seja ϕ uma proposição de L Gr que é válida em todos os grupos finitos. Mostre que existe um grupo infinito G tal que ϕ é válida em G.

3 Decidibilidade 12 3 Decidibilidade Exercício 3.1 Mostre que o conjunto das fórmulas de L é decidível. Exercício 3.2 Sejam A um alfabeto e W e W subconjuntos decidíveis de A. Mostre que os conjuntos W W, W W e A \ W são também decidíveis. Exercício 3.3 Mostre que se A é um alfabeto finito, então A é efectivamente enumerável. Exercício 3.4 Sejam A 1 e A 2 alfabetos tais que A 1 A 2 e seja W A 1. Mostre que W é decidível (resp.efectivamente enumerável) relativamente ao alfabeto A 1 se e só se o for relativamente ao alfabeto A 2. Exercício 3.5 Mostre que o conjunto dos termos de L é efectivamente enumerável. Exercício 3.6 Seja U A um conjunto decidível e considere W U. Mostre que se W e U \ W forem efectivamente enumeráveis, então W é decidível. Exercício 3.7 Sejam A e B dois alfabetos tais que o símbolo # não pertence a A B e considere uma função f : A B. Mostre a equivalência das afirmações seguintes: (i) f é computável; (ii) {α#f(α) α A } é efectivamente enumerável; (iii) {α#f(α) α A } é decidível. Exercício 3.8 Seja Σ um conjunto decidível de fórmulas de L. Mostre que o conjunto das consequências semânticas de Σ, i.e. o conjunto {ϕ Σ = ϕ}, é efectivamente enumerável. Exercício 3.9 Considere os alfabetos A = {a, b} e B = { }. Mostre que as funções seguintes são R-computáveis: 1. f : A A, tal que f(c 0 c 1... c n ) = c 0 c 0 c 1 c 1... c n c n, para c 0, c 1,..., c n A (ex.: f(aaba) = aaaabbaa); 2. f : A A, tal que f(α) = β, onde β é foi obtido trocando todas as ocorrências de a em α por b e vice-versa (ex.: f(abaab) = babba; 3. f : A A, tal que f(α) = αα para α A (ex.: f(abaab) = abaababaab); 4. f : A B, tal que f(α) = }. {{.. }, onde n é o número de ocorrências da palavra aba em n α (ex.: f(ababaa) = ).

3 Decidibilidade 13 Exercício 3.10 Considere o alfabeto A = {a, b, c}. Mostre que os seguintes subconjuntos de A são R-decidíveis. 1. W = {abc, abbc}; 2. W = A ; 3. W = {α A : α é ímpar }; 4. W = {(ab) n n N}; 5. W = {a n b n c n n N}; Exercício 3.11 Considere o alfabeto A = {a, b, c}. Mostre que os seguintes subconjuntos de A são R-enumeráveis. 1. W = A; 2. W = {α A : α é par }; 3. W = A ; 4. W = {a n b n c n n N}; 5. W = {α A α não é da forma ab n c com n N}. Exercício 3.12 Seja A um alfabeto e W A. Mostre a equivalência das afirmações seguintes. i. W é R-enumerável; ii. existe um programa P para uma máquina de registos, tal que P : α ɛ se α W P : α se α W. Exercício 3.13 Seja A um alfabeto e W A. Mostre que o conjunto W é R-decidível se e só se W é R-enumerável em ordem lexicográfica. Exercício 3.14 1. Considere um conjunto não vazio M e uma relação binária R M M definida em M. Para a M seja M a = {b M (a, b) R}. Mostre que o conjunto D = {b M (b, b) R} é diferente de M a, qualquer que seja a M. 2. Seja A = {a 0,..., a n } um alfabeto e M = A. Considere a relação R definida por (α, β) R sse α é o número de Gödel de um programa P, que enumera algum conjunto que contém β. Mostre que o conjunto D = {β M (β, β) R} não é efectivamente enumerável. Conclua que o conjunto de programas que não escrevem o seu próprio número de Gödel não é efectivamente enumerável.

3 Decidibilidade 14 3. Seja A = {a 0,..., a n } um alfabeto e M = A. Considere a relação R definida por (α, β) R sse α não é o número de Gödel de um programa P, tal que P : β halt. Mostre que se um conjunto W A é R-decidível, então existe α M tal que W = M α. Mostre ainda que D = Π halt. Exercício 3.15 Para cada um dos seguintes tipos de conjuntos, dê um exemplo ou mostre que não existe nenhum exemplo: conjunto decidível; conjunto efectivamente enumerável; conjunto efectivamente enumerável mas não decidível; conjunto decidível mas não efectivamente enumerável. Exercício 3.16 Sejam A e B alfabetos e f : A B uma função computável. Diga, justificando, se as afirmações seguintes são verdadeiras ou falsas: se K é um subconjunto decidível de B, então f 1 (K) é um subconjunto decidível de A ; se L é um subconjunto decidível de A, então f(l) é um subconjunto decidível de B ; se S é um subconjunto efectivamente enumerável de A, então f(s) é um subconjunto efectivamente enumerável de B ; se T é um subconjunto efectivamente enumerável de B, então f 1 (T ) é um subconjunto efectivamente enumerável de A. Exercício 3.17 Mostre que o conjunto das proposições realizáveis de L não é efectivamente enumerável.

4 Programação em lógica 15 4 Programação em lógica 4.1 Forma normal prenexa e skolemização Exercício 4.1 [Forma normal prenexa] Uma fórmula de uma linguagem de primeira ordem L diz-se em forma normal prenexa se for da forma 1 x 1... n x nϕ (n 0) onde cada i é um quantificador (universal ou existencial) e tal que ϕ não contém quantificadores. 1. Descreva um algoritmo que, dada uma fórmula θ, determina uma fórmula em forma normal prenexa θ p tal que θ e θ p são semanticamente equivalentes. Pode usar as seguintes equivalências xφ x φ φ ψ ψ φ xφ x φ φ ψ ψ φ e também a equivalência de fórmulas da forma seguinte, onde φ e ψ designam fórmulas sem variáveis em comum: xφ ψ x(φ ψ) xφ ψ x(φ ψ) xφ ψ x(φ ψ) xφ ψ x(φ ψ) 2. Para cada uma das seguintes fórmulas encontre uma fórmula equivalente em forma normal prenexa: (a) xp (x) yq(y); (b) ( xp (x) xq(x)) z( P (z) Q(z)); (c) y( x(p (x, y) (Q(x) Q(f(x))))); (d) y xp (x, y) x yp (x, y). Exercício 4.2 Descreva um algoritmo que, dada uma fórmula ϕ sem quantificadores, determina uma fórmula em forma conjuntiva normal ϕ tal que ϕ e ϕ são semanticamente equivalentes. Exercício 4.3 [Skolemização] Seja y 1... y n xϕ, com n 0, uma proposição de uma linguagem de primeira ordem L. Considere ainda a linguagem L com os símbolos de L e com mais um símbolo funcional n-ário f. 1. Mostre que se tem = y 1... y n xϕ em L se e só se = y 1... y n ϕ[f(y 1,..., y n )/x] em L. 2. Descreva um algoritmo que, dada uma fórmula ϕ (de uma linguagem de primeira ordem L), determina um conjunto finito de fórmulas Φ = {ϕ 1,..., ϕ n } (de uma linguagem alargada L ) tal que tem-se = ϕ se e só se = ϕ 1... ϕ n ; a fórmula ϕ é satisfazível se e só se ϕ 1... ϕ n é satisfazível; todas as fórmulas em Φ são da forma onde cada λ i é um literal, m 1 e n 0. 3. Implemente o algoritmo descrito em PROLOG. x 1... x n (λ 1... λ m ) 4. Aplique o algoritmo a cada uma das fórmulas ϕ do exercício 4.1 (à mão ou então utilizando a implementação proposta na alínea anterior).

4.2 Fórmulas de Horn e Programas definidos 16 4.2 Fórmulas de Horn e Programas definidos Exercício 4.4 Justifique a validade ou falsidade de cada uma das afirmações seguintes: para toda a proposição ϕ existe um conjunto (finito) Φ de fórmulas universais fechadas de Horn tal que Φ = ϕ e ϕ = ψ para qualquer ψ Φ; se ϕ é uma fórmula de Horn, então é uma fórmula de Horn positiva ou uma fórmula de Horn negativa; para todo o programa definido P existe um conjunto de fórmulas de Horn Φ tal que K(Φ) = Φ; para todo o conjunto de fórmulas de Horn Φ existe um programa definido P tal que K(Φ) = Φ; todo o conjunto de fórmulas de Horn positivas é satisfazível; todo o conjunto de fórmulas de Horn negativas é satisfazível; todo o conjunto de fórmulas de Horn é satisfazível; todo o programa P é satisfazível. Exercício 4.5 Seja ϕ uma fórmula de Horn. Mostre que para toda a estrutura A de L se tem A = ϕ se e só se A = K(ϕ). Exercício 4.6 Seja Φ um conjunto de fórmulas de Horn e A uma estrutura. Mostre que se tem A = Φ se e só se A = K(Φ). Exercício 4.7 Seja L uma linguagem de primeira ordem sem igualdade e Φ um conjunto de proposições de L. 1. Mostre que Φ xϕ não implica necessariamente que existe um termo t T tal que Φ ϕ t x. 2. Suponha que Φ é um conjunto de fórmulas universais (fechadas) de Horn e ϕ da forma α 0... α l, onde α 0,..., α l são fórmulas atómicas e l 0. Mostre que nestas condições e se Φ xϕ, então existe t T 0 tal que Φ ϕ t x. Exercício 4.8 Para cada um dos programas P e golos G descritos abaixo determine L P ; um conjunto de fórmulas de Horn positivas Φ P tal que K(Φ P ) = P; uma fórmula de Horn negativa ϕ tal que K(ϕ) = G; um modelo de Herbrand A de P; U P ;

4.2 Fórmulas de Horn e Programas definidos 17 B P ; I A para o modelo de Herbrand A que escolheu; para G = α 1,..., α k determine ainda termos fechados t 1,..., t n tais que P = (α 1... α k )[t 1 /x 1,..., t n /x n ], onde x 1,..., x n são as variáveis que ocorrem em G, ou então mostre que P {G} é satisfazível. 1. P : P (a) P (x), Q(x) P (f(x)) P (x) Q(b) Q(f(x)) Q(x) G : Q(f(f(a))) 2. P : Add(x, 0, x) Add(x, s(y), s(z)) Add(x, y, z) G : Add(s(s(0)), s(s(0)), x) 3. P : G : Add(x, 0, x) Add(x, s(y), s(z)) Add(x, y, z) Add(u, v, s(s(s(0)))) 4. P : P (a, b) P (c, b) P (x, z) P (x, y), P (y, z) P (x, y) P (y, x) G : P (a, c) 5. P : P (a, b) P (c, b) P (x, z) P (x, y), P (y, z) G : P (a, c)

4.3 Unificação 18 6. P : Append(cons(x, x R ), x L, cons(x, x RL )) Append(x R, x L, x RL ) Append(nil, x L, x L ) G : Append(x, nil, y) 7. P : Hanoi(x N, x Output ) Move(a, b, c, x N, x Output ) Move(x A, x B, x C, s(x M ), x Output ) Move(x A, x C, x B, x M, x Out1 ), Move(x C, x B, x A, x M, x Out2 ), Append(x Out1, cons(to(x A, x B ), x Out2 ), x Output ) Move(x A, x B, x C, 0, nil) Append(cons(x A, x L1 ), x L2, cons(x A, x L3 )) Append(x L1, x L2, x L3 ) Append(nil, x L1, x L1 ) G : Hanoi(s(s(0)), z) Exercício 4.9 Mostre que M P I A para qualquer modelo de Herbrand A de P. 4.3 Unificação Exercício 4.10 Sejam ρ, σ e τ substituições, t um termo e ϕ uma fórmula sem quantificadores. Mostre que: 1. tι = t e ϕι = ϕ; 2. t(στ) = (tσ)τ e ϕ(στ) = (ϕσ)τ; 3. (ρσ)τ = ρ(στ). Exercício 4.11 Para cada uma das expressões E e cada uma das substituições σ determine Eσ. E = f(x, g(y, z), z) e σ = [g(y, z)/x, a/z, z/y, f(f(b))/u]; E = P (f(z), x) e σ = [a/y]; E = Add(x, s(y), s(z)) Add(x, y, z) e σ = [s(0)/x, s(0)/y, s(s(0))/z]. Exercício 4.12 Para as substituições θ e σ descritos abaixo, determine a composta θσ. θ = [f(x)/y, b/z] e σ = [c/x];

4.3 Unificação 19 θ = [c/x, f(z)/y, u/v] e σ = [v/u, x/z]; θ = [f(z)/x, g(z)/y, a/u] e σ = [f(b)/x, g(b)/y]. Exercício 4.13 Sejam θ = [f(y)/x, y/z], σ = [a/x, b/z] e E = P (x, y, g(z)). Determine θσ, Eθ, (Eθ)σ e E(θσ). Exercício 4.14 Para as expressões E e F seguintes, determine se são variantes. Justifique a sua resposta. Para os pares (E, F ) que são variantes determine ainda mudanças de nome σ e θ respectivamente para E e F tais que E = F θ e F = Eσ. 1. E = P (f(x, y), g(z), a) e F = P (f(y, x), g(u), a); 2. E = P (x, f(x)) e F = P (y, f(z)); 3. E = P (x, y) e F = P (y, x); 4. E = P (x, y, y) e F = P (y, x, y). Exercício 4.15 Aplique o algoritmo de unificação a cada um dos conjuntos S de expressões simples seguintes, indicando a resposta do algoritmo e ainda para cada iteração efectuada a substituição correspondente σ i e os conjuntos D i e Sσ i. S = {P (f(a), g(x)), P (y, y)}; S = {P (a, x, h(g(z))), P (z, h(y), h(y))}; S = {P (x, x), P (y, f(y))}; S = {R(f(x, g(u))), R(f(g(u), g(z))}; S = {R(f(x, g(y))), R(f(g(u), h(z))}; S = {R(f(x, g(x), x)), R(f(g(u), g(g(z)), z))}; S = {P (f(x, f(x, y)), z), R(f(g(y), f(g(a), z)), u)}; S = {P (f(x, f(x, y)), z), P (f(g(y), f(g(a), z)), u)}; S = {P (g(x), y), P (y, y), P (u, f(w))}. Exercício 4.16 Sejam E e F duas expressões. Relacione as afirmações seguintes: a. E e F são variantes; b. o conjunto {E, F } é unificável.

4.4 Pontos Fixos 20 4.4 Pontos Fixos Exercício 4.17 Mostre que, 1. T P k T P (k + 1), para k 0. 2. T P (T P ω) = T P ω, i.e. o conjunto T P ω é um ponto fixo de T P. Exercício 4.18 Considere o programa P (f(x)) P (x) Q(a) P (x) Para I 1 = B P, I 2 = T P (I 1 ) e I 3 = determine T P (I 1 ), T P (I 2 ) e T P (I 3 ). Exercício 4.19 Para cada um dos programas P do exercício 4.8 determine T P 0, T P 1, T P 2,... e ainda T P ω. Exercício 4.20 Seja P um programa e Φ um conjunto de fórmulas de Horn positivas tais que K(Φ) = P. Justifique a validade ou falsidade de cada uma das afirmações seguintes: para todo o α B P tem-se α M P se e só se P = α; para todo o α B P tem-se α M P se e só se Φ α; se A é uma estrutura de Herbrand de L P tal que T P (I A ) I A, então M P I A ; se A é uma estrutura de Herbrand de L P tal que M P I A, então T P (I A ) I A ; se A é uma estrutura de Herbrand de L P tal que I A M P, então T P (I A ) I A ; se A é uma estrutura de Herbrand de L P tal que I A M P, então T P (I A ) M P. 4.5 Resolução-SLD Exercício 4.21 Seja P o programa P (f(x), g(y)) P (x, y) P (a, a) P (a, b) e G o golo P (x, y). Quais das substituições seguintes são respostas correctas para P {G}? Para as substituições θ que são respostas correctas para P {G} determine uma resposta calculada σ para P {G} e uma substituição γ tal que θ = σγ. Represente ainda a refutação-sld que corresponde a σ por uma árvore de derivação. θ = [a/x, a/y, b/z]; θ = [a/x];

4.5 Resolução-SLD 21 θ = [a/x, x/y]; θ = [a/x, b/y]; θ = [f(x)/x, g(y)/y]; θ = [f(f(a))/x, g(g(a))/y]. Resolva o mesmo exercício ainda para o golo P (f(x), g(y)). Exercício 4.22 Seja P o programa S(x, y, z, y) T (x), F (y), F (z) T (a) F (x) e G o golo S(x, y, z, u). Quais das substituições seguintes são respostas correctas para P {G}? Para as substituições θ que são respostas correctas para P {G} determine uma resposta calculada σ para P {G} e uma substituição γ tal que θ = σγ. Represente ainda a refutação-sld que corresponde a σ por uma árvore de derivação. θ = [a/x, a/y, b/z, a/u]; θ = [a/x]; θ = [a/x, u/y]; θ = [a/x, z/y, z/u]; θ = [a/x, g(z)/y, g(z)/u]. Exercício 4.23 Seja P o programa seguinte Max(x, y, x) Leq(y, x) Max(y, x, x) Leq(y, x) Leq(0, x) Leq(s(x), s(y)) Leq(x, y) Justifique a veracidade ou falsidade das afirmações seguintes. Justifique a sua resposta. α Suc(P) se e só se α M P ; Leq(0, s(0)) M P ; Leq(0, x) Suc(P); Max(s(0), s(s(0)), s(s(0))) Suc(P); Max(s(x), x, s(x)) Suc(P); P = xmax(s(x), x, s(x)).

4.5 Resolução-SLD 22 Exercício 4.24 Seja Φ = { x y(p (x, y, c) R(u, g(f(x)))), x yp (f(x), y, c)}. Mostre que Φ x yr(f(x), g(y)) e determine todos os pares (t 1, t 2 ) T 0 tal que Φ R(f(t 1 ), g(t 2 )). [Nota: Represente resoluções-sld por árvores, especificando as cláusulas e unificadores mais gerais que utilizou.] Exercício 4.25 Seja P o programa seguinte: S(h(x))) R(x), P (h(x)) R(a) R(b) P (a) P (h(x)) 1. Determine um conjunto Φ de fórmula universais positivas de Horn fechadas tal que K(Φ) = P. 2. Mostre que Φ xs(x). 3. Determine o conjunto de termos {t T 0 Φ S(t)}. 4. Determine o modelo mínimo de Herbrand de P. Exercício 4.26 Seja L uma linguagem de primeira ordem (sem igualdade) com F 0 = {0}, F 1 = {s}, R 1 = {R, T } e R 2 = {P }. Em L considere o conjunto de fórmulas universais positivas de Horn Φ = { x y( P (x, y) R(y) T (x)), xp (x, s(x)), P (0, 0), xr(s(s(x)))}. 1. Determine o programa P = K(Φ). 2. Mostre que P = xt (x). 3. Determine o modelo mínimo de Herbrand de P. Exercício 4.27 Seja L uma linguagem de primeira ordem (sem igualdade) com F 0 F 1 = {f, g}, R 1 = {A} e R 2 = {P }. Em L considere o conjunto de fórmulas = {a, b}, Σ = x(a(x) P (x, f(x), g(x))), x y z(p (x, y, z) P (x, f(y), g(z))), A(a) A(b)}. 1. Determine um programa P tal que Σ = ϕ se e só se P = ϕ, qualquer que seja a fórmula ϕ. 2. Mostre que Σ x y zp (x, y, z). 3. Determine o modelo mínimo de Herbrand de P.