I'm looking for a (very) simple tool for doing prolog style logical deduction in common lisp. This is just for managing tasks and creating an advanced todo list based on rules. Currently PaiProlog breaks and I don't have the time to read all of PIA to understand what, ether me or it are doing wrong.

As an example of what I'm trying to do:

(<- (PRODUCER ?X) (TOOL ?X))
(<- (tool "emacs"))

(?- (producer "emacs"))
Yes

(do-all (?- (producer ?x))



Firstly, should I be using CL-Unification for this?

Secondly, does CL-Unification support this already?

Finally, a simple example of how to do this would be wonderful.