40
Lógica de Predicados Teorema de Herbrand e Unificação

Lógica de Predicados Teorema de Herbrand e Unificação

Embed Size (px)

Citation preview

Page 1: Lógica de Predicados Teorema de Herbrand e Unificação

Lógica de Predicados

Teorema de Herbrand e Unificação

Page 2: Lógica de Predicados Teorema de Herbrand e Unificação

Desejo antigo...

Encontrar um procedimento geral de decisão para verificar a validade (ou inconsistência) de uma fórmula Leibniz (1700s) Peano (1700s-1800s) Hilbert na década de 20

Page 3: Lógica de Predicados Teorema de Herbrand e Unificação

Church e Turing[1936] -> impossível!! Não existe um procedimento de

decisão para verificar a validade/invalidade de fórmulas da lógica de predicados

Mas existem métodos de prova que podem verificar se uma fórmula é válida se realmente ela for!

Para fórmulas inválidas, esses procedimentos são indecidíveis

Page 4: Lógica de Predicados Teorema de Herbrand e Unificação

Herbrand (1930) Uma fórmula válida é verdadeira sob todas as

suas interpretações Herbrand desenvolveu um algoritmo para

encontrar uma interpretação que pode invalidar uma fórmula!

No entanto, se ela é válida, nenhuma dessas interpretações pode existir O algoritmo termina após um número finito de

tentativas! O método de Herbrand é a base para muitos

métodos modernos de prova automática

Page 5: Lógica de Predicados Teorema de Herbrand e Unificação

Reduzindo o problema Um conjunto S de cláusulas é

insatisfatível em LP sse for falso sob todas as interpretações sobre todos os domínios

... é inconveniente e impossível considerar todas as interpretações sobre todos os domínios

Mas, para provar por refutação, basta achar instâncias complementares de predicados

Page 6: Lógica de Predicados Teorema de Herbrand e Unificação

Universo de Herbrand de um Conjunto de Cláusulas (H)

Ho é o conjunto de constantes que aparecem em S Se nenhuma constante aparece em S

então Ho é formado por uma única constante, Ho={a}

Se f é um símbolo funcional n-ário ocorrendo em S, e

se t1, ...,tn são termos que pertencem a H, então o termo f(t1, ...,tn) também pertence a H

Page 7: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplos de universos de Herbrand S = {P(x) Q(x), P(x)} H0 = H = {a}

S = {P(a), P(x) P(f(x))} H0 = {a} H1 = {a, f(a)} H2 = {a, f(a), f(f(a))} ... H = H = {a, f(a), f(f(a)), f(f(f(a))), ... }

Page 8: Lógica de Predicados Teorema de Herbrand e Unificação

Base de Herbrand Um termo-base é um elemento de H Uma cláusula-base é um predicado sobre

H Uma base de Herbrand para S é o

conjunto B(S) de todas as fórmulas atômicas da forma P(t1, ...,tn) P é um símbolo predicativo ocorrendo em S t1, ...,tn termos-base

Exemplo: S = {P(x) Q(x), R(f(y))} H = {a, f(a), f(f(a)), ... } B(S) = {P(a), Q(a), R(a), P(f(a)), Q(f(a)),

R(f(a)), ...}

Page 9: Lógica de Predicados Teorema de Herbrand e Unificação

Interpretação de Herbrand Uma interpretação I para S é uma

interpretação de Herbrand para S sse o domínio U de I é H para cada constante a de S, aI = a para cada função f de S, fI(t1, ...,tn) =

f(t1, ...,tn), para cada t1, ...,tn H(S)

para cada predicado p de S, pI tem uma valoração (T ou F)

Também chamada de H-interpretação Podem ser infinitas e de tamanho

infinito Porém são contáveis (ordenáveis)

Page 10: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplos de H-interpretações S = {P(x) Q(x), R(f(y))} H = {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)),...}

I1 e I2 satisfazem S

Page 11: Lógica de Predicados Teorema de Herbrand e Unificação

Teorema de Herbrand Um conjunto de cláusulas é insatisfatível

sse há um conjunto finito insatisfatível de instâncias-base de cláusulas de S

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 S for insatisfatível ...mas poderá não existir em caso contrário.

Page 12: Lógica de Predicados Teorema de Herbrand e Unificação

Fecho de resolução Se S’ é este conjunto finito

insatisfatível O fecho de resolução de S’ (T) é S’

mais o conjunto das cláusulas deriváveis de S’ recursivamente

O fecho é finito, obviamente! Ex: S’={P(a),P(a)Q(a),Q(a)false} T={P(a),P(a)Q(a),Q(a)false, Q(a),

P(a)false, false}

Page 13: Lógica de Predicados Teorema de Herbrand e Unificação

Teorema de resolução da base

Se um conjunto de cláusulas-base S’ (i.e. instanciadas em H) é insatisfatível, então seu fecho de resolução contém false.

Em outras palavras, existe uma expansão por resolução para esse conjunto!

Prova por negação: se ele não tiver false, ele é satisfatível!

Ok, S’ é insatisfatível, e como provar que S também é? Lema do Levantamento (fim)

Page 14: Lógica de Predicados Teorema de Herbrand e Unificação

Método de Herbrand 1. Dado um conjunto S de cláusulas,

gere todos os conjuntos finitos S0, S1, ..., Sn, ... de instâncias-base

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

Page 15: Lógica de Predicados Teorema de Herbrand e Unificação

Decidibilidade Esse procedimento:

sempre pára com SIM quando S for 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 Procedimento de decisão parcial para o problema

da insatisfatibilidade de conjunto de cláusulas Procedimento de decisão para o problema da

insatisfatibilidade de conjunto de cláusulas cujo conjunto de instâncias básicas é finito

Page 16: Lógica de Predicados Teorema de Herbrand e Unificação

Árvores semânticas Mostra as interpretações de S Encontrar uma prova para um conjunto

de cláusulas S é, a partir de ~S gerar uma árvore semântica fechada!

Árvores semânticas completas contém todas as possibilidades

Em LPO, as árvores são infinitas... Mas, se S é insatisfatível, uma árvore

semântica sobre H é fechada e finita!

Page 17: Lógica de Predicados Teorema de Herbrand e Unificação

Árvore semântica completa

S = {P(x), P(a)} B = {P(a)}

P(a) P(a)

Page 18: Lógica de Predicados Teorema de Herbrand e Unificação

Árvore semântica infinita S = {P(x), Q(f(x))} B = {P(a), Q(a), P(f(a)), Q(f(a)),

P(f(f(a))),...}.

Page 19: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplos de árvores completas proposicionais

Page 20: Lógica de Predicados Teorema de Herbrand e Unificação

Nós de falha S = {P, Q v R, P v Q, P v R} B = {P, Q, R}.

Page 21: Lógica de Predicados Teorema de Herbrand e Unificação

Árvore semântica fechada S = {P(x),

P(x) v Q(f(x)), Q(f(a))}

B = {P(a), Q(a), P(f(a)), Q(f(a)), ...}

Page 22: Lógica de Predicados Teorema de Herbrand e Unificação

Implementação de Gilmore (60)

S = {P(a), ~P(x) Q(f(x)), ~Q(f(a))} H0 = {a} Geram-se todos os Si (método multiplicativo)

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)))= F F= F

Page 23: Lógica de Predicados Teorema de Herbrand e Unificação

Avaliação do algoritmo

MUITO INEFICIENTE!!! Ordem de 2n , onde n é o número

de instâncias-base Imagine com 500 instâncias...

Page 24: Lógica de Predicados Teorema de Herbrand e Unificação

Para resolver isso: Unificação Intuição de Herbrand, criação de

Robinson 2 fórmulas são unificáveis sse

existir uma substituição que, se aplicada a ambas, torna-as iguais

Como unificar?? Fazendo substituições inteligentes

de variáveis nas 2 fórmulas Existe bons algoritmos para isso...

Page 25: Lógica de Predicados Teorema de Herbrand e Unificação

Substituição

É um conjunto O={x1<-t1, ..., xn<-tn}

xi é variável, ti termo e xi<>ti xi<>xj, com i<>j Existe substituição vazia ({})

Page 26: Lógica de Predicados Teorema de Herbrand e Unificação

Aplicação de substituição

S é uma expressão e O uma substituição O={x1<-t1, ..., xn<-tn}

A aplicação de O em S (dita SO) é o conjunto obtido de S substituindo simultaneamente: Todas as ocorrências xi por ti

Se O={}, SO=S

Page 27: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplo C1 = {p(y1), q(y1,z,x)} C2 = {p(x), q(w), r(w,y1,z,x,z)} O = {y1w, wg(a,z,x), xw}

A aplicação de O em C1 e C2 é C1O= {p(w), q(w,z,w)} C2O = {p(w), q(g(a,z,x)), r(g(a,z,x),w,z,w,z)}

C1 e C2 não tinham literais complementares... Mas C1O e C2O têm!

Page 28: Lógica de Predicados Teorema de Herbrand e Unificação

Composição de substituições

Dadas 2 substituições O1 e O2 A composição O1O2 deve manter a

propriedade S(O1O2) = (SO1)O2 S é um conjunto de expressões

O1={xy}, O2={yb}, S={p(x,y)} S(O1)O2 = (p(x,y){xy})

{yb}=p(b,b) S(O1O2) = p(x,y){xy,yb}=p(y,b)!!

Page 29: Lógica de Predicados Teorema de Herbrand e Unificação

Como resolver??

Antes de substituir {x<-y} e {y<-b} Aplicar {y<-b} nos termos y que ocorre

em O1 ({x<-y}) O1O2={x<-y{y<-b},y<-b}={x<-b,y<-

b}

O3= {x<-w} e O4= {w<-x} O3O4=???

Page 30: Lógica de Predicados Teorema de Herbrand e Unificação

Gerando complementares

C1={p(x)} e C2={p(a)} não possuem literais complementares

Com O1={xa} C1O1={p(a)} e C2O2={p(a)} com

literais complementares C3={p(f(x),y,x)} e

C4={p(z,g(z),a)} O2=?? | C3O2=C4O2

Page 31: Lógica de Predicados Teorema de Herbrand e Unificação

Expressões unificáveis Um conjunto de expressões é unificável

se existir uma substituição O que faça SO=1 O é unificador de S

Ex: S={p(x,y),p(w,x)} O1={xw, yx} é unificador de S O2={xa, ya, wa} também O1 é mais geral que O2

O2, usando a, é mais específica O2 pode ser obtida de O1 O2=O1{wa,xa}

Page 32: Lógica de Predicados Teorema de Herbrand e Unificação

Unificador mais geral Se O é unificador de S, ele é o mais

geral se para qualquer unificador Oi Exista uma substituição F | Oi=OF Pode ter mais de um...

O1={xw,yg(f(w)),zf(w)} unifica S={p(f(x),y,x),p(z,g(z),w)}

O2={xa,wa,yg(f(a)),zf(a)} tb! O1 é mais geral pois O2=O1{wa}

Page 33: Lógica de Predicados Teorema de Herbrand e Unificação

Conjunto de diferenças Dado S={A1,...An}, um conjunto de

expressões, o conjunto de diferenças é achado pelo algoritmo

1-Pegue o primeiro símbolo de cada expressão Ai

2-Se todos os símbolos coincidem, passe para o próximo símbolo Senão o conjunto de diferenças é

D={E1,...,En} D pode ser vazio

Page 34: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplo de conjunto de diferenças

S={p(f(x),y,x),p(z,g(z),a)} D1={f(x),z} D2=...

Page 35: Lógica de Predicados Teorema de Herbrand e Unificação

Unificação Dado um conjunto de expressões S, se S é

unificável, acha-se um Unificador mais geral (ou indica-se a impossibilidade) fazendo:

1- k=0, O0={} 2-Se SOk=1, Ok é este unificador

Senão ache o conjunto de diferenças Dk de SOk 3-Se existe uma variável x e um termo t em

Dk de forma que x não ocorra em t, então faça Ok+1=Ok{xt} e incremente k Se não existir, S não é unificável

Page 36: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplo de unificação S={p(f(x),y,x), p(z,g(z),w)} k=0, O0={}, SO0=S <>1, D0={f(x),z} z não ocorre em f(x), O1=O0{zf(x)} k=1, O1={}{zf(x)}={zf(x)} SO1={p(f(x),y,x), p(f(x), g(f(x)),w)} SO1<>1, D1={y,g(f(x))} y não ocorre em g(f(x)) O2={zf(x)}{yg(f(x))}

={zf(x),yg(f(x))}, k=2 SO2={p(f(x),g(f(x)),x), p(f(x), g(f(x)),w)} <> 1 D2={x,w} x não ocorre em w, O3={zf(x)}{yg(f(x))}

{xw} O3={zf(w)}{yg(f(w)),xw}, k=3 SO3={p(f(w), g(f(w)),w)} = 1 O3 é o unificador mais geral

Page 37: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplo não-unificável

S={p(f(x)),p(x)} D0={f(x),x} e x ocorre em f(x) Se continuamos ??

Prolog normalmente não testa a ocorrência, para dar mais eficiência, mas...

Page 38: Lógica de Predicados Teorema de Herbrand e Unificação

Lema do levantamento

Se C1 e C2 não têm as mesmas variáveis e

C1’ e C2’ são instâncias-base de C1 e C2 e

C’ é resolvente de C1’ e C2’ Então existe um resolvente C de C1 e C2 e C’ é uma instância de C

Prova: voltar com substituições

Page 39: Lógica de Predicados Teorema de Herbrand e Unificação

Exemplo do lema C1=P(x,F(x,a))^Q(x,a)R(x,b) C2=N(G(y),z)P(H(y),z) C1’=P(H(b),F(H(b),a))^Q(H(b),a)R(H(b),b) C2’=N(G(b),F(H(b),a))P(H(b),F(H(b),a)) C’=N(G(b),F(H(b),a))^Q(H(b),a)R(H(b),b) C=N(G(y),F(H(y),a))^Q(H(y),a)R(H(y),b)

Page 40: Lógica de Predicados Teorema de Herbrand e Unificação

Cenas dos próximos capítulos

Agora que temos a unificação, a resolução

terá um passo só...