Abstract
This paper presents an algorithm that, given a finite set E of pairs of second-order monadic terms, returns a finite set U of ‘substitution schemata’ such that a substitution unifies E iff it is an instance of some member of U . Moreover, E is unifiable precisely if U is not empty. The algorithm terminates on all inputs, unlike the unification algorithms for second-order monadic terms developed by G. Huet and G. Winterstein. The substitution schemata in U use expressions which represent sets of terms that differ only in how many times designated strings of function constants follow themselves. The substitution schemata may contain unresolved ‘identity restrictions’; consequently, the members of U generally do not characterize all the unifiers of E in a completely explicit way. The algorithm is particularly useful for investigating the complexity of formal proofs