Aula 12: Lógica de Predicados - DAINF

Propaganda
Lógica para Computação
Segundo Semestre, 2014
Aula 12: Lógica de Predicados
DAINF-UTFPR
Prof. Ricardo Dutra da Silva
Vamos estender a lógica proposicional para torná-la mais expressiva. Na lógica proposicional, as fórmulas não dependiam da estrutura das proposições, apenas do modo como
estas eram combinadas. Considere, por exemplo, a sentença declarativa: “Todo estudante é
mais novo do que algum professor.”. Na lógica proposicional, a sentença seria um átomo. No
entanto, a abordagem não captura estruturas mais finas da sentença, como “ser estudante”,
“ser professor” ou “ser mais jovem do que alguém”.
Para capturar essa maior expressividade usamos predicados. O predicado E(Carlos)
pode ser usado para denotar que Carlos é um estudante; o predicado P (Ricardo) para
denotar que Ricardo é um professor e o predicado J(Carlos, Ricardo) para denotar que
Carlos é mais jovem que Ricardo.
Os predicados acima estão modificando indivíduos específicos. Isso não ajuda muito na
tarefa de descrever a frase que consideramos inicialmente, que fala de alunos e estudantes de
uma forma mais geral. Os alunos e professores poderiam ser listados mas isso também não
é prático. Então, usamos o conceito de variável que pode ser substituída por um indivíduo
ou objeto qualquer. Usando as variáveis x e y, poderíamos escrever:
E(x) : x é um estudante
P (y) : y é um professor
J(x, y) : x é mais jovem do que y.
Ainda não temos uma formalização para os quantificadores “todo” e “algum”. Serão
usados os símbolos ∀, que lemos “para todo”; e ∃, que lemos “existe” ou “para algum”. Os
quantificadores sempre modificam uma variável. Tendo os predicado, os quantificadores e os
conectivos já conhecidos da lógica proposicional, a sentença inicial de exemplo poderia ser
escrita como: ∀x(E(x) → (∃y(P (y) ∧ J(x, y)))).
Para avaliar se a fórmula é verdadeira é necessário definir os alunos e professores sobre
os quais estamos falando. Considerando a UTFPR, possivelmente a sentença é verdadeira.
1
2
Aula 12: Lógica de Predicados
No entanto, o resultado pode ser diferente em um curso de alfabetização para adultos.
Na Lógica de Predicados também trabalhamos com o conceito de função. Considerando a sentença: “Toda criança é mais jovem do que sua mãe”, podemos formalizá-la como
∀x∀y(C(x) ∧ M (y, x) → J(x, y)), usando os predicados
C(x) : x é uma criança
M (y, x) : y é mãe de x
J(x, y) : x é mais jovem do que y.
As funções muitas vezes simplificam o que está sendo dito. Sabemos que uma criança possui apenas uma mãe, logo, poderíamos usar uma função m(x) que representa a mãe de x
e evitaríamos escrever algo mais complicado como o predicado M (y, x). A fórmula seria
simplificada como ∀x(C(x) → J(x, m(x))).
Funções podem ser usadas quando o objeto sobre o qual falamos é definido unicamente.
Não seria possível uma função b(x) que representa de forma não ambígua o irmão de x, pois
um irmão pode não ser unicamente definido.
Como fizemos com a lógica proposicional, vamos definir formalmente a sintaxe da Lógica
de Predicados e em seguida a sua semântica.
Definição 12.1.
O alfabeto da lógica de predicados é formado por
• símbolos de pontuação “(” e “)”.
• Um conjunto V = {x1 , x2 , . . .} de variáveis.
• Um conjunto C = {c1 , c2 , . . .} de constantes.
• Um conjunto P = {P1 , P2 , . . .} de predicados.
• Um conjunto F = {f1 , f2 , . . .} de funções.
• Conectivos ¬, ∨, ∧, →, ∀, ∃.
Cada um dos predicados e funções contém uma aridade, ou seja, um número específico de
argumentos.
Aula 12: Lógica de Predicados
3
Os símbolos para funções “falam” sobre objetos. As funções recebem objetos e retornam
objetos. A função m(Carlos) = M aria recebe o objeto Carlos e informa o objeto Maria. Os
símbolos para predicados são usados para representar propriedades e relações entre objetos.
Ao dizer “Carlos é estudante”, ser estudante é uma propriedade de Carlos. Podemos representar a propriedade pelo predicado E(x) que será verdadeira se x é estudante. No caso de
x = Carlos o resultado é verdadeiro. A relação “mais jovem” dada pelo predicado J(x, y) é
verdadeira somente se x for mais jovem que y.
Predicados e funções podem ter aridade zero. Funções de aridade zero são constantes. Os predicados com aridade zero são as variáveis proposicionais ou átomos da Lógica
Proposicional.
A escolha dos conjuntos P e F depende do que pretendemos descrever. Caso queiramos
representar relações entre familiares, poderíamos ter P = {H, F, S, D} para representar os
predicados “ser do sexo masculino”, “ser do sexo feminino”, “ser filho de” e “ser filha de”,
respectivamente. As funções F = {m, p} poderiam ser usadas para representar a mãe e o
pai de alguém.
Na linguagem de predicados teremos sentenças cuja valoração representará um objeto e
sentenças cuja valoração representará um valor verdade. As primeiras sentenças são chamadas termos e as segundas são chamadas fórmulas.
Definição 12.2.
O conjunto de termos T é definido como:
• Base 1: se xi ∈ V, então xi ∈ T ;
• Base 2: se ci ∈ C, então ci ∈ T ;
• Passo recursivo: se t1 , t2 , . . . , tn são termos e f ∈ (F ) é uma função n-ária, n > 0,
então f (t1 , t2 , . . . , tn ) ∈ T ;
Os termos da linguagem são formados por variáveis, constantes e funções.
Exemplo 12.1
Seja o alfabeto:
• “(” e “)”;
• V = {x, y};
4
Aula 12: Lógica de Predicados
• C = {a, b};
• P = {E, P, J};
• F = {m};
• ¬, ∨, ∧, →, ∀, ∃.
A seguir são formados alguns termos usando a Definição 12.6.
• x
termo regra
x
(base 1)
• a
termo regra
a
(base 2)
• m(x)
termo regra
x
(base 1)
m(x) (passo)
Definição 12.3. Sejam t1 , t2 , . . . , tn termos e seja P um predicado n-ário, então
P (t1 , t2 , . . . , tn ) é um átomo.
Exemplo 12.2
Seja o alfabeto:
• “(” e “)”;
• V = {x, y};
• C = {a, b};
5
Aula 12: Lógica de Predicados
• P = {E, P, J};
• F = {m};
• ¬, ∨, ∧, →, ∀, ∃.
Pela Definição 12.6, x e m(x) são termos. Pela Definição 12.3, J(x, m(x)) é um átomo
formado pelo predicado J, de aridade dois.
A Definição 12.3 indica que predicados n-ários assumem o papel dos átomos, como tínhamos na linguagem proposicional. Também, da mesma forma que a linguagem proposicional,
a construção de fórmulas é feita pela concatenação de átomos e conectivos.
Definição 12.4.
O conjunto de fórmulas da Lógica de Predicados é definido como:
• Base: um átomo é uma fórmula.
• Passo recursivo 1: se A é uma fórmula então (¬A) também é uma fórmula.
• Passo recursivo 2: se A e B são fórmulas então (A ∧ B), (A ∨ B) e (A → B) são
fórmulas.
• Passo recursivo 3: se A é uma fórmula e x é uma variável, então ∀x(A) e ∃x(A) são
fórmulas.
Exemplo 12.3
Considere a sentença “Todo filho do meu pai é meu irmão.” e os predicados
F (x, y) : x é filho de y
P (x, y) : x é pai de y
I(x, y) : x é irmão de y.
Se fizermos a contante e ser o objeto “eu”, a fórmula
∀x∀y(P (x, e) ∧ F (y, x) → I(y, e))
formaliza a sentença “Todo filho do meu pai é meu irmão.”.
6
Aula 12: Lógica de Predicados
Alternativamente, usando a função p(x) para “pai de x”, a mesma sentença pode ser
formalizada como
∀x(F (x, p(e)) → I(x, e)).
Exemplo 12.4
As fórmulas do Exemplo 12.3 são bem formadas conforme a Definição 12.4. A fórmula
∀x∀y(P (x, e) ∧ F (y, x) → I(y, e)) pode ser construída da seguinte maneira:
fórmula
P (x, e)
F (y, x)
I(y, e)
(P (x, e) ∧ F (y, x))
((P (x, e) ∧ F (y, x)) → I(y, e))
∀y(((P (x, e) ∧ F (y, x)) → I(y, e)))
∀x(∀y(((P (x, e) ∧ F (y, x)) → I(y, e))))
regra
(base)
(base)
(base)
(passo 2)
(passo 2)
(passo 3)
(passo 3)
Definição 12.5. A ordem de precedência na Lógica de Predicados é dada pela listagem dos
conectivos na seguinte ordem, da maior precedência para a menor, ¬, ∀, ∃, ∧, ∨, →.
Definição 12.6.
O conjunto de subtermos de um termo E, Subt(E), é definido como:
• Base 1: se E = x ∈ V, então Subt(E) = Subt(x) = {x};
• Base 2: se E = c ∈ C, então Subt(E) = Subt(c) = {c};
• Passo recursivo: se E = f (t1 , t2 , . . . , tn ), então Subt(E) = Subt(f (t1 , t2 , . . . , tn )) =
{f (t1 , t2 , . . . , tn )} ∪ Subt(t1 ) ∪ Subt(t2 ) ∪ . . . Subt(tn ).
Definição 12.7. O conjunto de subfórmulas de uma fórmula A, Subf(A), é definido como:
• Base: se A é um átomo, Subf(A) = {A}.
• Passo recursivo 1: se A = ¬B, então Subf(A) = Subf(¬B) = {¬B} ∪ Subf(B);
Aula 12: Lógica de Predicados
7
• Passo recursivo 2: se A = B ∧C, então Subf(A) = Subf(B ∧C) = {B ∧C}∪Subf(B)∪
Subf(C);
• Passo recursivo 3: se A = B ∨C, então Subf(A) = Subf(B ∨C) = {B ∨C}∪Subf(B)∪
Subf(C);
• Passo recursivo 4: se A = B → C, então Subf(A) = Subf(B → C) = {B → C} ∪
Subf(B) ∪ Subf(C);
• Passo recursivo 5: se A = ∀x(B), então Subf(A) = Subf(∀x(B)) = {∀x(B)}∪Subf(B);
• Passo recursivo 6: se A = ∃x(B), então Subf(A) = Subf(∃x(B)) = {∃x(B)}∪Subf(B).
Exercício 12.1.
Compute as subfórmulas de H = ∀x(P (x)) → (P (x) ∧ ∀y(R(y)).
Definição 12.8.
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.
Exercício 12.2.
Quais as subfórmulas da fórmula
E = ∀x(∃y(∀zP (x, y, w, z) → ∀yQ(z, y, x, f (z1 ))))
formam o escopo para os quantificadores presentes em E.
Definição 12.9. 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.
Exercício 12.3.
Classifique como ligada ou livre cada uma das variáveis da fórmula
E = ∀x(∃y(∀zP (x, y, w, z) → ∀yQ(z, y, x, f (z1 )))).
Download