900 likes | 1.13k Views
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.
E N D
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.
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
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 ab|=| (ab) ^ (ba) ab|=| ~ab
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 ~(ab) |=| ~a ^ ~b ~x(a)|=| x(~a) ~x(a) |=| x(~a)
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(ab) |=| Qx(a) b Qx(a ^ b) |=| Qx(a) ^ b x(a) ^ x(b) |=| x(a ^ b) x(a) x (b) |=| x(ab) x(a) x(b) |=| xz(ab) x(a) ^ x (b) |=| xz(a ^ b)
Transformação de Fórmulas para a Forma Normal Prenex • Exemplo: x(P(x)) x(Q(x)) ~x(P(x)) vx(Q(x)) x(~P(x)) v x(Q(x)) x(~P(x) v Q(x))
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))
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)) vu(Q(x,y,u) ) x y(z~(P(x,z) ^P(y,z)) vu(Q(x,y,u) ) x y(z (~P(x,z) v ~P(y,z)) vu(Q(x,y,u)) x yz u(~P(x,z) v ~P(y,z) v (Q(x,y,u))
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)))
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:
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:
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 ...
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.
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).
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)))
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
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
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”
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))))
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.
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).
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)
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)}
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.
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
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. 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)) }
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)) }
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
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.
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)
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
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).
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))), ... }
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
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.
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))),...}
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)
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
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)
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 ...
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 ...
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))}
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.
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∞ ={ .... }
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.
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.