Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Teorema de Herbrand
2
Equivalências de 1a Ordem
As “leis” da Lógica Proposicional e as apresentadas a seguir permitem simplificar fórmulas da Lógica de 1a Ordem.
3
Equivalências de 1a Ordem
B x(a b) x(a) b x não ocorre em b x(a ^ b) x(a) ^ b “ x(a b) x(a) b x(a ^ b) x(a) ^ b
4
Equivalências de 1a Ordem
B ~x(a) x(~a) ~x(~a) x(a) ~x(a) x(~a) ~x(~a) x(a)
5
Equivalências de 1a Ordem
B x(a) ^ x(b) x(a ^ b) x(a) x (b) x(a b) x(a) x(b) xz(a b) z não ocorre em a x(a) ^ x (b) xz(a ^ b) “
6
Forma Normal Prenex Def. 1 Uma fórmula a é dita estar na forma normal prenex se e somente se a é da forma: Q1x1, ... ,Qnxn(M) onde Qi {, } e M é uma fórmula sem quantificadores. Toda fórmula de 1a Ordem pode ser transformada na Forma Normal Prenex
7
Procedimento de Transformação de Fórmulas para a Forma Normal Prenex
Passo 1: usar as “leis” abaixo para eliminar os conectivos ~, e ~(~a) |=| a a b |=| (a b) ^ (b a) a b |=| ~ a b
8
Procedimento de Transformação de Fórmulas para a Forma Normal Prenex
Passo 2: usar repetidamente as “leis” abaixo para interiorizar a negação ~( a ^ b) |=| ~ a ~ b ~( a b) |=| ~ a ^ ~ b ~x(a) |=| x(~a) ~x(a) |=| x(~a)
9
Procedimento de Transformação de Fórmulas para a Forma Normal Prenex
Passo 3: usar as “leis” abaixo para mover os quantificadores para a esquerda e obter a forma normal prenex: Qx(a b) |=| Qx(a) b Qx(a ^ b) |=| Qx(a) ^ b x(a) ^ x(b) |=| x(a ^ b) x(a) x (b) |=| x(a b) x(a) x(b) |=| xz(a b) x(a) ^ x (b) |=| xz(a ^ b)
10
Transformação de Fórmulas para a Forma Normal Prenex
Exemplo: x(P(x)) x(Q(x)) ~x(P(x)) v x(Q(x)) x(~P(x)) v x(Q(x)) x(~P(x) v Q(x))
11
Transformação de Fórmulas para a Forma Normal Prenex
Exemplo: x(P(x)) v x(~Q(x)) v x(R(x)) x(P(x)) v y(~Q(y)) v z(R(z)) xyz (P(x) v ~Q(y) v R(z))
12
Transformação de Fórmulas para a Forma Normal Prenex
Exemplo: x y( z(P(x,z) ^P(y,z)) u(Q(x,y,u) ) x y(~z(P(x,z) ^P(y,z)) v u(Q(x,y,u) ) x y(z~(P(x,z) ^P(y,z)) v u(Q(x,y,u) ) x y(z (~P(x,z) v ~P(y,z)) v u(Q(x,y,u)) x yz u(~P(x,z) v ~P(y,z) v (Q(x,y,u))
13
Transformação de Fórmulas para a Forma Normal Prenex
Exemplo: “se x chama y, x e y são programas no dicionário” xy(C(x, y) (z(P(x, z)) ^ w(P(y, w)))) xy(~C(x, y) v (z(P(x, z)) ^ w(P(y, w)))) xyzw(~C(x, y) v (P(x, z) ^ P(y, w)))
14
Forma Normal Skolem Essa forma elimina os quantificadores existenciais de uma forma prenex obtendo uma generalização A eliminação do existencial é obtida pelo seguinte procedimento proposto por skolem:
15
Procedimento de Eliminação de Quantificadores Existenciais
Seja a uma fórmula na forma normal prenex Q1x1, ..., Qnxn(M), onde M está na forma normal conjuntiva e Qr um quantificador existencial no prefixo de a Q1x1, ... ,Qnxn, 1 r n. A eliminação de Qnxn é feita observando-se os quantificadores que o antecedem. Ocorre da seguinte maneira:
16
Procedimento de Eliminação de Quantificadores Existenciais
Se não existir nenhum quantificador universal anterior a Qrxr no prefixo, faça: escolha uma nova constante c diferente de qualquer outra que ocorre em M, substitua todos os xr ocorrendo em M por c e elimine Qrxr do prefixo. senão ...
17
Procedimento de Eliminação de Quantificadores Existenciais
Se Qs1, ... ,Qsm são os quantificadores universais anteriores a Qr no prefixo, 1 s1 < s2 < ... < sm < r, faça: escolha um novo símbolo funcional m-ário f diferente de outros símbolos funcionais ocorrendo em M, substitua todos os xr ocorrendo em M pelo termo f(s1, ... , sm) e elimine Qrxr do prefixo.
18
Procedimento de Eliminação de Quantificadores Existenciais
Depois do processo de eliminação (skolemização) ser aplicado a todos os quantificadores existenciais do prefixo, a fórmula obtida está na forma normal de skolem, denotada por skolem(a).
19
Procedimento de Eliminação de Quantificadores Existenciais
Exemplo: obter skolem(a) a = xyzu(P(x, y, z, u)) x não é precedido de quantificador universal, então: yzu(P(a, y, z, u)) 2. u é precedido por yz, então: yz (P(a, y, z, f(y, z)))
20
Procedimento de Eliminação de Quantificadores Existenciais
Observe a semântica da função skolem: Considere o predicado Mãe definido com o seguinte significado: Mãe(x,y): x é mãe de y papel do 1o termo: é mãe papel do 2o termo: é filho
21
Procedimento de Eliminação de Quantificadores Existenciais
Exemplo 1: “Todo mundo tem mãe” xy(Mãe(y,x)) “para todo x existe um y que é mãe de x “ x(Mãe(f(x),x)) fica claro que o valor de y: a mãe, depende do valor de x: o filho
22
Procedimento de Eliminação de Quantificadores Existenciais
Exemplo 2: “Existe alguém que é mãe de todos” xy(Mãe(x,y)) isto é: “existe um x que para todo y, x é mãe de y “ y(Mãe(a,y)) a = “Nossa Senhora”
23
Procedimento de Eliminação de Quantificadores Existenciais
Exemplo: obter skolem() = (xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) v R(x,y,z)) ^ (Q(x,z) v R(x,y,z))) xz((~P(x,f(x)) v R(x,f(x),z)) ^ (Q(x,z) v R(x,f(x),z))) x((~P(x,f(x)) v R(x,f(x),g(x)) ^ (Q(x,g(x)) v R(x,f(x),g(x))))
24
Forma Normal Skolem Teorema 1: Seja a um fórmula de 1a ordem. Então, a é insatisfatível se e somente se skolem(a) é insatisfatível. As outras formas normais preservam os modelos das fórmulas originais (são tautologicamente equivalentes) A forma normal de skolem preserva apenas a condição de insatisfatibilidade da fórmula original.
25
Forma Normal Skolem Exemplo: Seja a = x(P(x)).
então, skolem(a) = P(a) Seja I a seguinte interpretação : D = {1, 2} aI = 1 PI(1) = F PI(2) = V Então, I satisfaz a, mas não satisfaz skolem(a).
26
Representação Clausal de Fórmulas
Def.2 Um literal é uma fórmula atômica (literal positivo) ou a negação de uma fórmula atômica (literal negativo). Def.3 Uma cláusula é uma disjunção de literais Exemplo: P(x) Q(a) ~R(y)
27
Representação Clausal de Fórmulas
Por conveniência, uma cláusula pode também ser representada como um conjunto, o conjunto de seus literais. Exemplo: {P(x), Q(a), ~R(y)}
28
Representação Clausal de Fórmulas
Def.4 A cláusula vazia é uma cláusula sem literais (conjunto vazio) e é representada por . Representa uma fórmula insatisfatível ( ^ ~). Qualquer fórmula de 1a ordem pode ser transformada em um conjunto de cláusulas.
29
Procedimento de Transformação de Fórmulas em Cláusulas
1. Eliminar usando a “lei” a b |=|(a b)^(b a) 2. Eliminar usando a “lei” a b |=| ~ a b 3. Reduzir escopo de ~ usando a “lei” de De Morgan e outras “leis” 4. Renomear variáveis 5. Skolemizar 6. Converter para a Forma Normal Prenex 7. Converter matriz para a Forma Normal Conjuntiva 8. Eliminar quantificadores universais 9. Eliminar ^ e obter o conjunto de cláusulas
30
Exemplo:Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))
4. x(~P(x) (y(~P(y) P(f(x, y))) ^ w(Q(x, w) ^ ~P(w)))) 5. x(~P(x) (y(~P(y) P(f(x, y))) ^ (Q(x, g(x)) ^ ~P(g(x))))) 6. xy (~P(x) ((~P(y) P(f(x, y)) ) ^ (Q(x, g(x)) ^ ~P(g(x)) ))) 7. xy((~P(x) ~P(y) P(f(x, y))) ^ (~P(x) Q(x, g(x))) ^ (~P(x) ~P(g(x)))) 8.{ ~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }
31
Exemplo: Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))
A fórmula foi transformada em um conjunto, S, de 3 cláusulas : S= {~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }
32
Exemplo: Fazer a representação clausal de um estado do “Dicionário”
Exemplo: A transformação da fórmula 12 xyz((depende(x, z) & depende(z, y)) depende(x, y)) xyz(~(depende(x, z) & depende(z, y))v depende(x, y)) xyz((~depende(x,z) v ~depende(z,y)) v depende(x,y)) S = {~depende(x,z) v ~depende(z,y) v depende(x,y)} A fórmula 12 foi transformada em um conjunto S de apenas uma cláusula
33
Exemplo: Fazer a representação clausal de um estado do “Dicionário”
Representação clausal após as transformações: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) Continua... Um fórmula atômica é uma cláusula. cada fato (dado) do “Dicionário” já estava representado por uma fórmula atômica.
34
Exemplo: Fazer a representação clausal de um estado do “Dicionário”
Continuação... 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y) depende(x, y) cada regra foi transformada em cláusula. As três últimas cláusulas também podem ser representadas por conjunto de literais: 10’. ~chama(x, y), depende(x, y)) 11’. ~usa(x, y), depende(x, y) 12’. ~depende(x, z), ~depende(z, y), depende(x, y)
35
Exemplo: Fazer a representação clausal de um estado do “Dicionário”
Representação clausal completa: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y) depende(x, y) F A T O S REGRAS
36
O Universo de Herbrand Def.5 O Universo de Herbrand para um conjunto de cláusulas S, H(S), é definido da seguinte forma: toda constante ocorrendo em S pertence a H(S). Se nenhuma constante ocorre em S, então H(S) conterá uma constante escolhida arbitrariamente. se f é um símbolo funcional n-ário ocorrendo em S, e se t1, ...,tn são termos que pertencem a H(S), então o termo f(t1, ...,tn) também pertence a H(S).
37
O Universo de Herbrand Exemplo:
Seja S = {P(a), ~P(x) P(f(x))}. Então, H0 = {a} H1 = {a, f(a)} H2 = {a, f(a), f(f(a))} H = H(S) = {a, f(a), f(f(a)), f(f(f(a))), ... }
38
O Universo de Herbrand Seja S = {~P(x) Q(x), P(x)}. Então,
H0 = H(S) = {a} Quando S não tem funções H(S) é finito
39
O Universo de Herbrand Def.6 Um termo básico é um elemento de H(S), onde S é um conjunto de cláusulas. Def.7 Uma Base de Herbrand para S é o conjunto B(S) de todas as fórmulas atômicas da forma P(t1, ...,tn), onde P é um símbolo predicativo ocorrendo em S e t1, ...,tn são termos básicos, p/ todo n > 0.
40
O Universo de Herbrand Exemplo: Seja S = {P(x) Q(x), R(f(y))}
H(S) = {a, f(a), f(f(a)), ... } B(S) = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), R(f(f(a))),...}
41
O Universo de Herbrand Def.8 Um literal básico de S é um elemento de B(S) ou a negação de um elemento de B(S). Def.9 Um par complementar é um conjunto formado por um literal básico e sua negação Ex: P(a), ~P(a)
42
O Universo de Herbrand Def.10 Uma instância básica de uma cláusula C é uma cláusula C’ obtida por substituição das variáveis em C por termos básicos. Ex: Cláusula R(f(y)) do exemplo anterior: Instâncias: R(f(a)) R(f(f(a))) R(a) não é instância dessa cláusula
43
Interpretação de Herbrand
Def.11 Uma interpretação I para um conjunto de cláusulas S é uma interpretação de Herbrand para S se e somente se: o domínio D de I é H(S) para cada constante a de S, aI = a para cada símbolo funcional f de S, fI(t1, ...,tn) = f(t1, ...,tn), para cada t1, ...,tn H(S)
44
Interpretação de Herbrand
Exemplo: Seja S o seguinte conjunto de duas cláusulas: 1. ~chama(x, y), programa(x, f(x)) 2. ~chama(x, y), programa(y, g(y)) H(S) = {a, f(a), g(a), f(f(a)), f(g(a)), g(f(a)) ...} onde a é uma constante arbitrária. continua ...
45
Interpretação de Herbrand
continuação... Toda interpretação de Herbrand I para S (H-interpretação) satisfaz as seguintes condições: aI = a fI(t) = f(t), para todo t H(S) gI(t) = g(t), para todo t H(S) continua ...
46
Interpretação de Herbrand
continuação... O significado dessa H-interpretação se resume à descrição do significado dos símbolos predicativos chama e programa: chamaI = {(a, a), (a, f(a))} programaI = {(a, a), (a, g(f(a))}
47
Interpretação de Herbrand
Seja B(S) = {A1, A2, ... ,An, ...} a base de Herbrand de S. Uma H-interpretação I também pode ser representada pelo conjunto: I = {m1, m2, ... ,mn,...} onde mj é Aj ou ~Aj, para j = 1, 2, ... . se mj é Aj, então, Aj é verdadeiro se mj é ~Aj, significa que Aj é falso.
48
Interpretação de Herbrand
Seja S = {P(x) Q(x), R(f(y))} H(S) = {a, f(a), f(f(a)), ... } B(S) = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ...} Algumas H-interpretações para S: I1 = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ... } I2 = {~P(a), ~Q(a), ~R(a), ~P(f(a)), ~Q(f(a)),~R(f(a)),... } I3 = {P(a), Q(a), ~R(a), P(f(a)), Q(f(a)), ~R(f(a)), ... } I∞ ={ }
49
Interpretação de Herbrand
Teorema 2: Um conjunto de cláusulas S é satisfatível se e somente se existir alguma H-interpretação que satisfaz S O problema da insatisfatibilidade para conjunto de cláusulas é redutível ao problema da insatifatibilidade para conjunto de cláusulas na classe de interpretações de Herbrand. Basta assim trabalhar com H-interpretações.
50
Interpretação de Herbrand
Teorema 3: Seja C uma cláusula em um conjunto S de cláusulas. Uma H-interpretação I para S satisfaz C se e somente se I satisfaz todas as instâncias básicas de C. Testar satisfatibilidade de uma cláusula em uma H-interpretação I é testar se I satisfaz todas as intâncias básicas de C.
51
Interpretação de Herbrand
1. Uma instância básica C’ de uma cláusula C é satisfeita por uma H-interpretação I se e somente se existe um literal básico L’ em C’ tal que L’ I, isto é, C’ I . 2. Uma cláusula C é falsa (não é satisfeita) em uma H-interpretaçã0p-o I se e somente se existe pelo menos uma instância básica C’ de C que não é satisfeita em I. 3. Um conjunto S de cláusulas é insatisfatível se e somente se, para toda H-interpretação I para S, existe no mínimo uma instância básica C’ de alguma cláusula C em S tal que C’ não é satisfeita em I.
52
Interpretação de Herbrand
Exemplo: Seja C = ~P(x) Q(f(x)) e sejam I1, I2 e I3 H-interpretações para C: I1 = {~P(a), ~Q(a), ~P(f(a)), ~Q(f(a)), ... } I2 = {P(a), Q(a), P(f(a)), Q(f(a)), ... } I3 = {P(a), ~Q(a), P(f(a)), ~Q(f(a)), ... } Então, I1 e I2 satisfazem C e I3 não satisfaz C.
53
Interpretação de Herbrand
Exemplo: Seja S = {P(x), ~P(a)}. Existem apenas duas H-interpretação para S: I1 = {P(a)} I2 = {~P(a)} S é falso em todas as duas H-interpretações, portanto, S é insatisfatível.
54
Interpretação de Herbrand
Uma Interpretação de um conjunto de cláusulas não necessariamente tem de ser definida sobre o Universo de Herbrand Exemplo: Seja S = {P(x), Q(y, f(y,a)) } e a seguinte Interpretação I:
55
Interpretação de Herbrand
...continuação Interpretação I para S = {P(x), Q(y, f(y,a)) } Domínio: D = { 1, 2} D não é Herbrand Atribuições V: aI = 2 fI = f(1,1)= f(2,2)= 1, f(1,2)= f(2,1)= 2 PI = P(1)= V P(2)= F QI = Q(1,1) = Q(2,1) = Q(2,2) = F Q(1,2) = V continua ...
56
Interpretação de Herbrand
Para uma interpretação I como a do exemplo anterior, pode-se definir uma H-interpretação I* correspondente a I. Exemplo: para o mesmo exemplo segue a I* correspondente: S = {P(x), Q(y, f(y,a)) } B(S) = { P(a), Q(a,a), P(f(a,a)), Q(a,f(a,a)), Q(f(a,a),a), Q(f(a,a),f(a,a)), ... }. continua ....
57
Interpretação de Herbrand
...continuação P(a) = P(2) = F Q(a, a) = Q(2, 2) = T P( f(a, a)) = P( f(2, 2)) = P(1) = T Q(a, f(a, a)) = Q(2, f(2, 2)) = Q(2, 1) = F Q( f(a, a), a) = Q( f(2,2), 2) = Q(1, 2) = T Q( f(a, a), f( a, a)) = Q( f(2, 2), f(2, 2)) = Q(1, 1) = F A H-interpretação I* correspondente a I é : I* = { ~P(a), Q(a,a), P(f(a,a), ~Q(a, f(a,a)), Q(f(a,a), a), ~Q(f(a, a), f(a,a)), ... }.
58
Interpretação de Herbrand
No caso de não existirem constantes em S, o elemento a, que é usado para iniciar o universo Herbrand de S, pode ser mapeado para qualquer elemento do domínio D. Neste caso, se existe mais de um elemento em D, então existe mais de uma H-interpretação correspondente a I.
59
Interpretação de Herbrand
Exemplo2 : Seja S = { P(x), Q(y, f(y, z)) }, (sem constantes) D = { 1, 2} e I = a mesma interpretação do exemplo anterior, exceto a atribuição para a. Como S não tem constantes, e D tem dois elementos, existem duas interpretações I* equivalentes a I: I1 para a= 1 e I2 para a = 2.
60
Árvores Semânticas Def.12 Uma árvore semântica binária para um conjunto de cláusulas S é qualquer árvore binária A com as arestas rotuladas por literais básicos de S tal que: para todo nó N de A, os rótulos das arestas ligando N a seus filhos são literais básicos complementares duas arestas em um mesmo ramo de A não são rotulados por literais complementares.
61
Árvores Semânticas Def.13 Se r for um caminho ou ramo de A, rot(r) denotará o conjunto de todos os literais que rotulam as arestas de r. Se N for um nó de A, rot(N) denotará o conjunto de todos os literais que rotulam as arestas do caminho da raiz de A até N.
62
Árvores Semânticas Def.14 Uma árvore semântica binária A para um conjunto de cláusulas S é completa se e somente se: para toda H-interpretação I para S, existe um ramo r de A tal que rot(r) = I. para todo ramo r de A, rot(r) é uma H-interpretação para S.
63
Árvores Semânticas Exemplo: Seja S = { P v Q, Q , R v Q}
B(S) = {P, Q, R}. uma árvore semântica binária completa para S seria:
64
Árvores Semânticas B(S) = {P(a)}
Exemplo: Seja S = {P(x), P(a)} B(S) = {P(a)} uma árvore semântica binária completa para S seria:
65
Árvores Semânticas Def.15 Duas cláusulas C e C’ são comple-mentares se e somente se C é o conjunto dos literais complementares aos literais em C’, C = comp(C’). Exemplo: 1. ~chama(x, y), programa(x, f(x)) 2. chama(x, y), ~programa(x, f(x))
66
Árvores Semânticas Def.16 Seja A uma árvore semântica binária para um conjunto de cláusulas S: (a) um nó N de A é um nó de falha se e somente se existe uma instância básica B de uma cláusula de S tal que comp(B) rot(N) e nenhum ancestral de N é um nó de falha. (b) A é fechada se e somente se todo ramo de A possui um nó de falha a uma distância finita da raiz, ou seja, se todo ramo de A é finitamente fechado.
67
Árvores Semânticas Exemplo: Seja S o seguinte conjunto de cláusulas:
1. ~chama(x, y), programa(x, f(x)) 2. ~chama(x, y), programa(y, g(y)) H(S) = {a, f(a), g(a), f(f(a)), f(g(a)), ... } continua .....
68
Árvores Semânticas A árvore abaixo é uma árvore semântica para S:
.... continuação A árvore abaixo é uma árvore semântica para S: Seja N o nó marcado com (*) rot(N) = {chama(a,a),~programa(a,a),~programa(a,f(a))}
69
Árvores Semânticas continuação Seja B a seguinte instância básica da cláusula 1: ~chama(a, a), programa(a, f(a)) Então, comp(B) = {chama(a, a), ~programa(a, f(a))} Como comp(B) rot(N), então N é um nó de falha. Toda H-interpretação que contém rot(N) falsifica B, e por conseguinte, S.
70
Árvores Semânticas Teorema 4: I é um modelo para um conjunto S de cláusulas se e somente se para toda instância básica B de S, comp(B) I. Teorema 5: Seja S um conjunto de cláusulas: (i) se S é insatisfatível então toda árvore semântica binária completa para S é fechada. (ii) se existe uma árvore semântica binária completa e fechada para S então S é insatisfatível.
71
Árvores Semânticas Exemplo1: Prove que S é insatisfatível
S = { P, Q v R, ~P v ~Q, ~P v ~R} H = {a} B(H) = {P, Q, R} A obtenção de uma árvore fechada indica que S é insatísfatível
72
Árvores Semânticas Exercício2: Prove que S é insatisfatível
S = { P(x), ~P(x) v Q(f(x)), ~Q(f(a))} H = {a, f(a), f(f(a)), f(f(f(a))), .....} B(S) = {P(a), Q(a), P(f(a)), Q(f(a)), } A obtenção de uma árvore fechada indica que S é insatísfatível
73
Árvores Semânticas Exercício 3: Use Árvore Semântica para provar a validade do argumento: Todo Homem é Mortal Sócrates é um Homem Logo, Sócrates é Mortal
74
Árvores Semânticas Exercício 4: Repita o exercício anterior considerando o argumento: Todo Homem é Mortal O pai de Sócrates é um Homem Logo, o pai de Sócrates é Mortal Sugestão: No alfabeto inclua a função p(x) com o significado: p(x) : pai de x
75
Teorema de Herbrand Teorema de Herbrand: Um conjunto de cláusulas S é insatisfatível se e somente se existe um conjunto finito de instâncias básicas de cláusulas de S que é insatisfatível. Prova: )Prova-se que se S é satisfatível então todo conjunto finito de instâncias básicas é satisfatível. ) Prova-se que se S é insatisfatível, então existe um conjunto finito de instâncias básicas de S que é insatisfatível.
76
Teorema de Herbrand O Teorema de Herbrand reduz o problema da insatisfatibilidade de um conjunto de cláusulas ao problema de gerar um conjunto finito de instâncias básicas das cláusulas do conjunto que seja insatisfatível. Tal conjunto sempre existirá se o conjunto inicial de cláusulas for realmente insatisfatível, mas poderá não existir em caso contrário.
77
Teorema de Herbrand O Problema de Prova de Teorema:
Temos um conjunto de fórmulas e desejamos deduzir uma fórmula meta a partir de : (i) Sistemas Axiomáticos: (ii) Sistemas por Refutação (contradição):
78
Teorema de Herbrand O Problema de Prova de Teorema:
(i) Sistemas Axiomáticos: procura-se deduzir a partir de usando-se as regras de inferência. Justificativa: G— a se e somente se G |= a (ii) Sistemas por Refutação (contradição): nega-se a fórmula meta a e converte-se o conjunto { ~a} para um conjunto de cláusulas S. Procura-se então verificar se S é insatisfatível. Justificativa: Se | S então G |= a
79
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
1. Dado um conjunto S de cláusulas, gere sistematicamente todos os conjuntos finitos S0, S1, ..., Sn, ... de instâncias básicas de cláusulas em S. 2. Para cada conjunto Si gerado, teste se Si é insatisfatível. 3. Pare com SIM, se Si é insatisfatível. 4. Pare com NÃO, se não houver novos conjuntos a gerar.
80
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
Esse procedimento: Sempre pára com SIM quando S for realmente insatisfatível. Nunca pára quando S for satisfatível e existir um conjunto infinito de instâncias básicas de cláusulas de S. Sempre pára com NÃO quando S for satisfatível mas o conjunto de instâncias básicas de cláusulas de S é finito.
81
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
É um procedimento de decisão parcial (semi decidível) para o problema da insatisfatibilidade de conjunto de cláusulas. É um procedimento de decisão (decidível) para o problema da insatisfatibilidade de conjunto de cláusulas cujo conjunto de instâncias básicas é finito.
82
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
Exemplo: Seja P o conjunto de cláusulas representando um estado do “Dicionário” do exemplo sobre Teoria de 1a Ordem. Seja P a seguinte cláusula representando uma quetão (meta): depende(a, e)? Então, S = {P ~P} formaliza o problema. continua ...
83
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
...continuação Uma solução para esse problema usando Prova de Teorema consiste em verificar se S = {P ~P} é ou não insatisfatível. H(S) = {a, ..., e, fortran, ..., direto} S é finito. Logo o procedimento parará. continua ...
84
Procedimento de Refutação Sugerido pelo Teorema de Herbrand:
...continuação Suponha que o seguinte conjunto B de instâncias básicas de S seja gerado: 1. chama(a, b) 2. usa(b, e) 3. ~chama(a, b), depende(a, b) 4. ~usa(b, e), depende(b, e) 5. ~depende(a, b), ~depende(b, e), depende(a, e) 6. ~depende(a, e) Traduzindo-se S para fórmulas da Lóg. Proposicional, pode-se verificar que B é insatisfatível, o que acarreta, pelo Teorema de Herbrand, que S é insatisfatível.
85
Implementação do Teorema de Herbrand
Gilmore apresentou em 1960 um programa de computador que gerava sucessivamente conjuntos S0, S1, ..., onde Si é o conjunto de todas as instâncias básicas obtidas pela substituição das variáveis em S por elementos do i-ésimo nível de H(S).
86
Implementação do Teorema de Herbrand
Como cada Si é uma conjunção de instâncias básicas, podemos usar qualquer método da Lógica Proposicional para verificar sua insatisfatibilidade. Gilmore usou o método da multiplicação Método da Multiplicação: Numa Forma Normal Disjuntiva, qualquer conjunção que contém um par complementar é removida. Exemplo: (P ^ ~P ^ R ^ S) v R = R
87
Implementação do Teorema de Herbrand
Exemplo: Seja S = {P(a), ~P(x) Q(f(x)), ~Q(f(a))} Então, H0 = {a} S0 = P(a) & (~P(a) Q(f(a))) & ~Q(f(a)) = ((P(a) & ~P(a)) (P(a) & Q(f(a)))) & ~Q(f(a)) = (P(a) & ~P(a) & ~Q(f(a))) (P(a) & Q(f(a)) & ~Q(f(a))) = = Logo, S é insatísfatível
88
Implementação do Teorema de Herbrand
O método multiplicativo usado por Gilmore é ineficiente. Davis e Putnam introduziram um método mais eficiente, mas para muitos casos o problema continuava. O problema ocorria porque o procedimento de Herbrand tem uma grande desvantagem: ele precisa gerar os conjuntos S1', S2', ... de instâncias básicas das cláusulas. Para muitos casos, esta seqüência cresce exponencialmente.
89
Implementação do Teorema de Herbrand
Para evitar a geração de conjuntos de instâncias básicas do Procedimento de Herbrand, Robinson em 1965, propôs um método bem mais eficiente, o Princípio da Resolução, que pode ser aplicado a qualquer conjunto S de cláusulas (não necessariamente instâncias básicas) para testar se S é insatisfatível.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.