[net.ai] Unification Query

bts@unc.UUCP (Bruce Smith) (10/19/83)

     I'm interested in anything new on unification algo-
rithms.  In case some readers don't know what I'm talking
about, I'll give a short description of the problem and some
references I know of.  Experts-- the ones I'm really
interested in reaching-- may skip to the last paragraph.

     Given a set of terms (in some language) containing
variables, the unification problem is to find a 'unifier',
that is, a substitution for the variables in those terms
which would make the terms equal.  Moreover, the unifier
should be a 'most general unifier', that is, any other unif-
iers should be extensions of it.  Resolution theorem-provers
and logic programming languages like Prolog depend on
unification-- though the Prolog implementations I'm familiar
with "cheat". (See Clocksin and Mellish's "Programming in
Prolog", p. 219.)

     Unification seems to be a very active topic.  The paper
"A short survey on the state of the art in matching and
unification problems", by Raulefs, Siekmann, Szabo and
Unvericht, in the May 1979 issue of the SIGSAM Bulletin,
contains a bibliography of over 90 articles.  And, "An effi-
cient unification algorithm", by Martelli and Montanari, in
the April 1982 ACM Transactions on Programming Languages and
Systems, gives a (very readable) discussion of the effi-
ciency of various unification algorithms.  A programming
language has even been based on unification: "Uniform-- A
language based on unification which unifies (much of) Lisp,
Prolog and Act1" by Kahn in IJCAI-81.

     So, does anyone out there in network-land have a unifi-
cation bibliography more recent that 1979?  If it's on-line,
would you please post it to USENET's net.ai?  If not, where
can we get a copy?

     Bruce Smith, UNC-Chapel Hill
     decvax!duke!unc!bts   (USENET)
     bts.unc@udel-relay (other NETworks)

decot@cwruecmp.UUCP (Dave Decot) (10/21/83)

An "Efficient Unification Algorithm"?!?  This is amazing!  I'll have to go
read that article right away, because if the title is not misleading, and you
have accurately described what a unification algorithm is, P == NP!

The Satisfiability problem is solvable by any algorithm that does what you
require of your most general unification algorithm, so your problem is
NP-complete.  The set of terms to be unified contains only two terms, one is
simply "1" and the other is the expression to be satisfied.  Your problem is
in NP as long as the terms with substituted variables can be evaluated in
polynomial time.  At any rate, your problem is at least as "hard" as
Satisfiability.

Since your problem can be solved efficiently, it must be not only in NP, but
also in P (the set of problems solvable in time proportional to a polynomial
function of the length of its instances) by today's normal computers.

The most logical explanation is that the algorithm in that paper is not
a full implementation of your desired "most general" algorithm.
----------------------------------------
Dave Decot	..!decvax!cwruecmp!decot