Estado del arte — sí, por lo que yo sé todos los algoritmos más o menos tomar la misma forma que (sigo la teoría de la programación lógica, aunque mi experiencia es tangencial) proporcionado necesita lleno de orden superior de Huet emparejamiento: los subproblemas como la coincidencia de orden superior (unificación donde se cierra un término) y el cálculo del patrón de Dale Miller son decidibles.
Tenga en cuenta que el algoritmo de Huet es el mejor en el siguiente sentido — es como un algoritmo de semideducción, en el sentido de que encontrará los unificadores si existen, pero no se garantiza que terminen si no lo hacen. Como sabemos que la unificación de orden superior (de hecho, la unificación de segundo orden) es indecidible, no puedes hacer nada mejor que eso.
Explicaciones: Los primeros cuatro capítulos de la tesis doctoral de Conal Elliott, Extensions and Applications of Higher-Order Unification deben encajar en la factura. Esa parte pesa casi 80 páginas, con alguna teoría de tipos densa, pero está bien motivada, y es la cuenta más fácil de leer que he visto.
Ejemplos: El algoritmo de Huet creará los productos para este ejemplo: [X (o), Y (succ (0))]; que necesariamente confundirá un algoritmo de unificación de primer orden.
Uno de los raros casos en los que se formuló una pregunta realmente buena (no googleable o difícil de buscar en Google) y una respuesta de alta calidad difícil de obtener. –
+1 a los dos: jaja, esa es probablemente la razón por la cual sus estadísticas son 300-600 en lugar de 31.2K o algo así. Probablemente solo respondas preguntas que pocos pueden responder. –
El Conal Elliott exacto que citó proporcionó la otra respuesta :-D. – Blaisorblade