Interpretação do Teorema de Herbrand

Propaganda
Basicamente, o Teorema de Herbrand fornece a
base teórica para as técnicas de prova
automática de teoremas na lógica de primeira
ordem.
Encontrar um procedimento geral de decisão para verificar a
validade (ou inconsistência) de uma fórmula estava sendo
usado há muito tempo. A primeira tentativa foi feita por Leibniz
(1646-1716), novamente por Peano na virada do século e pela
escola de Hilbert na década de 20. Aconteceu até que Church
[1936] e Turing[1936] provassem que isso era impossível.
Church e Turing independentemente mostraram que não
existe um procedimento geral de decisão para verificar a
validade de fórmulas da lógica de primeira ordem.
No entanto, existem métodos de prova que podem verificar se
uma fórmula é válida se realmente ela for válida. Para fórmulas
inválidas, esses procedimentos em geral nunca terminarão. Na
visão do resultado de Church e Turing, isso é o melhor que se
pode ter para se obter um método de prova.
Uma abordagem muito importante para a prova mecânica de
teoremas foi dada por Herbrand em 1930. Por definição, uma
fórmula válida é uma fórmula que é verdadeira sob todas as
suas interpretações. Herbrand desenvolveu um algoritmo para
encontrar uma interpretação que pode invalidar uma fórmula
dada. No entanto, se uma certa fórmula é realmente válida,
nenhuma dessas interpretações podem existir e seu 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.
Gilmore [1960] foi uma das primeiras pessoas a implementar
o método de Herbrand em um computador. Desde que uma
fórmula é válida se e somente se sua negação for
inconsistente, seu programa foi feito para encontrar a
inconsistência da negação de uma fórmula dada. Durante a
execução do programa, são geradas fórmulas proposicionais
que são testadas sobre sua inconsistência.
Se a negação de uma certa fórmula é inconsistente, o
programa detecta esta situação. O programa de Gilmore foi
usado para provar fórmulas bem simples, porém encontrou
sérias dificuldades com muitas outras fórmulas da lógica de
primeira ordem. Estudos minuciosos de seu algoritmo
revelaram que seu método de testar a inconsistência de uma
fórmula proposicional era ineficiente.
O método de Gilmore foi melhorado por Davis e Putnam
[1960], meses depois de seu resultado ser publicado.
Entretanto, tal melhoria não foi suficiente. Muitas fórmula
válidas da lógica de primeira ordem não poderiam ser
provadas pelos computadores em um tempo razoável.
A maior modificação foi feita por Robinson [1965], que
introduziu o tão famoso princípio de resolução. O método de
Resolução é muito mais eficiente que os anteriores. Desde o
início do princípio de resolução, muitas melhorias foram
sugeridas para aumentar sua eficiência.
Definição 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
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 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 1.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 1.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:

{g(a)}
{q(a),m(a)}
{p(a),q(a),g(a)}
{p(a)}
{p(a),q(a)}
{q(a),g(a)}
{p(a),m(a),g(a)}
{q(a)}
{p(a),m(a)}
{m(a),g(a)}
{q(a),m(a),g(a)}
{m(a)}
{p(a),g(a)}
{p(a),q(a),m(a)}
{p(a),q(a),m(a),g(a)}
As interpretações que são Modelos estão em negrito.
Exemplo 1.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.
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.
Conclusão
Um dos aspectos mais importantes da Interpretaçã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 substituindo 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 é consequê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 consequência lógica de S. Neste caso a
busca irá eventualmente terminar com sucesso, i.e,
uma contradição será encontrada.
2. G não é uma consequência lógica de S. Existem
dois possíveis subcasos a serem considerados:
2.1 Todas as possíveis instâncias foram geradas sem
que tenha sido encontrada uma contradição. Neste
caso G não é uma consequê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 consequência
lógica de S.
Composição
André Cardoso
Cleiton Fernando
Filipe Albuquerque
José Neto
Silas Almeida
Download