1 teorema de herbrand. 2 equivalências de 1 a ordem as “leis” da lógica proposicional e as...
Post on 07-Apr-2016
227 Views
Preview:
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
A B
x( ) x() x não ocorre em
x( ^ ) x() ^ “
x( ) x() “
x( ^ ) x() ^ “
4
Equivalências de 1a Ordem
A B
~x() x(~)
~x(~) x()
~x() x(~)
~x(~) x()
5
Equivalências de 1a Ordem
A Bx() ^ x() x( ^ )
x() x () x( )
x() x() xz( ) z não ocorre em
x() ^ x () xz( ^ ) “
6
Def. 1 Uma fórmula é dita estar na forma normal prenex se e somente se é 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
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
~(~) |=| |=| ( ) ^ ( ) |=| ~
8
Passo 2: usar repetidamente as “leis” abaixo para interiorizar a negação
~( ^ ) |=| ~ ~ ~( ) |=| ~ ^ ~ ~x() |=| x(~) ~x() |=| x(~)
Procedimento de Transformação de Fórmulas para a Forma Normal Prenex
9
Passo 3: usar as “leis” abaixo para mover os quantificadores para a esquerda e obter a forma normal prenex:
Qx( ) |=| Qx() Qx( ^ ) |=| Qx() ^ x() ^ x() |=| x( ^ )x() x () |=| x( )x() x() |=| xz( )x() ^ x () |=| xz( ^ )
Procedimento de Transformação de Fórmulas para a Forma Normal Prenex
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 uma fórmula na forma normal prenex Q1x1, ..., Qnxn(M), onde M está na forma normal conjuntivae Qr um quantificador existencial no prefixo de 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
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
18
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().
Procedimento de Eliminação de Quantificadores Existenciais
19
Exemplo: obter skolem() = xyzu(P(x, y, z, u))
1. 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
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 um fórmula de 1a
ordem. Então, é insatisfatível se e somente se skolem() é 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 = x(P(x)). então, skolem() = P(a)
Seja I a seguinte interpretação :D = {1, 2}aI = 1PI(1) = FPI(2) = V
Então, I satisfaz , mas não satisfaz skolem().
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. 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
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)
Exemplo: Fazer a representação clausal de um estado do “Dicionário”
FATOS
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 HerbrandDef.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 Herbrandcontinuaçã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) = Vcontinua ...
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) = FQ(a, a) = Q(2, 2) = TP( f(a, a)) = P( f(2, 2)) = P(1) = TQ(a, f(a, a)) = Q(2, f(2, 2)) = Q(2, 1) = FQ( f(a, a), a) = Q( f(2,2), 2) = Q(1, 2) = TQ( 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 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ânticasDef.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.... 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 é MortalSócrates é um HomemLogo, Sócrates é Mortal
74
Árvores Semânticas Exercício 4: Repita o exercício anterior
considerando o argumento:
Todo Homem é MortalO pai de Sócrates é um HomemLogo, 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: — se e somente se |=
(ii) Sistemas por Refutação (contradição): nega-se a fórmula meta e converte-se o conjunto { ~} para um conjunto de cláusulas S. Procura-se então verificar se S é insatisfatível. Justificativa: Se | S então |=
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.
top related