In logic and computer science, unification is an algorithmic process of solving equations between symbolic expressions. Depending on which expressions (also called terms) are allowed to occur in an equation set (also called unification problem), and which expressions are considered equal, several frameworks of unification are distinguished. If higher-order variables, that is, variables representing functions, are allowed in an expression, the process is called higher-order unification, otherwise first-order unification. If a solution is required to make both sides of each equation literally equal, the process is called syntactic or free unification, otherwise semantic or equational unification, or E-unification, or unification modulo theory. A solution of a unification problem is denoted as a substitution, that is, a mapping assigning a symbolic value to each variable of the problem's expressions. A unification algorithm should compute for a given problem a complete, and minimal substitution set, that is, a set covering all
En la lógica y la ciencia de la computación, la unificación es un proceso algorítmico de resolver ecuaciones entre expresiones simbólicas. Dependiendo de qué expresiones (también llamadas términos) se permiten ocurrir en un conjunto de ecuaciones (también llamado problema de unificación), y qué expresiones se consideran iguales, se distinguen varios marcos de unificación. Si se permiten variables de orden superior, es decir, variables que representan funciones, en una expresión, el proceso se llama unificación de orden superior, de otro modo unificación de primer orden. Si se requiere una solución para hacer ambos lados de cada ecuación literalmente iguales, el proceso se llama unificación sintáctica o libre, de otro modo unificación semántica o equatorial, o E-unificación, o modulo de unificación. Una solución de un problema de unificación se denomina una sustitución, es decir, un mapeo que asigna un valor simbólico a cada una de las variables de las expresiones.