Substituição
Uma substituição na lógica de predicados é um conjunto
onde é variável a ser substituída e é o termo que a substitui.
De maneira geral, o processo de substituição consiste em instanciar as variáveis de uma fórmula com base em um conjunto de funções que nos especificam cada variável e seu termo correspondente.
Existem dois tipos especiais de substituições:
- Substituição vazia (): é uma substituição que não contém nenhum elemento.
- Substituição ground: é uma substituição na qual são termos ground, ou seja, termos que não contém variáveis.
É possível ainda compor substituições, ou seja, aplicar duas ou mais substituições em cadeia.
Substituição unificadora
Uma substituição é unificadora de um conjunto de expressões se e somente se:
ou seja, se quando aplicada no conjunto de expressões, a substituição produz uma única expressão comum para todas as expressões do conjunto.
Substituição unificadora mais geral
Uma substituição unificadora do conjunto de expressões é a unificadora mais geral (mgu) se ela é aquela que faz o mínimo possível de substituições para unificar o conjunto.
Conjunto de diferenças
Dado um conjunto finito de expressões, o conjunto de diferenças é dado por todos os símbolos que não coincidem entre as expressões.
Unificação
Dado um conjunto de expressões, e substituições e . Iniciamos com e .
- Se , então terminamos, é uma mgu de . Caso contrário, determinamos o conjunto de diferenças de .
- Se existe uma variável e um termo em tal que não ocorre em , então fazemos , e retornamos ao passo . Caso contrário, terminamos, e não é unificável.
De maneira geral, a unificação consiste em, dado um conjunto de expressões, unificá-lo em um conjunto unitário (com apenas uma expressão). Esse processo se dá através de sucessivas composições de substituições.