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 .

  1. Se , então terminamos, é uma mgu de . Caso contrário, determinamos o conjunto de diferenças de .
  2. 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.