A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teorema de Herbrand.

Apresentações semelhantes


Apresentação em tema: "Teorema de Herbrand."— Transcrição da apresentação:

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) xz(a  b) z não ocorre em a x(a) ^ x (b) xz(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) |=| xz(a  b) x(a) ^ x (b) |=| xz(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)) xyz (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 yz 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” xy(C(x, y)  (z(P(x, z)) ^ w(P(y, w)))) xy(~C(x, y) v (z(P(x, z)) ^ w(P(y, w)))) xyzw(~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 = xyzu(P(x, y, z, u)) x não é precedido de quantificador universal, então: yzu(P(a, y, z, u)) 2. u é precedido por yz, então: yz (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” xy(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” xy(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()  = (xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) v R(x,y,z)) ^ (Q(x,z) v R(x,y,z))) xz((~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. xy (~P(x)  ((~P(y)  P(f(x, y)) ) ^ (Q(x, g(x)) ^ ~P(g(x)) ))) 7. xy((~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 xyz((depende(x, z) & depende(z, y))  depende(x, y)) xyz(~(depende(x, z) & depende(z, y))v depende(x, y)) xyz((~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.


Carregar ppt "Teorema de Herbrand."

Apresentações semelhantes


Anúncios Google