Teorema de Herbrand Equipe: Eduardo Dantas, Stefhany Oliveira, Raranna Alves e Vagner do Carmo Teorema de Herbrand (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. • O método de Herbrand é um procedimento de refutação. Isto é, ao invés de provar que uma fórmula é válida, prova-se que a negação de uma fórmula é inconsistente. Por definição, um conjunto S de cláusulas é insatisfatível se e somente se ele falso sob todas as interpretações sobre todos os domínios. Uma vez que é inconveniente e impossível considerar todas as interpretações sobre todos os domínios, poderia ser interessante buscar-se um domínio especial H, tal que S é insatisfatível se e somente se S é falso sob todas as interpretações sobre este domínio. Felizmente, existe um domínio, que se chama de universo de Herbrand de S, definido como o seguinte: • Definição: Sendo H0 o conjunto de constantes que aparecem em S. Se nenhuma constante aparece em S, então H0 é formado por uma única constante, representado por H0 = {a}. Para i = 0, 1, 2, ...,Hi+1 é a união de Hi com o conjunto de todos os termos da forma fn(t1, ..., tn) para todas as funções n-arg fn que aparecem em S, onde tj, j = 1, ..., n, são membros do conjunto Hi . Então cada Hi é chamado de conjunto de constantes i-nível de S, e H1 é chamado de Universo de Herbrand de S. • 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 • Se H0 é o conjunto de constantes que aparecem em S. -Se nenhuma constante aparece em S, então H0 é formado por uma única constante, H0={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 • Exemplo 1: Seja S = {P(a), ~P(x) P(f(x))}. Então: H0 = {a} H1 = {a, f(a)} H2 = {a, f(a), f(f(a))} . . . H1 = {a, f(a), f(f(a)), f(f(f(a))), ...}. • Exemplo 2: Seja S = { P(x) q(x), R(z), T(y) ~W(y) }. Uma vez que não existe nenhuma constante em S, H0 = { a }. Não existe nenhum símbolo de função em S , portanto H = H0 = H1= ... = H1 = { a }. Exemplo 3: Seja S = { P( f(x), a, g(y), b) }. Então H0 = { a, b} H1 = { a, b, f(a), f(b), g(a), g(b) } H2 = {a,b,f(a),f(b),g(a), g(b),f(f(a)),f(f(b)),f(g(a)),f(g(b)),g(f(a)),g(f(b)), g(g(a)), g(g(b))} . . . 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) o P é um símbolo predicativo ocorrendo em S o 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 se e somente se: o o domínio U de I é H o para cada constante a de S, aI = a o 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 • Exemplo 4: Considere o conjunto S = { P(x) Q(x), R(f(y)) }. O universo Herbrand H de S é H = { a, f(a), f(f(a)), ... }. • Existem três símbolos de predicados: P, Q e R. Portanto o conjunto de átomos de S é: • A = { P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ... }. • Algumas H-interpretações de S são as seguintes : 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)), ... }. Referências • FREITAS, Frederico Luiz Gonçalves de. Lógica de Predicados. Link: [http://www.cin.ufpe.br/~fred/logicaMuitoBom.doc]