  We developed a procedure to enumerate complete sets of higher-order unifiers
based on work by Jensen and Pietrzykowski. Our procedure removes many redundant
unifiers by carefully restricting the search space and tightly integrating
decision procedures for fragments that admit a finite complete set of unifiers.
We identify a new such fragment and describe a procedure for computing its
unifiers. Our unification procedure, together with new higher-order term
indexing data structures, is implemented in the Zipperposition theorem prover.
Experimental evaluation shows a clear advantage over Jensen and Pietrzykowski's
procedure.
