Herbrand - DC

Propaganda
Provando que um Conjunto de Cláusulas é Insatisfatível
1. Introdução
Seja S um dado conjunto de wffs e suponha que G seja uma consequência lógica de S
(ou seja, que G segue logicamente de S).
Da definição de conseqüência lógica, se I é um modelo de S, I é um modelo de G (em
outras palavras, toda interpretação que satisfaz S, satisfaz G também). Nenhum dos
modelos de S pode ser um modelo de G e, portanto, nenhum modelo pode satisfazer
S  {G}. Assim sendo S  {G} deve ser insatisfatível. Portanto, se G é
conseqüência lógica de S, S  {G} é insatisfatível. Sabe-se que
Um conjunto de cláusulas é insatisfatível (ou inconsistente) se e só se for falso sob
todas as interpretações, em todos os domínios.
Uma vez que não é possível considerar todas as interpretações em todos os domínios,
um domínio particular H será definido, tal que S é insatisfatível se e só se S é falso
sob todas as interpretações em H. Este domínio particular é chamado de Universo de
Herbrand de S e as interpretações são chamadas de Interpretações de Herbrand.
2. Universo de Herbrand e Base de Herbrand
Definição 2.1 Seja S um conjunto de cláusulas e H0 o conjunto de constantes que
aparecem em S.


se nenhuma constante aparece em S, então seja H0 = {a}
para i = 0,1,…., seja
Hi+1 = Hi  T
onde T é o conjunto de todos os termos da forma fn(t1,t2,…,tn) para todos
os símbolos funcionais fn ocorrendo em S, onde tj, para j=1,…,n são
elementos de Hi.
Cada Hi é chamado de conjunto constante de nível i de S e H (ou simplesmente H) é
chamado de Universo de Herbrand de S.
Assim, o Universo de Herbrand coincide com o conjunto de termos ground que são
gerados a partir dos símbolos de constantes e dos símbolos funcionais que aparecem
em S. Podem acontecer três situações:
1. Se S contém ambos, constantes e funções (símbolos funcionais), então o
Universo de Herbrand será sempre contavelmente infinito.
2. Se S contém apenas constantes o Universo de herbrand será o conjunto finito
daquelas constantes.
3. Se S não contém constantes, uma constante, por exemplo, a, é escolhida
arbitrariamente. Dependendo da presença ou ausência de símbolos funcionais
em S, o Universo de Herbrand será infinito ou não, respectivamente.
1
Exemplo 2.1 Seja S= {p(X,Y)  q(X,f(X)), p(X,Y)  q(X,g(Y))}
Desde que não existe constante em S, seja então H0 = {a}. Assim
H1 = H0  {f(a),g(a)}
H2 = H1  {f(f(a)),f(g(a)),g(f(a)),g(g(a))}
H3 = H2  {f(f(f(a))), f(f(g(a))), f(g(f(a))), f(g(g(a))), g(f(f(a))), g(f(g(a))),
g(g(f(a))), g(g(g(a)))}
……
H = {a, f(a), g(a), f(f(a)), f(g(a)), g(f(a)), g(g(a)), f(f(f(a))), f(f(g(a))), f(g(f(a))),
f(g(g(a))), g(f(f(a))), g(f(g(a))), g(g(f(a))), g(g(g(a))), …}
Exemplo 2.2 Seja S= {p(X)  q(X), r(Z), s(Y)  t(W)}
Desde que não existe constante em S, seja então H0 = {a}.
Desde que não existe símbolo funcional em S, H0 = H1 = H2 = … = {a}
Exemplo 2.3 Seja S= {p(f(X),g(X),h(Y))  q(X),r(Y)}
Desde que não existe constante em S, seja então H0 = {a}. Assim
H1 = H0  {f(a),g(a),h(a)}
H2 = H1  {f(f(a)), f(g(a)), f(h(a)), g(f(a)), g(g(a)), g(h(a)), h(f(a)), h(g(a)),
h(h(a))}
H3 = H2  { f(f(f(a))), f(f(g(a))), f(f(h(a))), f(g(f(a))), f(g(g(a))), f(g(h(a))),
f(h(f(a))), f(h(g(a))), f(h(h(a))), g(f(f(a))), g(f(g(a))), g(f(h(a))),
g(g(f(a))), g(g(g(a))), g(g(h(a))), g(h(f(a))), g(h(g(a))), g(h(h(a))),
h(f(f(a))), h(f(g(a))), h(f(h(a))), h(g(f(a))), h(g(g(a))), h(g(h(a))),
h(h(f(a))), h(h(g(a))), h(h(h(a)))}
…..
H = {a, f(a), g(a), h(a), f(f(a)), f(g(a)), f(h(a)), g(f(a)), g(g(a)), g(h(a)), h(f(a)),
h(g(a)), h(h(a)), f(f(f(a))), f(f(g(a))), f(f(h(a))), f(g(f(a))), f(g(g(a))),
f(g(h(a))), f(h(f(a))), f(h(g(a))), f(h(h(a))), g(f(f(a))), g(f(g(a))), g(f(h(a))),
g(g(f(a))), g(g(g(a))), g(g(h(a))), g(h(f(a))), g(h(g(a))), g(h(h(a))),
h(f(f(a))), h(f(g(a))), h(f(h(a))), h(g(f(a))), h(g(g(a))), h(g(h(a))), h(h(f(a))),
h(h(g(a))), h(h(h(a))), …}
Exemplo 2.4 Seja S= {p(a,b,f(X),g(Y),c)}
Uma vez que exitem três constantes  a,b e c  em S, então
H0 = {a, b, c}
H1 = H0  {f(a), g(a ), f(b), g(b), f(c), g(c)}
H2 = H1  { f(f(a)), f(g(a)), f(f(b)), f(g(b)), f(f(c)), f(g(c)), g(f(a)), g(g(a)), g(f(b)),
g(g(b)), g(f(c)), g(g(c))}
….
H = {a, b, c, f(a), g(a), f(b), g(b), f(c), g(c), f(f(a)), …}
2
Definição 2.2 Seja S um conjunto de cláusulas e seja H0 o Universo de Herbrand de
S. O conjunto dos átomos ground da forma pn(t1,t2,…,tn) para todos os predicados pn
ocorrendo em S, onde t1, t2, …, tn são elementos do Universo de Herbrand de S, é
chamado de Base de Herbrand, ou conjunto atômico de S e é notado por BS.
Exemplo 2.5 Seja S= {p(X)  q(X), r(f(X))}
Então, BS = {p(a), q(a), r(a), p(f(a)), q(f(a)), r(f(a)),…}
Exemplo 2.6 Seja S= {p(X), p(X)  q(f(X)), q(f(a))}
Então, BS = {p(a), q(a), p(f(a)), q(f(a)), …}
Exemplo 2.7 Seja S= {p(X,a,Y)  p(b,X,Z)  q(Y,Z)}
Desde que S não tem símbolo funcional, o Universo de Herbrand de S é H =
{a,b}. Então,
BS = {p(a,a,a), p(a,a,b), p(a,b,a), p(a,b,b), p(b,a,a), p(b,a,b), p(b,b,a), p(b,b,b),
q(a,a), q(a,), q(b,a), q(b,b)}
Definição 2.3 Uma instância ground de uma clausula C de um conjunto S de
cláusulas é uma cláusula obtida pela substituição das variáveis em C por
elementos do Universo de Herbrand de S.
Exemplo 2.8 Seja
S= {p(X),q(f(Y))  r(Y)}
H = {a, f(a),f(f(a)),….}
A próxima tabela mostra algunas das instâncias ground das duas cláusulas C1 e
C2, de S.
C1: p(X)
p(a)
p(f(a))
p(f(f(a)))
……..
C2: q(f(Y))  r(Y)
q(f(a))  r(a)
q(f(f(a)))  r(f(a))
q(f(f(f(a))))  r(f(f(a)))
…….
Definição 2.4 Seja S um conjunto de cláusulas. Uma instanciação ground de S é
o conjunto de todas as instâncias ground de todas suas cláusulas e é denotada por
GS.
Exemplo 2.9 Seja P o programa Prolog:
f(a,X) :- f(X,b).
f(c,b).
(note que esse programa pode ser reescrito como o conjunto de cláusulas S =
{f(X,b)  f(a,X), f(c,b)}).
3
Considerando que H={a,b,c}, a instanciação ground GP de P é o programa
ground:
f(a,a):- f(a,b).
f(a,b):- f(b,b).
f(a,c):- f(c,b).
f(c,b).
(Note que pode ser rescrito como o conjunto GS = {f(a,b)  f(a,a), f(b,b) 
f(a,b), f(c,b)  f(a,c), f(c,b)}).
Note que GP é essencialmente proposicional.
A seguir será definida uma interpretação especial sobre o Universo de Herbrand
de S, chamada de Interpretação de Herbrand de S.
3. Interpretação de Herbrand e Modelo de Herbrand
Definição 3.1 Seja
S  um conjunto de cláusulas
H  o Universo de Herbrand de S
I  uma interpretação de S sobre H
I é uma Interpretação de Herbrand de S se satisfaz às seguintes condições:
1. I mapeia todas as constantes de S nelas próprias
2. seja f um símbolo funcional n-ário e sejam h1, h2, .., hn elementos de H. Em I, a
f é atribuída uma função que mapeia (h1, h2, .., hn)  um elemento de Hn  a
f(h1,h2,..,hn)  um elemento de H.
Não existe restrição como relação à atribuição a cada símbolo predicado em S, de
maneira que diferentes Interpretações de Herbrand podem existir, dependendo de
tais diferentes atribuições. Desde que para as Interpretações de Herbrand a
atribuição a constantes e símbolos funcionais é fixa, é possível identificar uma
Interpretação de Herbrand com um subconjunto da Base de Herbrand. Assim
sendo, daqui para frente,
Uma Interpretação de Herbrand I de um conjunto de cláusulas S é
qualquer subconjunto de BS, a Base de Herbrand.
entendendo que, sob a interpretação I, a qualquer átomo q em BS é atribuído o
valor verdade true, se q  I, caso contrário é atribuído false. Com o objetivo de
avaliar um dado conjunto de cláusulas com relação a uma dada Interpretação de
Herbrand (I), as seguintes regras devem ser aplicadas:
1. a fórmula atômica ground A é true em I iff A  I
2. uma literal negada ground A é true em I iff A  I
4
3. uma cláusula ground L1  L2 … Ln é true em I iff pelo menos um literal Li é
true em I
4. em geral, uma cláusula C é true em I iff toda instância ground C de C é true
em I (C é obtida substituindo toda ocorrência de uma variável em C por um
termo de H. Ocorrências diferentes da mesma variável são substituídas pelo
mesmo termo).
5. um conjunto de cláusulas S é true em I iff cada cláusula de S é true em I.
Um literal, cláusula ou conjunto de cláusulas é false em I iff não for true.
Uma Interpretação de Herbrand é pois uma livre atribuição de valores verdade
(true ou false) a todos os átomos da BS. Uma tal interpretação deve, portanto,
atribuir também true ou false a todos os átomos em GP; assim, os valores verdades
desses átomos determinam os valores-verdade de todas as cláusulas em GP.
Definição 3.2 Seja
S  um conjunto de cláusulas
H  o Universo de Herbrand de S
I  uma Interpretação de Herbrand de S sobre H
Se S é true em I, então I é um Modelo de Herbrand de S.
Exemplo 3.1 Seja S={p(X)  q(X)} um conjunto de cláusulas.
Desde que S tem BS = {p(a),q(a)}, as possíveis 2|BS| Interpretações de Herbrand de
S são:
I0: 
I1: {p(a)}
I2: {q(a}
I3:{p(a),q(a)}
De acordo com as regras de avaliação mostradas anteriormente, as interpretações
I0, I1 e I3 são Modelos de Herbrand de S e I2 é simplesmente uma Interpretação
de Herbrand de S.
Exemplo 3.2 Seja S={p(X)  q(X), m(Y)  g(a), q(Z)} um conjunto de
cláusulas.
Desde que S tem BS = {p(a),q(a),m(a),g(a)}, as possíveis 2|BS| = 16 Interpretações
de Herbrand de S são:

{p(a)}
{q(a)}
{m(a)}
{g(a)}
{p(a),q(a)}
{p(a),m(a)}
{p(a),g(a)}
{q(a),m(a)}
{q(a),g(a)}
{m(a),g(a)}
{p(a),q(a),m(a)}
{p(a),q(a),g(a)}
{p(a),m(a),g(a)}
{q(a),m(a),g(a)}
{p(a),q(a),m(a),g(a)}
As interpretações que são Modelos estão em negrito.
5
Exemplo 3.3 Considere o conjunto de cláusulas P:
likes(chris,X) if likes(X,logic)
likes(bob, logic)
O Universo de Herbrand de P é o conjunto {chris, bob, logic} e a instanciação
ground de P, ie, GP é:
likes(chris,chris) if likes(chris,logic)
likes(chris,bob) if likes(bob,logic)
likes(chris,logic) if likes(logic,logic)
likes(bob, logic)
que pode ser escrita, para maior facilidade de leitura como:
CC if CL
CB if BL
CL if LL
BL
A Base de Herbrand é BP = {CC,CL,CB,LC,LL,LB,BC,BL,BB}.
O conjunto {BL,CB}  BP é assim uma Interpretação de Herbrand. Para essa
interpretação, GP é reproduzido abaixo, com os valores verdade associados
escritos em lugar de seus átomos:
false if false
true if true
false if false
true
Com essa atribuição, todas as cláusulas de GP são verdade. Esta interpretação é
portanto um Modelo de Herbrand para GP e, portanto, um Modelo de Herbrand de
P.
Proposição 3.1 Seja S um conjunto de cláusulas e suponha que S tenha um
modelo. Então, S tem um Modelo de Herbrand.
Prova: Seja I uma interpretação de S. A Interpretação de Herbrand I' de S pode
ser defininteda como segue:
I'= {p(t1,…,tn) BS | p(t1,…,tn) é true com relação a I}
É direto mostrar que se I é um modelo, I' também é um modelo. Os dois próximos
exemplos mostram a construção de Modelos de Herbrand correspondentes a
modelos.
Exemplo 3.4 Seja S = {p(X)  q(f(X),a)} a forma clausal da fórmula F: X
(p(X)  q(f(X),a)) e seja I o seguinte modelo:
6
a) Domínio: {1,2}
b) atribuição a constante: a é atribuída a 1
c) atribuições a símbolos funcionais:
f(1)
2
f(2)
1
d) atrituição a símbolos predicados:
p(1)
false
p(2)
true
q(1,1)
true
q(1,2)
true
q(2,1)
false
q(2,2)
true
Note que esta interpretação é um modelo desde que {p(1)  q(f(1),1)} e {p(2)
 q(f(2),1)} são ambos verdade.
Para a definição do correspondente Modelo de Herbrand, é necesário:


encontrar a Base de Herbrand BS de S e
avaliar cada elemento de BS, usando a dada interpretação I
a fim de selecionar como elementos do Modelo de Herbrand aqueles elementos de
BS que são avaliados como true, pelo modelo I.
Para o conjunto S considerado,
BS = {p(a), q(a,a), p(f(a)), q(a,f(a)), q(f(a),a), q(f(a),f(a)),…}
e a avaliação de cada elemento de BS usando o dado modelo I é:
p(a)
q(a,a)
p(f(a))
q(a,f(a))
q(a,f(a))
….
=
=
=
=
=
..
p(1)
q(1,1)
p(2)
q(1,2)
q(2,1)
….
=
=
=
=
=
false
true
true
true
false
….
Protanto o Modelo de Herbrand I'correspondente a I é:
I'= {q(a,a), f(p(a)), q(a,f(a)),…}
No caso de não existirem constantes em S, a constante arbitrariamente escolhida
a, que é usada para inicializar o Universo de Herbrand de S, pode ser mapeada em
qualquer elemento do domínio D. Neste caso, quando existe mais do que um
elemento em D, existe mais do que um Modelo de Herbrand correspondentes a I,
como mostra o próximo exemplo.
7
Exemplo 3.5 Seja S = {p(X)  q(f(X),Y)} com a interpretação I como a
mostrada no exemplo anterior, exceto que não existe atribuição a constante. A
Base de Herbrand de S é a mesma do exemplo anterior e a avaliação de cada
elemento de BS usando o dado modelo I é:
para a=1
p(a)
q(a,a)
p(f(a))
….
=
=
=
..
p(1)
q(1,1)
p(2)
….
=
=
=
=
=
=
=
=
..
p(2)
q(2,2)
p(1)
q(2,1)
q(1,2)
….
=
=
=
=
=
false
true
true
….
Portanto, I'= {q(a,a),p(f(a)),…}
para a=2
p(a)
q(a,a)
p(f(a))
q(a,f(a))
q(f(a),a)
….
true
true
false
false
true
….
Portanto, I''= {p(a),q(a,a),q(f(a),a),…}
Para testar se um conjunto S de cláusulas é insatisfatível, é apenas necessário
considerar interpretações sobre o Universo de Herbrand de S. Se S for false sob
todas as interpretações sob o Universo de Herbrand de S, então S é insatisfatível.
Desde que usualmente existem um número infinito dessas interpretações, elas
deve ser organizadas de uma maneira sistemática. isso pode ser feito usando uma
árvore semântica. Existem muitas maneiras de expressar e de especializar o
Teorema de Herbrand. Talvez a especialização do Teorema 4.1 é a mais adequada
ao contexto de programação lógica.
Teorema 4.1 Uma contradição pode ser derivada de um conjunto de cláusulas S
 {G} iff pode ser derivada a partir de algum subconjunto finito de
instanciações ground G(S{G}).
A palavra finito garante a existência de um procedimento efetivo (algoritmo)
através do qual a contradição pode ser demonstrada e, portanto, indiretamente,
mostrado que G é uma conseqüência lógicade S. Em outros trabalhos, este
teorema foi reescrito em termos de insatisfatibilidade ao invés de derivabilidade e
se torna:
Teorema 4.2 Um conjunto de cláusulas S  {G} é insatisfatível iff algum
subconjunto finito de G(S{G}) é insatisfatível.
8
Exemplo 3.6 Seja S = {p(X),p(f(a))}
S é insatisfatível. Portanto, pelo Teorema de Herbrand, existe um conjunto
insatisfatível S' de instaâncias ground de cláusulas em S. Pode ser verificado que
um desses conjuntos é: S'= {p(f(a)),p(f(a))}.
Exemplo 3.7 Seja S = {p(X)  q(f(X),X),p(g(b)),q(Y,Z)}
S é insatisfatível. Um dos conjuntos insatisfatíveis de ground instâncias de
cláusulas em S é:
S'= {p(g(b))  q(f(g(b)),g(b)),p(g(b)),q(f(g(b)),g(b))}
Um dos aspectos mais importantes da Interpertação de Herbrand é que não é mais
necessário considerar o universo de todas possíveis interpretações e usar os
objetos de cada universo de toda a forma possível, dado que as Interpretações de
Herbrand representam todas as outras. Todas as Interpretações de Herbrand
compartilham o mesmo universo  o Universo de Herbrand. Isso significa que é
apenas necessário considerar instâncias obtidas substitituindo variáveis por
elementos do Universo de Herbrand.
Com um pouco de cuidado é possível garantir que nenhuma das possíveis
conjunções de instâncias de cláusulas é omitida no teste. Neste caso, o teste
eventualmente irá descobrir se uma meta G é conseqüência lógica de um conjunto
de cláusulas. Entretanto, a busca por todas as possíveis instâncias pode continuar
para sempre. Os seguintes casos podem acontecer:
1. G é uma conseqüência lógica de S. Neste caso a busca irá eventualmente
terminar com sucesso, ie, uma contradição será encontrada.
2. G não é uma conseqüência lógica de S. Existem dois possíveis subcasos a
serem considerados:
2.1 todas as possíveis instâncias foram gerads sem que tenha sido encontrada
uma contradição. Neste caso G não é uma conseqüência lógica de S.
2.2 instâncias são geradas continuamente e uma contradição nunca é
encontrada. Neste caso não existe certeza com relação a G ser ou não
uma conseqüência lógica de S.
9
Download