A Categorical Unification Algorithm

This is a case study in the design of computer programs based upon the twin themes of abstraction and constructivity. We consider the unification of t e rms-a symbol-manipulative task widely used in computa t ion-and derive a unification algorithm based upon constructions in category theory. This hinges on two observations. Firstly, unification may be considered as an instance of something more abstract--as a colimit in a suitable category. Secondly, general constructions of colimits provide recursive procedures for computing the unification of terms.

[1]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[2]  Jörg H. Siekmann,et al.  Universal Unification , 1982, GWAI.

[3]  Peter J. Landin,et al.  PROGRAMS AND THEIR PROOFS: AN ALGEBRAIC APPROACH, , 1968 .

[4]  L. Wos,et al.  Paramodulation and Theorem-Proving in First-Order Theories with Equality , 1983 .

[5]  Giorgio Levi,et al.  Proving Program Properties, Symbolic Evaluation and Logical Procedural Semantics , 1975, MFCS.

[6]  H. Kleisli,et al.  Every standard construction is induced by a pair of adjoint functors , 1965 .

[7]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[8]  Gerard Huet,et al.  Conflunt reductions: Abstract properties and applications to term rewriting systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[9]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[10]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[11]  Lars-Henrik Eriksson,et al.  Synthesis of a Unification Algorithm in a Logic Programming Calculus , 1984, J. Log. Program..

[12]  Mike Paterson,et al.  Linear unification , 1976, STOC '76.

[13]  G. Huet,et al.  Equations and rewrite rules: a survey , 1980 .

[14]  Lawrence C. Paulson,et al.  Verifying the Unification Algorithm in LCF , 1985, Sci. Comput. Program..

[15]  Rod M. Burstall,et al.  Electronic Category Theory , 1980, MFCS.

[16]  S. Lane Categories for the Working Mathematician , 1971 .

[17]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[18]  Carl Hewitt,et al.  Description and Theoretical Analysis (Using Schemata) of Planner: A Language for Proving Theorems and Manipulating Models in a Robot , 1972 .

[19]  David B. MacQueen Modules for standard ML , 1984, LFP '84.