Skolemização O método da resolução na Lógica de Predicados é definido a partir de fórmulas que estão na forma prenex e que não contêm quantificadores existenciais. Dada uma fórmula qualquer, que contém quantificadores universais e existenciais, deve-se inicialmente eliminar os quantificadores existenciais para que a fórmula possa ser utilizada na resolução. A skolemização é um método de eliminação de quantificadores existenciais. Portanto, substitui-se a variável existencial x por uma constante a, u por uma função de 2 variáveis f(y,z), e w por uma função de três parâmetros g(y, z, v). Então, obtém-se a seguinte forma padrão da fórmula: ∀y∀z∀v(P(a, y, z, f(y,z), v, g(y, z, v)) Exemplo 2: Obter a forma padrão da fómula: ∀x∃y∃z((∼P(x,y) ∧ Q(x,z)) ∨ R(x,y,z)). Primeiro, a matriz é transformada em uma forma normal conjuntiva: ∀x∃y∃z(( ∼P(x, y) ∨ R(x, y, z)) ∧ (Q(x, z) ∨ R(x, y, z))). Seja uma fórmula α já na forma normal prenex (Q1x1) ... (Qnxn)M, onde M está expressa na forma normal conjuntiva. Então, desde que (∃y) e (∃z) são ambas precedidas por (∀x), as variáveis existenciais y e z são substituídas, respectivamente, por funções de uma variável f(x) e g(x). Então, pode-se obter a seguinte forma padrão para a fórmula: Suponha-se que Qr é um quantificador existencial no prefixo (Q1x1) ... (Qnxn), 1 ≤ r ≤ n . ∀x(( ∼P(x, f(x)) ∨ R(x, f(x), g(x))) ∧ (Q(x, g(x)) ∨ R(x, f(x), g(x)))) Se nenhum quantificador universal aparece antes de Qr, pode-se escolher uma nova constante c diferente das outras constantes que aparecem em M, substituir todos os xr de M por c, e eliminar (Qrxr) do prefixo. Se Qs1, ..., Qsm são todos quantificadores universais que aparecem antes de Qr, 1 ≤ s1 < s2 ... < sm < r, pode-se escolher um novo símbolo f m-ário diferente dos outros símbolos da função, substituir todos os xr em M por f(s1, s2, ..., sm), e eliminar (Qrxr) do prefixo. Após o processo anterior ser aplicado para todos os quantificadores existenciais no prefixo, a fórmula final obtida é uma “forma padrão skolem” (ou somente forma padrão) da fórmula α, denotada skolem(α). As constantes e funções usadas para substituir os quantificadores existenciais são chamados de funções skolem. Exemplo 1: Obter a forma padrão skolem da fómula: ∃x∀y∀z∃u∀v∃w(P(x, y, z, u, v, w)) Na fórmula acima, (∃x) não é precedido por nenhum quantificador universal, (∃u) é precedido por (∀y) e (∀z), e (∃w) por (∀y), (∀z) e (∀v). Definição: Uma cláusula é uma disjunção de literais. Ex: P(x) ∨ Q(a) ∨ ∼R(y) Quando for conveniente, pode-se ver um conjunto de literais como um sinônimo de uma cláusula. Por exemplo, (P ∨ Q) ∧ ∼R = { P ∨ Q, ∼R}. Uma cláusula composta de r literais é chamada uma cláusula r-literal. Uma cláusula 1-literal é chamada uma cláusula unitária. Quando uma cláusula não contém literais, pode-se chamar de cláusula vazia. Desde que uma cláusula vazia não possui literais, os quais podem ser satisfeitas por uma interpretação, uma cláusula vazia é sempre falsa. Normalmente, representa-se cláusulas vazias pelo símbolo As disjunções ∼P(x, f(x)) ∨ R(x, f(x), g(x)) e Q(x, g(x)) na forma padrão no Exemplo 2 são cláusulas. ∨ . R(x, f(x), g(x)) Um conjunto S de cláusulas é considerado como uma conjunção de todas as cláusulas em S, onde toda variável em S é considerada regida por um quantificador universal. Por convenção, uma forma padrão pode ser simplesmente representada por um conjunto de cláusulas. Por exemplo, a forma padrão do exemplo 2 pode ser representada pelo conjunto: { ∼P(x, f(x)) ∨ R(x, f(x), g(x)), Q(x, g(x)) ∨ R(x, f(x), g(x)) } Procedimento de Transformação de Fórmulas em Cláusulas 1. Eliminar ↔ usando a “lei” α ↔ β |=| (α → β) ∧ (β → α) 2. Eliminar → usando a “lei” α → β |=| ∼α ∨ β 3. Reduzir escopo de ∼ usando a “lei” de De Morgan e outras “leis” Teorema 1: Seja α um fórmula da Lógica de Predicados. Então, α é insatisfatível se e somente se skolem(α) é insatisfatível. 4. Renomear variáveis Este teorema é equivalente ao teorema abaixo. 6. Converter para a forma normal prenex Teorema 2: Seja S um conjunto de cláusulas que representa uma forma padrão de uma fórmula α. Então α é insatisfatível se e somente se S é insatisfatível. 7. Converter matriz para a forma normal conjuntiva Obs.: Enquanto as outras formas normais apresentadas preservam os modelos das fórmulas originais (são tautologicamente equivalentes), a forma normal de skolem apenas preserva a condição de insatisfatibilidade da fórmula original. Exemplo 4: Transformar a fórmula abaixo numa representação clausal: Exemplo 3: Seja α = ∃x(P(x)). Então, skolem(α) = P(a), onde a é uma nova constante introduzida no processo. Seja I definida abaixo uma interpretação para o conjunto {∃x(P(x)), P(a)}: D = {1, 2} aI = 1 PI(1) = F PI(2) = V Então, I satisfaz α, mas não satisfaz skolem(α). 5. Skolemizar 8. Eliminar quantificadores universais 9. Eliminar ∧ e obter conjunto de cláusulas ∀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. ∀x∀y (~P(x) ∨ ((~P(y) ∨ P(f(x, y))) ∧ (Q(x, g(x)) ∧ ~P(g(x))))) 7. ∀x∀y((~P(x) ~P(g(x)))) ∨ ~P(y) ∨ P(f(x, y))) ∧ (~P(x) ∨ Q(x, g(x))) ∧ (~P(x) 8. { ~P(x) ∨ ~P(y) ∨ P(f(x, y)), ~P(x) ∨ Q(x, g(x)), ~P(x) ∨ ~P(g(x)) } O conjunto de cláusulas pode ser representado na forma: 1. ~P(x) ∨ ~P(y) ∨ P(f(x, y)) 2. ~P(x) ∨ Q(x, g(x)) 3. ~P(x) ∨ ~P(g(x)) ∨