Unifying is the operation of filling in missing information (i.e., logical variables) with existing information by side-effecting (i.e., binding) the missing information (i.e., the logical variable) to share the part of the existing information it should be equal to (i.e., its value). Like in Logic Programming, logical variables can be bound to one another and thus must be dereferenced to their values.