Teorema de Herbrand

Propaganda
Lógica de Predicados
Teorema de Herbrand
Biografia
• Jacques
Herbrand
(Paris,
12
de
Fevereiro de 1908 — Oisans, 27 de Julho de
1931) foi um matemático francês.
• Trabalhou em lógica matemática e teoria dos
corpos de classes.
• Herbrand terminou seu doutorado na École
Normale Supérieure em Paris no ano de 1929,
com apenas 21 anos.
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
Church e Turing[1936] -> impossível!!
• Não existe um procedimento de decisão para
verificar a validade 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 
Satisfatível X Insatisfatível
• Na lógica matemática, satisfatibilidade e validade são
conceitos elementares da semântica. Uma fórmula é
satisfatível se é possível achar uma interpretação
(modelo) que torne a fórmula verdadeira. Uma
fórmula é válida se todas as interpretações tornam a
fómula verdadeira.
• Os opostos deste conceito são insatisfatibilidade e
invalidade, isto é, uma fórmula é insatisfatível se
nenhuma das interpretações tornam a fórmula
verdadeira, e inválida se alguma dessas interpretações
tornam a fórmula falsa.
Herbrand
• 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
Reduzindo o problema
• Um conjunto S de cláusulas é insatisfatível sse for
falso sob todas as interpretações sobre todos os
domínios
• Mas... é inconveniente e impossível considerar
todas as interpretações sobre todos os domínios
• Idéia: usar um domínio especial H, tal que S é
insatisfatível se e somente se S é falso sob todas
as interpretações sobre H
– H é o universo de Herbrand de S
Universo de Herbrand de um Conjunto
de Cláusulas (H)
• Se 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
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))), ... }
Base de Herbrand
• Um termo-base é um elemento de 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)), ...}
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)
• Também chamada de H-interpretaçã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)),...}
H-interpretação correspondente
• Dada uma interpretação I, uma H-interpretação I*
correspondente a I é uma H-interpretação em que
–
–
–
–
Sendo h1, ..., hn elementos de H (o universo Herbrand de S)
Sendo cada hi mapeado para alguma variável di
Se é atribuído a P(d1, ... , dn) V(F) por I,
então para P(h1, ... , hn) também é atribuído V(F) em I*
• Se uma interpretação I sobre algum domínio D satisfaz
um conjunto de cláusulas S, então qualquer Hinterpretação I* correspondente a I também satisfaz S
• Exs: I1 e I2
Árvores semânticas
• Encontrar uma prova para um conjunto de
cláusulas 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!
Árvore semântica
• S = {P(x), Q(f(x))}
• B = {P(a), Q(a), P(f(a)), Q(f(a)), P(f(f(a))),...}.
Exemplos de árvores semânticas
completas
Nós de falha
• S = {P, Q v R, P v Q, P v R}
• B = {P, Q, R}.
Á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)), ...}
Teorema de Herbrand
• Um conjunto de cláusulas é insatisfatível se 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.
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.
Decidibilidade
• Esse procedimento:
– sempre para com SIM quando S for insatisfatível.
– nunca para quando S for satisfatível e existir um conjunto
infinito de instâncias básicas de cláusulas de S.
– sempre para 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.
Teorema de Herbrand
O teorema de Herbrand é muito importante na lógica
simbólica; ele é a base para a maioria dos
procedimentos atuais para prova automática de
teoremas.
Dessa forma, para testar se um conjunto S de cláusulas é
insatisfatível,
precisa-se
considerar
somente
interpretações sobre o universo Herbrand de S. Se S é
falso sob todas as interpretações do universo Herbrand
de S, então pode-se concluir que S é insatisfatível.
Teorema de Herbrand
Uma vez que geralmente existem muitas,
possivelmente um número infinito, dessas
interpretações, há necessidade de organizá-las de
alguma forma sistemática. Isto pode ser feito usando
uma árvore semântica. Serão dadas duas versões do
Teorema de Herbrand.
Exemplo do Teorema de Herbrand
Teorema Herbrand, versão I - Um conjunto S de cláusulas é
insatisfatível se e somente se correspondendo a toda árvore
semântica completa de S, há uma árvore semântica fechada finita.
Prova: (IDASuponha S ser insatisfatível. Seja T uma árvore
semântica completa para S. Para cada ramo B de T, seja IB um
conjunto de todos os literais ligados a todos os nós do ramo B. Então
IB é uma interpretação para S. Desde que S seja insatisfatória, IB
precisa falsificar uma instância base C' de uma cláusula C em S.
Contudo, desde que C' é finito, deve haver um nó falha NB (que está
a um número finito de ligações do nó raiz) no ramo B. Uma vez que
todo ramo de T tem um nó falha, há uma árvore semântica fechada
T' para S. Além disso, uma vez que somente um número finito de
ligações estão conectadas em cada nó de T', T' precisa ser finito (isto
é, o número de nós em T' é finito), de outra maneira, pelo Lema de
Konig, pode-se encontrar um ramo infinito contendo nenhum nó
falha. Dessa forma, completa-se a primeira metade do teorema.
Exemplo do Teorema de Herbrand
(VOLTA) De modo inverso se, correspondendo a toda
árvore semântica completa T para S, há uma árvore
finita semântica fechada, então cada ramo de T
contém um nó falha. Isto significa que toda
interpretação falsifica S. Conseqüentemente S é
insatisfatível. Isto completa a prova da segunda parte
do teorema.
Exemplo do Teorema de Herbrand
Teorema de Herbrand, Versão II - Um conjunto de
cláusulas é insatisfatível se e somente se há um
conjunto finito insatisfatível S' de instâncias base de
cláusulas de S.
Prova: (IDA Suponha S ser insatisfatível. Seja T uma
árvore semântica completa para S. Então, pelo teorema
de Herbrand (Versão I), há uma árvore semântica
fechada finita T' correspondendo a T. Seja S' um
conjunto de todas as instâncias base das cláusulas que
estão falsificadas em todos os nós falha de T'. S' é finito
desde que haja um número finito de nós falhos em T'.
Uma vez que S' é falso em toda interpretação de S', S' é
insatisfatível.
Exemplo do Teorema de Herbrand
(VOLTA) Suponha que há um conjunto finito
insatisfatível S' de instâncias base das cláusulas em S.
Desde que cada interpretação I de S contém uma
interpretação I' de S', se I' falsifica S', então I deve
também falsificar S'. Entretanto, S' é falsificado por
toda a interpretação I'. Conseqüentemente, S' é
falsificado por toda interpretação I de S. Portanto, S é
falsificado por toda interpretação de S. Então, S é
insatisfatível.
Download