¿Qué algoritmos para la unificación de términos de matriz (multidimensionales)?
-
29-09-2020 - |
Pregunta
Estoy buscando referencias sobre la implementación de la unificación en términos de matrices multidimensionales.
¿Existen algoritmos de unificación especializados para esos casos?No pude encontrar literatura satisfactoria sobre el tema y estoy intentando escribir una biblioteca de programación lógica para el lenguaje J.
Solución
A modo de contexto, asumiré que el objetivo es realizar la unificación en la lógica clásica de primer orden en un lenguaje fijo. $\mathscr{L}$.(Se aceptan formatos y otras correcciones).
Brevemente, puede tratar las matrices como términos y las matrices multidimensionales como matrices de matrices.También introducirá un nuevo símbolo de término que no aparece en $\mathscr{L}$.
Entonces, por ejemplo, si tiene una matriz multidimensional como la siguiente,
\begin{pmatrix} 1 & 2 & 3\\ X, Y y Z \end{pmatrix}
primero lo convertirás en una matriz de matrices,
$$ ext{((1 2 3) (x y z))}$$
y luego convertirlo a términos.Asumiendo el término símbolo a
no está en su idioma, ahora puede representar su matriz multidimensional de la siguiente manera:
a(a(1,2,3),a(x,y,z))