stringtranslate.com

Anti-unificación

La antiunificación es el proceso de construcción de una generalización común a dos expresiones simbólicas dadas. Al igual que en la unificación , se distinguen varios marcos de trabajo en función de qué expresiones (también llamadas términos) se permiten y qué expresiones se consideran iguales. Si se permiten variables que representan funciones en una expresión, el proceso se denomina "antiunificación de orden superior"; en caso contrario, "antiunificación de primer orden". Si se requiere que la generalización tenga una instancia literalmente igual a cada expresión de entrada, el proceso se denomina "antiunificación sintáctica"; en caso contrario, "antiunificación E" o "teoría de antiunificación módulo".

Un algoritmo de antiunificación debería calcular para expresiones dadas un conjunto de generalización completo y mínimo, es decir, un conjunto que cubra todas las generalizaciones y no contenga miembros redundantes, respectivamente. Dependiendo del marco, un conjunto de generalización completo y mínimo puede tener uno, un número finito o posiblemente un número infinito de miembros, o puede no existir en absoluto; [nota 1] no puede estar vacío, ya que en cualquier caso existe una generalización trivial. Para la antiunificación sintáctica de primer orden, Gordon Plotkin [1] [2] proporcionó un algoritmo que calcula un conjunto de generalización singleton completo y mínimo que contiene la denominada "generalización menos general" (lgg).

La antiunificación no debe confundirse con la desunificación . Esta última hace referencia al proceso de resolver sistemas de inecuaciones , es decir, de encontrar valores para las variables de modo que se satisfagan todas las inecuaciones dadas. [nota 2] Esta tarea es bastante diferente de la de encontrar generalizaciones.

Prerrequisitos

Formalmente, un enfoque antiunificación presupone

Término de primer orden

Dado un conjunto de símbolos variables, un conjunto de símbolos constantes y conjuntos de símbolos de funciones -arias, también llamados símbolos de operador, para cada número natural , el conjunto de términos (de primer orden no ordenados) se define recursivamente como el conjunto más pequeño con las siguientes propiedades: [3]

Por ejemplo, si x  ∈ V es un símbolo de variable, 1 ∈ C es un símbolo de constante y add ∈ F 2 es un símbolo de función binaria, entonces x  ∈ T , 1 ∈ T y (por lo tanto) add( x ,1) ∈ T por la primera, segunda y tercera regla de construcción de términos, respectivamente. El último término generalmente se escribe como x +1, utilizando la notación infija y el símbolo de operador más común + para mayor comodidad.

Término de orden superior

Sustitución

Una sustitución es una aplicación de variables a términos; la notación se refiere a una sustitución que asigna cada variable al término , para , y cada otra variable a sí misma. La aplicación de esa sustitución a un término t se escribe en notación de posfijo como ; significa (simultáneamente) reemplazar cada ocurrencia de cada variable en el término t por . El resultado de aplicar una sustitución σ a un término t se llama una instancia de ese término t . Como un ejemplo de primer orden, la aplicación de la sustitución al término

Generalización, especialización

Si un término tiene una instancia equivalente a un término , es decir, si para alguna sustitución , entonces se dice que es más general que , y se dice que es más especial que, o está subsumido por, . Por ejemplo, es más general que si es conmutativo , ya que entonces .

Si es identidad literal (sintáctica) de términos, un término puede ser a la vez más general y más especial que otro solo si ambos términos difieren solo en sus nombres de variable, no en su estructura sintáctica; tales términos se llaman variantes o renombramientos entre sí. Por ejemplo, es una variante de , ya que y . Sin embargo, no es una variante de , ya que ninguna sustitución puede transformar el último término en el primero, aunque logre la dirección inversa. El último término es, por lo tanto, propiamente más especial que el primero.

Una sustitución es más especial que, o está subsumida por, una sustitución si es más especial que para cada variable . Por ejemplo, es más especial que , ya que y es más especial que y , respectivamente.

Problema de antiunificación, conjunto de generalizaciones

Un problema de antiunificación es un par de términos. Un término es una generalización común , o antiunificador , de y si y para algunas sustituciones . Para un problema de antiunificación dado, un conjunto de antiunificadores se llama completo si cada generalización subsume algún término ; el conjunto se llama mínimo si ninguno de sus miembros subsume a otro.

Antiunificación sintáctica de primer orden

El marco de la antiunificación sintáctica de primer orden se basa en ser el conjunto de términos de primer orden (sobre un conjunto dado de variables, de constantes y de símbolos de funciones -arias) y en ser igualdad sintáctica . En este marco, cada problema de antiunificación tiene un conjunto de soluciones único , completo y obviamente mínimo . Su miembro se llama generalización general mínima (lgm) del problema, tiene una instancia sintácticamente igual a y otra sintácticamente igual a . Cualquier generalización común de y subsume . La lgm es única hasta variantes: si y son conjuntos de soluciones completos y mínimos del mismo problema de antiunificación sintáctica, entonces y para algunos términos y , que son renombramientos entre sí.

Plotkin [1] [2] ha dado un algoritmo para calcular el lgg de dos términos dados. Presupone una aplicación inyectiva , es decir, una aplicación que asigna a cada par de términos una variable propia , de modo que no haya dos pares que compartan la misma variable. [nota 4] El algoritmo consta de dos reglas:

Por ejemplo, esta generalización menos general refleja la propiedad común de ambas entradas de ser números cuadrados.

Plotkin utilizó su algoritmo para calcular la " generalización mínima relativa (rlgg) " de dos conjuntos de cláusulas en lógica de primer orden, que fue la base del enfoque Golem para la programación lógica inductiva .

Teoría del módulo antiunificación de primer orden

Teorías ecuacionales

Antiunificación ordenada de primer orden

Antiunificación nominal

Aplicaciones

Antiunificación de orden superior

Notas

  1. ^ Siempre existen conjuntos de generalización completos, pero puede darse el caso de que cada conjunto de generalización completo no sea mínimo.
  2. ^ Comon se refirió en 1986 a la resolución de inecuaciones como "antiunificación", lo que hoy en día se ha vuelto bastante inusual. Comon, Hubert (1986). "Completitud suficiente, sistemas de reescritura de términos y 'antiunificación'". Proc. 8ª Conferencia Internacional sobre Deducción Automatizada . LNCS. Vol. 230. Springer. págs. 128–140.
  3. ^ Por ejemplo
  4. ^ Desde un punto de vista teórico, tal mapeo existe, ya que tanto como son conjuntos infinitos contables ; para fines prácticos, se pueden construir según sea necesario, recordando los mapeos asignados en una tabla hash .

Referencias

  1. ^ ab Plotkin, Gordon D. (1970). Meltzer, B.; Michie, D. (eds.). "Una nota sobre generalización inductiva". Inteligencia artificial . 5 : 153–163.
  2. ^ ab Plotkin, Gordon D. (1971). Meltzer, B.; Michie, D. (eds.). "Una nota adicional sobre la generalización inductiva". Inteligencia artificial . 6 : 101–124.
  3. ^ CC Chang; H. Jerome Keisler (1977). A. Heyting; HJ Keisler; A. Mostowski; A. Robinson; P. Suppes (eds.). Teoría de modelos . Estudios de lógica y fundamentos de las matemáticas. Vol. 73. Holanda Septentrional.; aquí: Sec.1.3