Sustitución lógica

Definición

Una sustitución es un mapeo finito de variables a términos. Se escribe, por ejemplo, . Aplicar la sustitución a una expresión reemplaza simultáneamente las variables indicadas: . Las variables no incluidas quedan intactas.

En la notación de estas notas, significa aplicar a la expresión . La sustitución permite instanciar fórmulas y registrar el resultado de la unificación.

Aplicación y composición

Si , la aplicación simultánea a da : el que aparece dentro del término insertado no se vuelve a sustituir en esa misma aplicación. Al componer sustituciones, en cambio, la segunda puede aplicarse a los términos producidos por la primera. Por ejemplo, aplicar primero y después equivale a la composición (la convención de orden debe declararse; aquí se lee de izquierda a derecha en el tiempo).

La sustitución debe respetar el alcance de cuantificadores: al sustituir dentro de fórmulas cuantificadas se evita capturar variables libres. En los algoritmos de unificación de términos, esta precaución se simplifica usando variables y términos explícitos, mientras que al instanciar fórmulas se debe renombrar una variable ligada si colisiona con una variable libre del término insertado.

Ejemplo en inferencia

Para resolver con , el unificador se aplica a la cláusula restante completa: . Después se elimina el par de literales complementarios. Véase resolución de primer orden.

flowchart LR
  A["Cláusula: ¬Humano(x) ∨ Mortal(x)"] --> B["Aplicar θ = {x/Sócrates}"]
  C["Hecho: Humano(Sócrates)"] --> D["Unificar átomos complementarios"]
  B --> D
  D --> E["Eliminar el par complementario"]
  E --> F["Resolvente: Mortal(Sócrates)"]

Referencias