[SCL] Re: implementing a nonstandard unifier

Alexandre Riazanov riazanoa at cs.man.ac.uk
Fri Jun 6 10:24:13 CDT 2003


On Fri, 6 Jun 2003, Andrei Voronkov wrote:

> If I remember the full story (you probably refer to KIF), you probably
> speak about logic with equality. Then you get strange effects like
> 
>   (!x)(!y)(x = y) -> (p <-> q)
> 

This is not much worse than 

(!x)(!y)(x = y) -> (!x1,..,xm)(!y1,..,yn)(f(x1,..,xm) = g(y1,..,yn))

in the standard FOL with equality.

> The cost of implementing unification and other algorithms would probably
> be not so high, but if you have a large knowledge base with many atoms
> using a variable relation x(t1,..,tn), you are in trouble. Roughly
> speaking, because too many terms become unifiable.

This also applies to the solution using "holds/apply". 
You need to be able to specify special strategies to deal with 
axioms like transitive(p). Essentially, if you have a clause
~transitive(X) \/ C(X), you should probably first instantiate X
by resolving the literal ~transitive(X), because C(X) is too prolific.
But in this case you lose much of the benefits the new notation provides
(exept the succint notation, of course), since you 
will restore the transitivity axiom for all transitive predicates.
Optimising the kernel of an implementation like Vampire
for "holds/apply" must not be too difficult. Sorting out the strategies
seems to be the difficult part.


============================================================================
Alexandre Riazanov (Alexander Ryazanov)
Research Assistant, Computer Science Dept., University of Manchester,
tel : +44 161-2756132 
fax : +44 161 2756204 
email : riazanov at cs.man.ac.uk
home page URL: http://www.cs.man.ac.uk/~riazanoa
============================================================================ 





More information about the Scl mailing list