parallel algorithms for unification and other complete problems in p
Unification is a basic operation in theorem proving, in type inference algorithms, and in logic programming languages such as Prolog. Prolog will play a major role in software development for the Fifth Generation project, and thus developing fast algorithms for unification is an important goal. This paper shows that the running time for a linear unification algorithm can often be improved substantially by use of parallel processing. The same is true for algorithms for some other complete problems in P , namely, the monotone circuit value problem and the path system accessibility problem. Previous theoretical work in computational complexity has suggested that these problems are not parallelizable; in practice this is not the case. To resolve this paradox, we introduce new complexity classes PC and PC * that capture the practical notion of parallelizability we discuss in this paper. We pose several open questions concerning PC and PC *.
parallel algorithm algorithm unification completeness theorem proving type inference logic program language prolog play role software development generation project paper timing use parallel processing circuits value systems access computational complexity complexity practical case class