Lógica para Computação Segundo Semestre, 2014 Aula 13: Lógica de Predicados DAINF-UTFPR Prof. Ricardo Dutra da Silva Na Lógica de Predicados existem símbolos que não ocorriam na lógica proposicional e isso faz com que as interpretações (ou valorações) sejam obtidas de maneira diferente. Em especial, é necessário estabelecer um domínio para uma interpretação I. Exemplo 13.1 Considere o predicado P (x) que é interpretado como verdadeiro se, e somente se, x é um número par. Neste caso a interpretação deve ter como domínio, U , o conjunto dos números. A interpretação de uma variável x deve pertencer ao domínio da interpretação, neste caso, I(x) ∈ U . Portanto, I(P (x)) = 1 se, e somente se, I(x) é um número par. Exemplo 13.2 Dado o domínio das pessoas cursando lógica U = {João, Maria, Ana, Rodrigo, José, Júlia} podemos escolher constantes como c1 , c2 , c3 , c4 , c5 e c6 , e definir as interpretações: I(c1 ) = João, I(c2 ) = Maria, I(c3 ) = Ana, I(c4 ) = Rodrigo, I(c5 ) = José, I(c6 ) = Júlia. 1 2 Aula 13: Lógica de Predicados Dado o predicado Q, cuja interpretação é I(Q(x)) = 1 se, e somente se, I(x) é inteligente, a sentença “Todo aluno que está cursando Lógica é inteligente” é representada por ∀x(Q(x)). Note que a propriedade “ser aluno” e a relação “estar cursando Lógica” foram suprimidas pois estão implícitas no domínio. A interpretação da fórmula ∀x(Q(x)) será I(∀x(Q(x))) = 1 se, e somente se, I(Q(c1 )) = I(Q(c2 )) = I(Q(c3 )) = I(Q(c4 )) = I(Q(c5 )) = I(Q(c6 )) = 1. Uma variável x pode ser substituída por qualquer elemento do domínio de U e também por constantes, que representam elementos do domínio. Exemplo 13.3 Considere as fórmulas A = (¬P (x, y, a, b)) → R(f (x), g(y)) B = P (x, y, a, b) → (Q(x, y) ∧ R(y, a)) e a interpretação I sobre o domínio dos números inteiros Z, tal que I(x) = 3, I(y) = 2, I(a) = 0, I(b) = 1 I(P (x, y, z, w)) = 1, se, e somente se, xI .yI > zI .wI I(Q(x, y)) = 1, se, e somente se, xI < yI I(R(x, y)) = 1, se, e somente se, xI > yI I(f (x)) = (xI + 1) I(g(x)) = (xI − 2) 3 Aula 13: Lógica de Predicados A interpretação de A é A = (¬P (x, y, a, b)) → R(f (x), g(y)) = (¬1) → R(4, 0) =0→1 = 1. A interpretação de B é B = P (x, y, a, b) → (Q(x, y) ∧ R(y, a)) = 1 → (0 ∧ 1) =1→0 =0 Exemplo 13.4 Agora considere I uma interpretação sobre os naturais I(a) = 25, I(b) = 5, I(c) = 0, I(f (x, y)) = (xI ÷ yI ). A interpretação I(f (a, b)) = 5. Segundo a definição das interpretações, a função deve ter interpretação de N2 em N. No entanto, temos que I(f (x, c)) é indefinida. Logo teríamos que restringir o domínio para N × N+ . Além disso, temos que f (x, y) ∈ Q. Portanto a função está definida de N × N+ em Q. Mas isso vai contra a definição da interpretação. Logo se o domínio é o conjunto dos naturais não podemos definir a função de divisão. Exemplo 13.5 Suponha uma fórmula A = ∀x(∃y(P (x, y)) e a interpretação I(P (x, y)) = 1 se, e somente se, I(x) < I(y), e I(x) < I(y) se, e somente se, xI < yI . 4 Aula 13: Lógica de Predicados A fórmula pode ser descrita pela sentença “Para todo xI , existe yI tal que xI < yI ”. Claramente estamos falando de números. No entanto, sem explicitar o domínio não é possível avaliar se a interpretação I(A) é verdadeira ou falsa. Suponha o domínio U = [0, ∞). Nesse caso, I(A) = 1, pois é verdade que para todo xI ∈ U , existe yI ∈ U tal que xI < yI . Agora, se supusermos U = (−∞, 0], I(A) = 0, pois não é possível satisfazer a fórmula quando xI = 0. Exemplo 13.6 Suponha uma fórmula A = ∀x(P (x, y)) e a interpretação I(P (x, y)) = 1 se, e somente se, I(x) ≤ I(y), e I(x) < I(y), se, e somente se, xI ≤ yI . Também definimos I(y) = −5. Se o domínio for U = (−∞, 0], então I(A) = 0 porque é falso que para todo xI ∈ U , xI ≤ −5. No entanto, se I(y) = 0, então temos que I(A) = 1. Os Exemplos 13.5 e 13.6 mostram que além do domínio é preciso considerar a classificação de variáveis dentro das fórmulas para avaliar as interpretações. Vamos recordar as definições de escopo e variáveis livres e ligadas. Definição 13.1. Seja E uma fórmula: • se ∀x(H) é uma subfórmula de E, então o escopo de ∀x em E é H. • se ∃x(H) é uma subfórmula de E, então o escopo de ∃x em E é H. Definição 13.2. Seja x uma variável e E uma fórmula, se x ocorre em E dentro do escopo de um quantificador, ∀x ou ∃x, então x é uma variável ligada; caso contrário, x é uma variável livre. No Exemplo 13.5 temos as variáveis x e y. Essas variáveis são variáveis ligadas. Durante a avaliação da interpretação, isso significa que x e y devem ser substituídas por todos os elementos do domínio considerado. Aula 13: Lógica de Predicados 5 No Exemplo 13.6 temos as mesma variáveis x e y, mas apenas x é uma variável ligada. A variável x deverá ser substituída por todos os elementos do domínio. A variável y é livre. Isso significa que não existe um quantificador forçando que elementos do domínio sejam atribuídos a y. Por esse motivo, no Exemplo 13.6, explicitamente atribuímos uma interpretação para y. Veremos também que mesmo quando uma variável possui uma interpretação explícita, dentro do escopo em que ela é ligada devemos considerar todas as possíveis interpretações dentro do domínio. Exemplo 13.7 Considere a fórmula A = ∀x(∃y(P (x, y))) ∧ ∀x(P (x, y)) e a interpretação I(P (x, y)) = 1 se, e somente se, I(x) < I(y) I(x) = 0 I(y) = 5, no domínio U = [0, ∞). O átomo P (x, y) aparece duas vezes na fórmula mas sua interpretação não é igual, ela depende dos escopos definidos para as variáveis x e y nas subfórmulas B = ∀x(∃y(P (x, y))) e C = ∀x(P (x, y)). Em B, a variável x tem escopo D = ∃y(P (x, y)). Logo o x que aparece em D é uma variável ligada. A variável y em D tem escopo E = P (x, y). Logo o y que aparece em E também é uma variável ligada. Como as variáveis são ligadas, mesmo que tenhamos definido as interpretações I(x) = 0 e I(y) = 5, dentro do escopo em que as variáveis são ligadas devemos ignorar tais interpretações e considerar que x e y podem assumir qualquer valor no domínio U = [0, ∞). Consequentemente, a subfórmula B = ∀x(∃y(P (x, y))) é verdadeira, como vimos no Exemplo 13.5. Na subfórmula C = ∀x(P (x, y)), x é uma variável ligada e y é uma variável livre. Devemos considerar então que x assume qualquer valor no domínio U = [0, ∞) enquanto y assume a interpretação I(y) = 5. A subfórmula C é falsa para qualquer x ≥ 5. A interpretação I(A) = I(∀x(∃y(P (x, y))) ∧ ∀x(P (x, y))) = 1 ∧ 0 = 0. A seguir definimos formalmente essas ideias para formar a interpretação de uma fórmula. 6 Aula 13: Lógica de Predicados Definição 13.3. Seja I uma interpretação sobre um domínio U , x uma variável da linguagem da LP e d um elemento de U . Uma interpretação estendida de I, denotada por hx ← diI, é tal que d se α = x hx ← diI(α) = I(α) se α 6= x onde α é uma variável qualquer. Exemplo 13.8 Considere a interpretação I sobre os números naturais I(x) = 4, I(a) = 5, I(y) = 4 Temos como exemplos de interpretações estendidas hx ← 2iI(y) = 4 hx ← 2iI(x) = 2 hx ← 9ihx ← 2iI(y) = 9 hx ← 9ihx ← 2iI(x) = 2 hx ← 7ihx ← 9ihx ← 2iI(y) = 9 hx ← 7ihx ← 9ihx ← 2iI(x) = 7 Note que a extensão mais à esquerda tem precedência sobre a extensão mais à direita. Definição 13.4. Seja U um conjunto não-vazio chamado domínio. Uma interpretação I sobre o domínio U é uma função tal que: • para toda variável x, se I(x) = xI , então xI ∈ U ; • para toda função f , n-ária, se I(f ) = fI , então fI é uma função n-ária em U , isto é, fI : U n → U . • para todo predicado P , n-ário, se I(P ) = pI , então pI é um predicado n-ário em U , isto é, PI : U n → {0, 1}. • para toda constante b, se I(b) = bI , então bI ∈ U . 7 Aula 13: Lógica de Predicados • se E = f (t1 , t2 , . . . , tn ) é um termo, então I(E) fI (t1I , t2I , . . . , tnI ) (para todo termo ti , I(ti ) = tI ). = I(f (t1 , t2 , . . . , tn )) = • se E = P (t1 , t2 , . . . , tn ) é um átomo, então I(E) = I(P (t1 , t2 , . . . , tn )) = PI (t1I , t2I , . . . , tnI ) (para todo termo ti , I(ti ) = tI ). • se E = ¬A, então I(E) = I(¬A) = 1 se, e somente se, I(A) = 0. • se E = A ∨ B, então I(E) = I(A ∨ B) = 1 se, e somente se, I(A) = 1 ou I(B) = 1. • se E = A ∧ B, então I(E) = I(A ∨ B) = 1 se, e somente se, I(A) = 1 e I(B) = 1. • se E = A → B, então I(E) = I(A ∨ B) = 1 se, e somente se, I(A) = 0 ou I(B) = 1. • se E = ∀x(A), então I(E) = I(∀x(A)) = 1 se, e somente se, para todo d ∈ U , hx ← diI(A) = 1. • se E = ∃x(A), então I(E) = I(∃x(A)) = 1 se, e somente se, existe d ∈ U para o qual hx ← diI(A) = 1. Como exigimos que bI , xI ∈ U , então constantes e variáveis livres são necessariamente interpretadas como elementos do domínio de interpretação. A interpretação de uma predicado 0-ário é p, I(p) = pI e pI ∈ {0, 1}.