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