BOLETÍN ELECTRÓNICO CIENTÍFICO
DEL NODO BRASILERO
DE INVESTIGADORES COLOMBIANOS
Número 2(Artículo 19), 2000
TÍTULO
UNIFICACIóN DE ORDEN SUPERIOR VIA SUSTITUCIONES EXPLíCITAS
TIPO: Trabajo conjunto con F. Kamareddine realizado durante visita del autor al grupo ULTRA, CEE, Heriot-Watt University, Edimburgo, Escocia
AUTOR: Mauricio Ayala-Rincón ayala@mat.unb.br
IDIOMA: Inglés
DIRECCIÓN PARA CONTACTO
Departamento de Matemática, Universidade de Brasília, 70910-900 Brasília D. F., BrasilENTIDADES QUE FINANCIARON LA INVESTIGACIÓN: agencias Brasileras CAPES y FEMAT
PALABRAS CLAVE: Unificación de orden superior, teoría de tipos, teoría de reescritura, sustituciones explícitas
A partir de la aparición del principio de resolución de Robinson [19], basado en sustitución, unificación y resolución, mucho trabajo ha sido realizado para formalizar estas nociones básicas en contextos más amplios. Tales extensiones son esenciales, entre otras cosas, para deducción automática en lógicas de orden superior.
La primera persona en formular
exitosamente un método de unificación para el caso de lógicas de
orden superior, más especificamente para el -calculus
tipado, fue Huet [9]. Desde entonces, diferentes concepciones
de unificación de orden superior (HOU) han sido desarrolladas y
utilizadas en lenguajes y demostradores de teoremas tales como el
prolog e Isabelle ([15,18]). En la mayoría
de tales concepciones, la noción de sustitución juega un papel
importante que ha llevado en años recientes a la producción de
gran cantidad de trabajos para ``hacer la sustitución
explícita''. También, mucho trabajo ha sido destinado a
establecer la utilidad de las sustituciones explícitas en la
deducción automática y la demostración de teoremas,
síntesis de demostraciones [13,14], lenguajes de
programación [4] y a la propia HOU [6].
El último trabajo muestra que sí la sustitución es hecha
explícita se obtienen muchos beneficios en la computación de
problemas de HOU. Particularmente, [6] presenta un
método de unificación basado en el
-estilo de
sustitución explícita, que en la práctica ha sido útil para
deducción de problemas de HOU en el
-calculus tipado y
subsecuentemente generalizado para el tratamiento de problemas de
unificación ecuacional de orden superior [12] y restringido
para el caso de patrones de orden superior [5].
Se desarrolló un método de HOU basado en el
-estilo
de sustitución explícita, que saca provecho de las cualidades
del
-calculus. En particular, esta concepción evita el
uso de diferentes tipos de objetos como es necesario en el
-calculus. Adicionalmente, la decidibilidad de la
aplicación de las reglas de unificación propuestas (i.e.
determinación de los redices) depende de la busqueda de
soluciones en los naturales de restricciones aritméticas simples.
Todo esto hace
-HOU más elegante y eficiente que
-HOU.
Objetos de orden superior aparecen naturalmente en muchos campos de la
ciencia de la computación. Por ejemplo, en el contexto de
implementación de lenguajes funcionales es necesario desarrollar
mecanismos para el tratamiento de funciones de orden superior.
Considere el siguiente sistema de reescritura que especifica la bien
conocida función MAP, la cual aplica una función a todos
los elementos de una lista:
MAPNIL
NIL;
MAP
CONS
CONS
MAP
,
donde
y
son las funciones usuales de
LISP para la lista vacia y la constructora de listas,
respectivamente. Observe que
aparece como una variable y
como un símbolo de función. Desde el punto de vista de
reescritura de primer orden, no es posible manipular este tipo de
objetos. En efecto, para simples procesos deductivos basados en
técnicas de reescritura, tales como un-paso de reducción o
deducción de pares críticos, matching y unificación de
primer orden no aplican. La solución para estos problemas, no
sólo en el contexto de la reescritura, es el
-calculus.
MAP es un ejemplo típico de una función de segundo orden, pero funciones de tercer orden y de orden mayor son también de interés práctico. En [17] son presentadas funciones desde tercer hasta sexto orden de utilidad práctica computacional.
Un ejemplo simple de un problema de HOU es la busqueda de soluciones
para la ecuación
o equivalentemente
. Una solución es la
función identidad
, pero también son soluciones:
.
El método de HOU de Huet [9] es importante porque él descubrió que para generalizar el principio de resolución de primer orden de Robinson a teorías de orden superior es útil verificar la existencia de unificadores sin necesidad de computarlos explícitamente. El procedimiento propuesto por Huet es de semi-decisión: puede nunca parar cuando el problema de entrada no tiene unificadores, pero cuando tiene una solución, parará presentando un unificador explícitamente. La unificación para la lógica de segundo orden fue demostrada indecidible en general por Goldfarb [8]. La demostración de Goldfarb es basada en una reducción para el décimo problema de Hilbert. Este resultado muestra que existen teorías arbitrarias de orden superior donde los problemas de unificación son indecidibles. Pero existen también lenguajes de orden superior particulares, de importancia práctica, donde los problemas de unificación son decidibles. Un caso especial de segundo orden, donde la unificación es decidible, es cuando el lenguaje es restringido a funciones monádicas [7].
El
-calculus [1] introduce dos conjuntos
diferentes de entidades, una para términos y otra para
sustituciones. El
-calculus [11] se mantiene más
cercano al
-calculus y utiliza la filosofía iniciada por
de Bruijn en su sistema AUTOMATH [16] y elaborada
extensivamente por medio de la notación de itens [10]. Tal
filosofía establece que los términos del
-calculus son
o bien términos de aplicación, tales como funciones aplicadas a un
argumento; o términos de abstracción, tales como funciones; o
términos de sustitución o actualización. De esta manera,
sustitución y actualización son hechas explícitas en esta
notación. Así, se estudió HOU en el
-estilo de
sustitución explícita desarrollando lo siguiente:
Lo anterior permite reducir HOU a unificación de primer orden en el
lenguaje del
-calculus.
Adicionalmente, se comparó el método propuesto con el basado en el
-calculus llegando a la conclusión de que la
utilización en
-HOU de todos los índices de de
Bruijn lo hace más eficiente, ya que en
-HOU unicamente es utilizado el índice
y
los otros son simulados con operadores shift y composición de
estos.
Finalmente aparece evidente que en
-HOU la busqueda de
redices es más simple que en
-HOU.
Algunos resultados del trabajo aqui divulgado aparecen en en [3,2].