Unification
If a variable is universally quantified, we are justified in substituting any term for that variable.
If we want to do backchaining with predicate calculus, we need to find a set of substitutions of terms for variables that will make the conclusion of a formula match what we are trying to prove. The process that does this is called unification.
If we have a formula C ← A ∧ B, we can think of this as being analogous to a subroutine: subroutine C consists of calls to subroutines A and B.
We can think of unification as analogous to binding the formal arguments of a subroutine to the actual arguments with which it is called. Unification is more general than subroutine call: whereas subroutine call is top-down, unification can send arguments in both directions.