BCC 101 Matemtica Discreta I Lgica de Predicados
BCC 101 Matemática Discreta I Lógica de Predicados 1
O que é um Predicado? q Predicado § Coleção parametrizada de proposições § Exemplos: ü P(x): x é par ü D(x, y): x é divisível por y § Tipicamente uma proposição diferente para cada x ü P(2) ü D(10, 5) é True P(5) é False D(20, 3) é False § Domínio (ou universo de discurso) ü Conjunto de valores que as variáveis podem assumir ü Deve ser especificado explicitamente 2
Conjunto verdade de um Predicado Seja P(x) um predicado e suponha que P(x) tem domínio D O conjunto verdade de P(x) é o conjunto dos x D tais que P(x) é True { x D | P(x) } q Exemplo q P(x): 5<x<9 e D=Z { x D | P(x)} = {6, 7, 8} 3
— Quantificador Universal, (para todo) q x p(x) § É uma fórmula se p(x) é uma fórmula § True se p(x) é True para cada valor de x no Domínio § False se existe algum valor de x no Domínio tal que p(x) é False q Exemplo – P(x): x é primo § D = {2, 5, 11} x P(x) é True ü x P(x) significa P(2) P(5) P(11) § D = {3, 6, 9} - x P(x) é False üContra-exemplos: P(6) e P(9) § D = N = {0, 1, 2, … } - x P(x) é False ü x P(x) significa P(0) P(1) P(2) … “ ” provê uma maneira de escrever fórmulas que teriam um número infinito de símbolos na Lógica Proposicional 4
— Quantificador Existencial, (existe) q x p(x) § É uma fórmula se p(x) é uma fórmula § True se p(x) é True para algum valor de x no Domínio § False p(x) é False para todo valor de x no Domínio q Exemplo – P(x): x é primo § D = {3, 6, 9} x P(x) é True ü x P(x) significa P(3) P(6) P(9) § D = {6, 9, 15, 28} - x P(x) é False ü x P(x) significa P(6) P(9) P(15) P(28) § D = N = {0, 1, 2, … } - x P(x) é True ü x P(x) significa P(0) P(1) P(2) … “ ” provê uma maneira de escrever fórmulas que teriam um número infinito de símbolos na Lógica Proposicional 5
Universo Vazio q Qual o significado de x p(x) se o universo de discurso é vazio? § x p(x) é True § Isso é compatível com o fato de que o é uma generalização do ∧ e a identidade do ∧ é true. q Qual o significado de ∃x p(x) se o universo de discurso é vazio? § ∃x p(x) é False § Isso é compatível com o fato de que o ∃ é uma generalização do ∨ e a identidade do ∨ é false. 6
Exercício q Seja P(x): x == x 2 e suponha que o universo é o conjunto dos números inteiros. Qual é o valor verdade de cada uma das afirmações a seguir: § § § P(0) P(1) P(2) P(-1) P(y) § § § x P(x) x P(x) 7
PROLOG q PROLOG é uma linguagem de programação baseada em lógica. Um programa em PROLOG é uma sequência de declarações de fatos e regras. q Declarações de fatos definem os objetos do Domínio e quais desses objetos satifazem determinados predicados. q Regras definem novos predicados, por meio de asserções condicionais. Vejamos um exemplo 8
O seguinte programa PROLOG descreve o mundo da figura: color(g, gray) isabove(g, b 1) color(b 1, blue) isabove(b 1, w 1) color(b 3, blue) isabove(w 2, b 2) color(b 2, blue) isabove(b 2, b 3) color(b 1, white) isabove(X, Z) : - isbove(X, Y) , isabove(Y, Z) color(w 2, white) As seguintes perguntas podem ser feitas ? color(b 1, blue) Yes ? isabove(X, w 1) b 1, g PROLOG adota a hipótese de mundo fechado. 9
Exercício (ENADE 2014) q Considere o seguinte programa PROLOG: superior(jorge). superior(ana). selecionados(P, Q) : - superior(P), superior(Q). desconsiderados(P, Q) : - not(superior(P)); not(superior(Q)). descartado(P) : - not(superior(P)). q Marque as afirmações verdadeiras: Para todos os possíveis valores de P e Q, selecionados(P, Q) é falso Falso 10
Exercício (ENADE 2014) q Considere o seguinte programa PROLOG: superior(jorge). superior(ana). selecionados(P, Q) : - superior(P), superior(Q). desconsiderados(P, Q) : - not(superior(P)); not(superior(Q)). descartado(P) : - not(superior(P)). q Marque as afirmações verdadeiras: Para todos os possíveis valores de P e Q, selecionados(P, Q) tem valor lógico diferente de desconsiderados(P, Q) Verdadeiro 11
Exercício (ENADE 2014) q Considere o seguinte programa PROLOG: superior(jorge). superior(ana). selecionados(P, Q) : - superior(P), superior(Q). desconsiderados(P, Q) : - not(superior(P)); not(superior(Q)). descartado(P) : - not(superior(P)). q Marque as afirmações verdadeiras: A conjunção de selecionados(P, Q) e desconsiderados(P, Q), para quaisquer valores de P e Q, tem valor lógico verdadeiro Falso 12
Exercício (ENADE 2014) q Considere o seguinte programa PROLOG: superior(jorge). superior(ana). selecionados(P, Q) : - superior(P), superior(Q). desconsiderados(P, Q) : - not(superior(P)); not(superior(Q)). descartado(P) : - not(superior(P)). q Marque as afirmações verdadeiras: Para qualquer valor de P, descartado(P) tem valor lógico verdadeiro Falso 13
Exercício (ENADE 2014) q Considere o seguinte programa PROLOG: superior(jorge). superior(ana). selecionados(P, Q) : - superior(P), superior(Q). desconsiderados(P, Q) : - not(superior(P)); not(superior(Q)). descartado(P) : - not(superior(P)). q Marque as afirmações verdadeiras: A disjunção de selecionados(P, Q) e desconsiderados(P, Q), para quaisquer valores de P e Q, tem valor lógico verdadeiro Verdadeiro 14
Fórmulas com vários quantificadores os d m rde o e a r rte dores ode e v n I fica mula p ado i t n qua ma fór ifnific em u ar seu s r alte q. Seja N o domínio de discurso N = {0, 1, 2, 3, … } e se R (x, y ) = “x < y”. Q 1: O que significa x y R (x, y ) ? § Todo número x admite um número maior y § Verdadeiro ou falso? Q 2: O que significa y x R (x, y ) ? § Algum número y é maior que todo x § Verdadeiro ou falso? 15
Fórmulas com vários quantificadores q x. y. p(x, y) é True se p(x, y) é True para todo par (x, y) em Dx. D § Exemplo (D = N): x y y=x+1 -> x < y é True q x. y. p(x, y) é True se, para cada x∈D, é possível escolher um y∈D tal que p(x, y) é True § Exemplos (D = N): x y y > x é True q y. x. p(x, y) é True se existe um determinado y∈D, tal que p(x, y) é True, para todo x∈D § Exemplo (D = N): y x y > x é False q y. x. p(x, y) é True se existe um par (x, y) ∈ Dx. D tal que p(x, y) é True q Exemplo(D = N): y x y. x é True 16
Exercícios q Seja Q(x, y): x+y == x-y e suponha que o universo é o conjunto dos números inteiros. Qual é o valor verdade de cada uma das afirmações a seguir: § § § Q(1, 1) Q(2, 0) y Q(1, y) x Q(x, 2) y Q(2, y) x Q(x, y) § § § x y Q(x, y) y x Q(x, y) 17
Lógica de Predicados – sintaxe formal termo : : = var | func (termo 1, …, termon) n ≥ 0 Termos denotam objetos do Domínio Fórmulas denotam valores lógicos (T ou F) formula : : = true | false |pred (termo 1, …, termon) n ≥ 0 |(¬ formula) |(formula ∧ formula) |(formula ∨ formula) |(formula -> formula) Precedência dos operadores |(formula <-> formula) |( var. formula) 18
Lógica de Predicados - semântica q Termos denotam objetos do domínio Domínio = N Termos 2 constantes variáveis funções aplicadas a termos x 5 2 5 y x+2 (y+1)2 3 6 4 49 19
Lógica de Predicados - semântica q Fórmulas denotam valores lógicos A interpretação depende dos valores de x e y -- x e y são variáveis livres x=3, y=6 Fórmulas Bool T ou F? x>y T (x > y) -> (y+1 = 3) x x=3 F x x+3=2 y A interpretação não depende do valor de x! -- x é uma variável ligada A interpretação não depende do valor de x, mas depende do valor de y! -- x é uma variável ligada e y é livre 20
Variáveis livres e ligadas variável ligada variável livre escopo de ocorrência ligada escopo de 21 ocorrência livre
Modelo q. Dizemos que uma interpretação é um modelo para uma fórmula se a fórmula é verdadeira nessa interpretação. q. Exemplo: ∀x(P(x)∨Q(x)) →∀x. P(x) ∨∀x. Q(x) § É modelo para essa fórmula: D={a, e, i, o, u} P(x): x é minúscula Q(x): x é vogal § Não é um modelo para essa fórmula: D=Z P(x): x>=0 Q(x): x<0 22
Tautologia q. Uma fórmula é uma tautologia se toda interpretação é um modelo para essa fórmula. q. Exemplos: § ∀x (P(x) ∨¬P(x)) § ¬∀x P(x) �∃x ¬P(x) § ∀x(P(x)∧Q(x)) �∀x. P(x) ∧∀x. Q(x) 23
Exercício q. Quais das seguintes fórmulas são tautologias: § § § ∀x (P(x) ∧ ¬P(x)) ∀x ∃y (P(x)∧¬P(y)) ¬∃x P(x) �∀x ¬P(x) ∃x(P(x)∨Q(x)) �∃ x. P(x) ∨∃x. Q(x) ∃x(P(x) ∧Q(x)) �∃ x. P(x) ∧∃x. Q(x) 24
Traduzindo para Lógica de Predicados G(x, y): x gosta de y 1. João gosta de Maria G(João, Maria) 2. João gosta de todo mundo y G(João, y) 3. Todo mundo gosta de João x G(x, João) 4. Maria gosta de alguém y G(Maria, y) 5. Maria não gosta de ninguém ¬ y G(Maria, y) 6. Todo mundo gosta de alguém x y G(x, y) 7. Ninguém gosta de todo mundo x y ¬G(x, y) 8. João gosta de todo mundo de quem Maria não gosta y ¬G(Maria, y)→G(João, y) 25
Exercícios q Traduza as seguintes sentenças para a Lógica de Predicados: 1. Todo número par maior que 2 é a soma de 2 primos ∀x (par(x) ∧ x>2 → ∃y∃z (primo(y) ∧ primo(z) ∧ x=y+z)) 1. Em toda cidade existe uma rua que tem pelo menos 1 buraco ∀x (Cidade(x) → ∃y∃b (Rua(y) ∧ Inr(R, b) ∧Buraco(b) ∧ Inb(R, b))) 26
- Slides: 26