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.