Lógica de Predicados (§1.3) Lógica de Predicados

Propaganda
Discrete Math - Module #0 - Overview
9/2/2005
Lógica de Predicados (§1.3)
l
Podemos usar lógica proposicional para
provar que certas inferências são
válidas. Por exemplo,
Se está frio então vai nevar. Assim:
l Se não nevar então não está frio
l
l
Em lógica proposicional (fácil de
verificar):
l
c → s. Então ¬s → ¬c.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
64
Lógica de Predicados (§1.3)
l
Mas algumas inferências não podem se
provadas pela lógica proposicional
Algumas garotas são adoradas por todo
mundo. Então:
l Todo mundo adora alguém
l
l
Para inferências como esta, precisamos
de uma lógica mais expressiva
l
Tratamento para `algum’ e `todo’
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
65
1
Discrete Math - Module #0 - Overview
9/2/2005
Lógica de Predicados (§1.3)
l
Lógica de Predicados é uma extensão
da lógica proposicional que permite
quantificação em classes de entidades.
l Lógica Propositional trata proposições
simples (sentenças) como entidades
atômicas.
l Por outro lado, lógica de predicados
distingue o sujeito de uma sentença do
seu predicado.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
66
Lógica de Predicados - Aplicações
Uma das mais usadas notações formais
para escrever definições, axiomas e
teoremas matemáticos.
Por exemplo, em álgebra linear, uma
ordem parcial é introduzida dizendo que
uma relação R é reflexiva e transitiva – e
estas noções são definidas usando
lógica de predicados.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
67
2
Discrete Math - Module #0 - Overview
9/2/2005
Lógica de Predicados - Aplicações
l
Base para provadores automáticos de
teoremas e muitos sétemas de IA.
l
E.g. verificação automática de programas.
l
Setenças parecidas com a lógica de
predicados são suportadas por algumas
arquiteturas de consultas a Banco de
Dados
l Mas existem problemas no uso desta
lógica
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
68
Primeiro: Um pouco de gramática
l
Na sentença “O cão está dormindo”:
O sujeito da sentença é : “o cão”.
l O predicado é: “está dormindo”
l
l
l
Uma propriedade do sujeito
Lógica de predicados segue o mesmo
padrão.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
69
3
Discrete Math - Module #0 - Overview
9/2/2005
Fórmulas da Lógica de Predicados
l
Constantes que identificam indivíduos ou
objetos: a,b,c,…
l
variáveis individuais sobre objetos: x, y, z , …
l
O resultado da aplicação de um predicado P a
uma constante a é a proposição P(a)
Significando: o objeto denotado por a possui a
propriedade denotada por P.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
70
Fórmulas da Lógica de Predicados
(informal)
l
O resultado da aplicação do predicado P
à variável x é a proposição P(x).
l
E.g. se P = “é um número primo”, então
P(x) é a forma proposicional de
“x é um número primo”.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
71
4
Discrete Math - Module #0 - Overview
9/2/2005
Predicados/relações com n
argumentos
l
Lógica de predicados generaliza a noção de
predicado para permitir a inclusão de funções
de qualquer número de argumentos. E.g.,
usando variáveis:
l
l
Seja R(x,y,) = “x ama y”, então se
x = “Mário”, y = “Maria” então
R(x,y) = “Márioa ama Maria”
Seja P(x,y,z) = “x deu a y a nota z”, então se
x=“Mário”, y = “Maria”, z=“10”, então P(x,y,z) =
“Mário deu a a Maria a nota 10.”
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
72
Universo de Discurso (U.D.s)
l
l
l
A força da distinção de objetos com
predicados reside no fato de podermos afirmar
coéas sobre vários objetos de uma única vez.
E.g., Seja P(x)=“x*2≥x”. Podemos dizer,
“Para qualquer número x, P(x) é true” e não
(0*2 ≥ 0) ∧ (1*2 ≥ 1) ∧ (2*2 ≥ 2) ∧ ...
A coleção de valores que a variável x pode
assumir é denominado universo de discurso de
x.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
73
5
Discrete Math - Module #0 - Overview
9/2/2005
Universo de Discurso (U.D.s)
l
E.g., seja P(x)=“x*2 ≥ x”.
l
“Para qualquer número x, P(x) é true” é true
quando U.D. = N
l
“Para qualquer número x, P(x) é true” é false
quando U.D. = Z
9/2/2005
74
Prof.Anselmo Paiva - DEINF/UFMA
Expressões com Quantificadores
l Quantificadores fornecem uma
notação
que permite quantificar (contar)
quantos objetos no U.D. satisfazem um
dado predicado.
“∀” é o quantificador universal Para
todos.
l “∃” é o quantificador existencial, Existe um
l
exemplo, ∀x P(x) e ∃x P(x) são
proposições
l Por
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
75
6
Discrete Math - Module #0 - Overview
9/2/2005
Significado de Expressões com
Quantificadores
Primeiro informalmente:
l
∀x P(x) significa para todo x no U.D., P
se aplica.
l
∃x P(x) significa existe um x no U.D.
(que é, 1 ou mais) tal que P(x) é true.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
76
Exemplo: ∃
Seja x com U.D. estacionamentos do
Brazil, e P(x) a propr. “x está cheio.”
Então o quantificador existencial de P(x),
∃x P(x), é a proposição dizendo que
“Algum estacionamento no Brasil está
cheio.”
l “Existe um estacionamento no Brazil está
cheio.”
l “Ao menos um estacionamento no Brazil
está cheio.”
l
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
77
7
Discrete Math - Module #0 - Overview
9/2/2005
Exemplo: ∀
Seja x com U.D. estacionamentos do
Brazil, e P(x) a propr. “x está ocupado.”
O quantificador universal de P(x), ∀xP(x), é a
proposição:
l
l
l
“Todos os estacionamentos do Brazil estão
ocupados.”
“Para cada estacionamento do Brazil, o espaço
está ocupado.”
Etc.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
78
Consequências da Posição Padrão
Duas equivalências lógicas da Lógica de
Predicados:
∀x P(x) ⇔ ¬∃x ¬P(x)
∃x P(x) ⇔ ¬∀x ¬P(x)
Abordamos isto novamente depois
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
79
8
Discrete Math - Module #0 - Overview
9/2/2005
Mesma Situação em Lógica
Proposicional
Valor verdade de p → q quando p é Falso:
FT T
FT F
Podemos dizer que: se p é falso então não
é válido dizer que “p implica q”
Ao invés disso, simplesmente dizemos
que “p implica q” é True neste caso
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
80
Variáveis livres e restritas
l
Diz-se que uma expressão como P(x) te
uma variável livre x (significa que x é
indefinida).
l Um quantificador (∀ ou ∃) opera em uma
expressão possuindo uma ou mais
variáveis livres, e restringe uma ou mais
dessas variáveis, para produzir uma
expressão que possua uma ou mais
variáveis restritas.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
81
9
Discrete Math - Module #0 - Overview
9/2/2005
Exemplo de Restrição
l
P(x,y) possui 2 variáveis livres, x e y.
l ∀x P(x,y) possui 1 variável livre e uma
variável restrita. [Qual?]
l Uma expressão com zero variáveis livres
é uma proposição.
l Uma expressão com uma ou mais
variáveis livres é similar a um predicado:
e.g. Seja Q(y) = ∀x Adora(x,y)
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
82
Aninhamento de Quantificadores
Exemplo: Seja o u.d. de x e y pessoas.
Seja L(x,y)=“x parece y” (predicado com 2
VL)
Então ∃y L(x,y) = “Existe alguem que se
parece com x.” (predicado com 1 VL, x)
E ∀x (∃y L(x,y)) = “Todo mundo tem
alguém parecido”.”
(proposição; sem variáveis livres)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
83
10
Discrete Math - Module #0 - Overview
9/2/2005
Mais Sobre Restrições
l
∀x ∃x P(x) - x não é uma VL em
∃x P(x), assim a restrição ∀x não está
sendo usada.
l (∀x P(x)) ∧ Q(x) - x está fora do escopo
de ∀x, sendo portanto uma VL. Não é
uma proposição completa!
l (∀x P(x)) ∧ (∃x Q(x)) – proposição
completa sem quantificadores superflúos
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
84
LN é ambiguo!
l
“Todo mundo gosta de alguém.”
l
Para todo mundo, existe um alguém que
ele(a) gosta,
l
l
[Probably more likely.]
ou, existe alguem que gosta dele(a)?
l
l
∀x ∃y Likes(x,y)
∃y ∀x Likes(x,y)
Depende do contexto, da ênfase na
frase
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
85
11
Discrete Math - Module #0 - Overview
9/2/2005
Sintaxe da Lógica de Predicados
(Predicados com 1 ou 2 variáveis)
l
l
l
l
Variável: x,y,z,… Constantes: a,b,c,…
Predicados de uma variável: P,Q,…
Predicados de duas variáveis: R,S,…
Fórmulas atômicas:
Se α é um predicado de uma variável e β é
uma variável ou constante, então α (β) é uma
fórmula atômica.
Se α é um predicado de duas variáveis e β e
γ são variáveis ou constantes, então α (β,γ) é
uma fórmula atômica.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
86
Sintaxe da Lógica de Predicados
(Predicados com 1 ou 2 variáveis)
Fórmulas:
l
Toda fórmula atômica é uma fórmula
l
Se α e β são fórmulas então ¬α,
(α ∧β), (α∨β), (α →β) são fórmulas.
l
Se ϕ é uma fórmula então ∀x ϕ e ∃y ϕ
são fórmulas.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
87
12
Discrete Math - Module #0 - Overview
9/2/2005
Sintaxe da Lógica de Predicados
(Predicados com 1 ou 2 variáveis)
∀xP(x)
∃yQ(x)
∀x∃y R(x,y)
∀xP(b)
P(x) é uma fórmula atômica, então ∀xP(x) é uma
fórmula
l Q(x) é uma fórmula atômica, então ∃yQ(x) é uma
fórmula
l R(x,y) é uma fórmula atômica, então ∃y R(x,y) é uma
fórmula, então ∀x∃y R(x,y) é uma fórmula
l P(b) é uma fórmula atômica, então ∀xP(b) é uma
fórmula
l
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
88
Sintaxe da Lógica de Predicados
(Predicados com 1 ou 2 variáveis)
l
Exemplos: ∀xP(x) e ∃yQ(x),
∀x(∃y R(x,y)), ∀x(∃x R(x,y)), ∀xP(b) etc.
l
Alguns casos patológicos. Por exemplo,
∀xP(b) é True sss P(b) é True
l um quantificador que não restringe
nenhuma variável pode ser ignorado
l
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
89
13
Discrete Math - Module #0 - Overview
9/2/2005
Considere ∀xP(a)
l
Relembrando a definição:
Seja ϕ uma fórmula. Então ∀xϕ é True se em
D cada expressão ϕ(x:=a) é True em D, e
False de outra maneira.
∀xP(b) é True em D se cada expressão
da forma P(b)(x:=a) é True em D, falsa
de outra maneira.
l Qual é o conjunto de todas as
expressões da forma P(b)(x:=a)?
l
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
90
Considere ∀xP(a)
l
Qual é o conjunto de todas as
expressões da forma P(b)(x:=a)?
l
l
l
O conjunto {P(b)} !,
∀xP(b) é True em D se P(b) é True,
e False otherwise.
Assim, ∀xP(b) significa P(b)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
91
14
Discrete Math - Module #0 - Overview
9/2/2005
Algumas formas resumidas
l
As vezes o U.D. é restrito dentro do
quantificador, e.g.,
∀x>0 P(x) é uma forma resumida para
“Para todo x maior que zero então, P(x).”
=∀x (x>0 → P(x))
l ∃x>0 P(x) é uma forma resumida para
“Existe um x maior que zero tal que P(x).”
=∃x (x>0 ∧ P(x))
l
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
92
Algumas formas resumidas
l
Quantificadores consecutivos do mesmo
tipo podem ser combinados:
∀xyz P(x,y,z) ⇔def ∀x ∀y ∀z P(x,y,z)
∃xyz P(x,y,z) ⇔def ∃ x ∃ y ∃ z P(x,y,z)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
93
15
Discrete Math - Module #0 - Overview
9/2/2005
Avaliação de Quantificadores: Jogo
l
Jogo para ajudar a definir quando uma proposição
como quantificadores aninhados é True.
l Dois jogadores, ambos com mesmo conhecimento:
l
l
l
Verificador: quer demonstrar que a proposição é True.
Falsificador: quer demonstrar que a proposição é False.
Regras:
l
l
l
Leia os quantificadores da esquerda para a direita atribuindo
os valores das variáveis.
Quando encontrar “∀”, o falsificador pode escolher o valor.
Quando encontrar “∃”, o verificador pode escolher o valor.
l
Se o verificador sempre ganha , a proposição é True.
l Se o falsificador sempre ganha, a proposição é False.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
94
Exemplo!!!!
Seja B(x,y) [aniversário de “y” acontece até um mês após o
aniversário de “x”]
Suponha que :
∀x ∃y B(x,y)
• E se eu mudar os quantificadores
∃y ∀x B(x,y)?
Quem ganha??
∃y B(so-and-so,y)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
95
16
Discrete Math - Module #0 - Overview
9/2/2005
Leis de Equivalência de
Quantificadores
l
Expandindo quantificadores:
u.d.=a,b,c,…
∀x P(x) ⇔ P(a) ∧ P(b) ∧ P(c) ∧ …
∃x P(x) ⇔ P(a) ∨ P(b) ∨ P(c) ∨ …
l Assim podemos provar que:
∀x P(x) ⇔ ¬∃x ¬P(x)
∃x P(x) ⇔ ¬∀x ¬P(x)
l Quais equivalências posso usar para
provar isso?
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
96
Lembrete
l
l
l
Em lógica proposicional podiamos apenas
construir fórmulas com tamanho finito.
E.g., podemos escrever
P(a) ∧ P(b)
P(a) ∧ P(b) ∧ P(c)
P(a) ∧ P(b) ∧ P(c) ∧ P(d) , etc.
Mas não conseguimos escrever que todos os
números naturais tem uma certa propriedade
P
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
97
17
Discrete Math - Module #0 - Overview
9/2/2005
l
Em lógica de predicados podemos
afirmar isto facilmente:
∀xP(x)
l Mas ainda gostariamos de ter lógica
proposicional podendo escrever
fórmulas de comprimento infinito.
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
98
Mais Leis de Equivalência
∀x ∀y P(x,y) ⇔ ∀y ∀x P(x,y)
∃x ∃y P(x,y) ⇔ ∃y ∃x P(x,y)
l ∀x (P(x) ∧ Q(x)) ⇔ (∀x P(x)) ∧ (∀x Q(x))
∃x (P(x) ∨ Q(x)) ⇔ (∃x P(x)) ∨ (∃x Q(x))
l Que tal esta?
∃x (P(x) ∧ Q(x)) ⇔ (∃x P(x)) ∧ (∃x Q(x))
l
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
99
18
Discrete Math - Module #0 - Overview
9/2/2005
Mais Leis de Equivalência
l
Que tal esta?
∃x (P(x) ∧ Q(x)) ⇔ (∃x P(x)) ∧ (∃x Q(x))
?
l Esta equivalência é falsa.
l Contra exemplo:
P(x): aniversário de x é 30 de Abril
Q(x): aniversário de x é 1 de agosto
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
100
Interações entre quantificadores e
conectivos
Seja u.d. estacionamentos no Brasil.
Seja P(x) “x está ocupado.”
Seja Q(x) “x está gratuito.”
1. ∃x (Q(x) ∧ P(x))
2. ∀x (Q(x) ∧ P(x))
3. ∀x (Q(x) →P(x))
4. ∃x (Q(x) → P(x))
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
101
19
Discrete Math - Module #0 - Overview
9/2/2005
I. Construa frases em LN
Seja u.d. estacionamentos no Brasil.
Seja P(x) “x está ocupado.”
Seja Q(x) “x está gratuito.”
1. ∃x (Q(x) ∧ P(x))
2. ∀x (Q(x) ∧ P(x))
3. ∀x (Q(x) →P(x))
4. ∃x (Q(x) → P(x))
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
102
I. Construa frases em LN
1.
2.
3.
4.
∃x (Q(x) ∧ P(x)) Alguns estac.são
gratuitos e estão ocupados
∀x (Q(x) ∧ P(x)) Todos os estac. são
gratiutos e estão ocupados
∀x (Q(x) →P(x)) Todos os estac. gratuitos
estão ocupados
∃x (Q(x) → P(x)) Para alguns estac. x. Se
x é gratuito então está ocupado
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
103
20
Discrete Math - Module #0 - Overview
9/2/2005
Teoremas sobre a Lógica
l
Estamos estudando a linguagem e os
cálculos da lógica para entende-la
melhor
l Lógicos estudam a lógica para entender
suas limitações
l Meta-teoremas podem dizer coisas
como “… isto não pode ser expresso em
lógica de predicados”
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
104
Teoremas sobre a Lógica
l
Podemos questionar sobre a lógica de
predicados
l
l
l
Sobre a lógica de predicados, os lógicos
fazem questões similares
l
l
Que coisas ela pode expressar?
Quantos conectivos eu preciso?
Esses dois quantificadores são suficientes para
dizer qualquer coisas?
Estas são questões sobre o poder de
expressão da lógica de predicados
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
105
21
Discrete Math - Module #0 - Overview
9/2/2005
Exemplo 1
l
Quantificadores são usados para
expressar que um predicado é True para
um certo número de objetos.
l
Exemplo: Pode a lógica de predicados
expressar: “Existe exatamente um objeto
com a propriedade P”?
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
106
Exemplo 1
∃x (P(x) ∧ ¬∃y (P(y) ∧ y≠ x))
“Existe um x tal que P(x), onde naão
exista um y tal que P(y) e y é diferente
de x.”
Definimos ∃!x P(x) para significar isto:
∃!x P(x) ⇔def∃x (P(x) ∧ ¬∃y (P(y) ∧ y≠ x))
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
107
22
Discrete Math - Module #0 - Overview
l
9/2/2005
Pode a Lógica de Predicados afirmar:
Existe pelo menos dois objetos com a
propriedade P?
9/2/2005
l
Prof.Anselmo Paiva - DEINF/UFMA
Pode a Lógica de Predicados afirmar:
l
l
108
Existe pelo menos dois objetos com a
propriedade P?
Sim, isto é fácil:
∃x ∃y (P(x) ∧ P(y) ∧ x≠ y)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
109
23
Discrete Math - Module #0 - Overview
l
9/2/2005
Pode a lógica de predicados afirmar que:
l Existem exatamente dois objetos com
a propriedade P
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
110
l
Pode a lógica de predicados afirmar que:
l Existem exatamente dois objetos com
a propriedade P
l Sim
∃x ∃y (P(x) ∧ P(y) ∧ x≠ y ∧
∀z (P(z) → (z= x ∨ z= y ))
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
111
24
Discrete Math - Module #0 - Overview
9/2/2005
O que está errado?
l
∃x ∃y (P(x) ∧ P(y) ∧ x≠ y) ∧
∀z (P(z) → (z= x ∨ z= y ))
como uma fórmula de exatamente dois?
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
112
O que está errado?
∃x ∃y (P(x) ∧ P(y) ∧ x≠ y) ∧
∀z (P(z) → (z= x ∨ z= y ))
como uma fórmula de exatamente dois?
l Esta é uma conjunção de duas
proposições separadas. Como resultado
disso, x e y não estão restritas, assim
isto nem é uma proposição
l
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
113
25
Discrete Math - Module #0 - Overview
l
l
l
9/2/2005
Pode a lógica de predicados afirmar que
“Existem infinitos objetos com a propriedade
P”?
Não! Isto vem do Teorema da Compacidade:
“Um conjunto infinito S de modelos pode ser
descrito por p sss cada subconjunto finito de S
pode ser descrito por p”
Similarmente, não podemos expressar “Existe
um número finitos de objetos com a
propriedade P”
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
114
l
Similarmente, não podemos expressar
“Existe um número finitos de objetos
com a propriedade P”
l A não ser que permitamos conjunções
infinitas:
∃!x P(x) ∨ ∃2!x P(x) ∨ ∃3!x P(x) ∨ …
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
115
26
Discrete Math - Module #0 - Overview
9/2/2005
l
Pode a lógica de predicados dizer “a
maioria dos objetos possui a
propriedade P”?
l Não! (Isto vem do teorema da
Compacidade. De novo, a menos que
possamos escrever disjunções infinitas)
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
116
Decidibilidade
l
Mostramos duas maneiras de mostrar
equivalências lógicas:
1.
2.
l
Tabelas Verdade ( pode ser feito de
maneira automática:algoritmo)
Leis de equivalência (precisa de
criatividade)
Termo técnico:
checar a equivalência na lógica
proposicional é decidível
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
117
27
Discrete Math - Module #0 - Overview
9/2/2005
Decidibilidade
l
checar a equivalência na lógica
proposicional é decidível
l checar a equivalência na lógica de
predicados não é decidível
l
l
Ebora a prova de teoremas seja uma arte
(para computadores e humanos)
Alguns “fragmentos” da lógica de
predicados é decidível. Uma aplicação:
PROLOG
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
118
Bonus : Programação em Lógica
l
Existe LPs inteiramente baseada na lógica de
predicados!
l A mais famosa é Prolog.
l Um programa Prolog é um conjunto de proposições
(“fatos”) e (“regras”) em lógica de predicados.
l A entrada ao programa é uma proposiçào de consulta.
l
l
Que queremos saber se é True ou False.
O interpretador Prolog realiza algumas deduções
automáticas para determinar quando a pergunta
segue dos fatos.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
119
28
Discrete Math - Module #0 - Overview
9/2/2005
Fatos em Prolog
l
Representa uma proposição simples,
não composta em lógica dos predicados.
l
e.g., “Joao gosta de Maria”
Pode ser escrito Gosta(Joao,Maria) em lógica
de predicados.
l Pode ser escrito gosta(joao,maria). Em n
Prolog!
l
l
9/2/2005
Símbolos em letra minúscula deve ser usado para
constantes e predicados, maiúsculas reservadas para
nomes de variáveis.
Prof.Anselmo Paiva - DEINF/UFMA
120
Regras em Prolog
l
l
l
Uma regra em Prolog representa um
proposição com quantificador universalcom a
seguinte forma geral
∀x: [∃y P(x,y)]? Q(x),
onde x e y deve ser variáveis compostas
x=(z,w) e P,Q proposições compostas.
Em Prolog, isto é escrito como uma regra:
q(X) :- p(X,Y). ? Variables must be capitalized
i.e., os quantificadores ∀,∃ são implícitos.
Exemplo: likable(X) :- likes(Y,X).
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
121
29
Discrete Math - Module #0 - Overview
9/2/2005
Conjunção e Disjunção
l
Conjunção lógica é codificada usando
termos separados por vírgulas em uma
regra.
l Disjunção lógica é escrita usando regras
múltiplas.
l E.g., ∀x [(P(x)∧Q(x))∨R(x)]? S(x)
pode ser escrito em Prolog como:
s(X) :- p(X),q(X)
s(X) :- r(X)
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
122
Dedução em Prolog
l
Quando uma pergunta é entrada para o
interpretador Prolog,
Ele busca em sua base de dados se a
mesma pode ser definida como True a
partir dos fatos já definidos.
l Caso positivo retorna True, se não, retorna
False (!)
l Se a pergunta possui variáveis, todos os
valores que a tornam True são impressos.
l
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
123
30
Discrete Math - Module #0 - Overview
9/2/2005
Programa Prolog Exemplo
l
Exemplo:
gosta(joao,maria).
gosta(maria,fred).
gosta(fred,maria).
segostam(X) :- gosta(Y,X).
l
Pergunta:? segostam(Z)
retorna:
maria fred
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
124
Relação entre
PROLOG e Lógica de Predicados
l
PROLOG não pode usar todas as
fórmulas da lógica de predicados.
(somente cobre um fragmento.)
l Usa a negação como falha
l Com essas limitações a dedução
baseada no odelo Prolog é decidível.
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
125
31
Discrete Math - Module #0 - Overview
9/2/2005
Exemplo de Dedução
l
Definições: H(x) := “x é humano”;
M(x) := “x é mortal”; G(x) := “x é um deus”
l Premissas:
∀x H(x) → M(x) (“Humanos são mortais”) and
l ∀x G(x) → ¬M(x) (“Deuses são imortais”).
l
l
Mostre que ¬∃x (H(x) ∧ G(x))
(“Nenhum humano é deus.”)
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
126
Prova Semântica
∀x H(x) → M(x) (“Humanos são mortais”)
and
∀x G(x) → ¬M(x) (“Deuses são imortais”).
Suponha ∃x (H(x) ∧ G(x)). Por exemplo,
H(a) ∧ G(a). Então
Pela primeira premissa temos M(x).
Pela segunda premissa temos ¬M(x).
Contradição! Então segue que
¬∃x (H(x) ∧ G(x)) (“Nenhum humano é
Deus.”)
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
127
32
Discrete Math - Module #0 - Overview
9/2/2005
Prova usando equivalências
∀x H(x)→M(x) and ∀x G(x)→¬M(x).
l ∀x ¬M(x)→¬H(x) [Contrapositiva.]
l ∀x [G(x)→¬M(x)] ∧ [¬M(x)→¬H(x)]
l ∀x G(x)→¬H(x) [Transitividade →]
l ∀x ¬G(x) ∨ ¬H(x) [Definição →.]
l ∀x ¬(G(x) ∧ H(x)) [DeMorgan.]
l ¬∃x G(x) ∧ H(x)
[lei de equivalência]
l
9/2/2005
Prof.Anselmo Paiva - DEINF/UFMA
128
Exemplos: Teoria dos Números
Seja u.d. = os números naturais 0, 1, 2, …
O que significa ?
l
∀x (E(x) ↔ (∃y x=2y))
l
∀x (P(x) ↔
(x>1 ∧ ¬∃yz x=yz ∧ y≠1 ∧ z≠1))
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
129
33
Discrete Math - Module #0 - Overview
9/2/2005
Exemplos: Teoria dos Números
Seja u.d. = os números naturais 0, 1, 2, …
l “Um número é par, E(x), sss ele é igual
a 2 vezes outronúmero.”
∀x (E(x) ↔ (∃y x=2y))
l
“Um número é primo, P(x), sss é maior
que 1 e não é o produto de dois
números diferentes de 1.”
∀x (P(x) ↔ (x>1 ∧ ¬∃yz x=yz ∧ y≠1 ∧
9/2/2005
z≠1))
Prof.Anselmo Paiva - DEINF/UFMA
130
Conjectura de Goldbach’s
(não provada)
Usando E(x) e P(x) slide anterior,
∀x( [x>2 ∧ E(x)] ?
∃p ∃q P(p) ∧ P(q) ∧ p+q = x).
“Todo número maior que dois é a soma de
dois números primos.”
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
131
34
Discrete Math - Module #0 - Overview
9/2/2005
Exemplo de Cálculo
l
Maneira de definir precisamente o
conceito de limite usando
quantificadores:
(lim f ( x) = L) ⇔
x →a
 ∀ε > 0 : ∃δ > 0 : ∀x :



 (| x − a |< δ ) → (| f ( x) − L |< ε )
9/2/2005
(c)2001-2003, Michael P. Frank
Prof.Anselmo Paiva - DEINF/UFMA
132
35
Download