Unification

Find the most general set of variable bindings to make p and q identical.

Most programming languages are first-order.