1 / 89

Teorema de Herbrand

Teorema de Herbrand. Equivalências de 1 a Ordem. As “leis” da Lógica Proposicional e as apresentadas a seguir permitem simplificar fórmulas da Lógica de 1a Ordem. Equivalências de 1 a Ordem. Equivalências de 1 a Ordem.

alanna
Download Presentation

Teorema de Herbrand

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  4. Equivalências de 1a Ordem

  5. Equivalências de 1a Ordem

  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 osquantificadores 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)))) 1. x(~P(x)  (y(~P(y)  P(f(x, y))) ^ ~y(~Q(x, y)  P(y)))) 2. x(~P(x)  (y(~P(y)  P(f(x, y))) ^ y(~(~Q(x, y)  P(y)))) 3. 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.

More Related