Prolog process to make two terms equal by assigning variables in one term to values at the corresponding location of the other term. For example: ?- foo(a, B) = foo(A, b). A = a, B = b Unlike assignment (which does not exist in Prolog), unification is not directed.